@sudobility/components 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +169 -0
  2. package/dist/hooks/useClickOutside.d.ts +3 -0
  3. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  4. package/dist/hooks/useCodeLoader.d.ts +8 -0
  5. package/dist/hooks/useCodeLoader.d.ts.map +1 -0
  6. package/dist/hooks/useCopyToClipboard.d.ts +64 -0
  7. package/dist/hooks/useCopyToClipboard.d.ts.map +1 -0
  8. package/dist/index.d.ts +1069 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.esm.js +13064 -0
  11. package/dist/index.umd.js +67 -0
  12. package/dist/lib/index.d.ts +8 -0
  13. package/dist/lib/index.d.ts.map +1 -0
  14. package/dist/lib/utils.d.ts +4 -0
  15. package/dist/lib/utils.d.ts.map +1 -0
  16. package/dist/ui/alert.d.ts +20 -0
  17. package/dist/ui/alert.d.ts.map +1 -0
  18. package/dist/ui/animated-section.d.ts +28 -0
  19. package/dist/ui/animated-section.d.ts.map +1 -0
  20. package/dist/ui/button.d.ts +13 -0
  21. package/dist/ui/button.d.ts.map +1 -0
  22. package/dist/ui/card.d.ts +39 -0
  23. package/dist/ui/card.d.ts.map +1 -0
  24. package/dist/ui/comparison-section.d.ts +58 -0
  25. package/dist/ui/comparison-section.d.ts.map +1 -0
  26. package/dist/ui/confirmation-dialog.d.ts +16 -0
  27. package/dist/ui/confirmation-dialog.d.ts.map +1 -0
  28. package/dist/ui/content-container.d.ts +15 -0
  29. package/dist/ui/content-container.d.ts.map +1 -0
  30. package/dist/ui/design-system-components.d.ts +53 -0
  31. package/dist/ui/design-system-components.d.ts.map +1 -0
  32. package/dist/ui/dropdown.d.ts +20 -0
  33. package/dist/ui/dropdown.d.ts.map +1 -0
  34. package/dist/ui/email-accounts-list.d.ts +27 -0
  35. package/dist/ui/email-accounts-list.d.ts.map +1 -0
  36. package/dist/ui/email-input-group.d.ts +53 -0
  37. package/dist/ui/email-input-group.d.ts.map +1 -0
  38. package/dist/ui/empty-state.d.ts +11 -0
  39. package/dist/ui/empty-state.d.ts.map +1 -0
  40. package/dist/ui/feature-card.d.ts +17 -0
  41. package/dist/ui/feature-card.d.ts.map +1 -0
  42. package/dist/ui/feature-grid.d.ts +52 -0
  43. package/dist/ui/feature-grid.d.ts.map +1 -0
  44. package/dist/ui/flex-container.d.ts +13 -0
  45. package/dist/ui/flex-container.d.ts.map +1 -0
  46. package/dist/ui/form-field-group.d.ts +58 -0
  47. package/dist/ui/form-field-group.d.ts.map +1 -0
  48. package/dist/ui/free-email-banner.d.ts +20 -0
  49. package/dist/ui/free-email-banner.d.ts.map +1 -0
  50. package/dist/ui/gradient-button.d.ts +15 -0
  51. package/dist/ui/gradient-button.d.ts.map +1 -0
  52. package/dist/ui/hero-banner-with-badge.d.ts +20 -0
  53. package/dist/ui/hero-banner-with-badge.d.ts.map +1 -0
  54. package/dist/ui/icon-container.d.ts +12 -0
  55. package/dist/ui/icon-container.d.ts.map +1 -0
  56. package/dist/ui/index.d.ts +110 -0
  57. package/dist/ui/index.d.ts.map +1 -0
  58. package/dist/ui/input.d.ts +6 -0
  59. package/dist/ui/input.d.ts.map +1 -0
  60. package/dist/ui/internal-link-clusters.d.ts +65 -0
  61. package/dist/ui/internal-link-clusters.d.ts.map +1 -0
  62. package/dist/ui/label.d.ts +5 -0
  63. package/dist/ui/label.d.ts.map +1 -0
  64. package/dist/ui/loading-state.d.ts +11 -0
  65. package/dist/ui/loading-state.d.ts.map +1 -0
  66. package/dist/ui/logo.d.ts +15 -0
  67. package/dist/ui/logo.d.ts.map +1 -0
  68. package/dist/ui/metrics-grid.d.ts +20 -0
  69. package/dist/ui/metrics-grid.d.ts.map +1 -0
  70. package/dist/ui/modal.d.ts +38 -0
  71. package/dist/ui/modal.d.ts.map +1 -0
  72. package/dist/ui/no-content.d.ts +9 -0
  73. package/dist/ui/no-content.d.ts.map +1 -0
  74. package/dist/ui/page-container.d.ts +13 -0
  75. package/dist/ui/page-container.d.ts.map +1 -0
  76. package/dist/ui/process-steps.d.ts +18 -0
  77. package/dist/ui/process-steps.d.ts.map +1 -0
  78. package/dist/ui/section-badge.d.ts +11 -0
  79. package/dist/ui/section-badge.d.ts.map +1 -0
  80. package/dist/ui/section-header.d.ts +27 -0
  81. package/dist/ui/section-header.d.ts.map +1 -0
  82. package/dist/ui/section.d.ts +16 -0
  83. package/dist/ui/section.d.ts.map +1 -0
  84. package/dist/ui/select.d.ts +14 -0
  85. package/dist/ui/select.d.ts.map +1 -0
  86. package/dist/ui/smart-link.d.ts +23 -0
  87. package/dist/ui/smart-link.d.ts.map +1 -0
  88. package/dist/ui/spinner.d.ts +11 -0
  89. package/dist/ui/spinner.d.ts.map +1 -0
  90. package/dist/ui/status-badge.d.ts +17 -0
  91. package/dist/ui/status-badge.d.ts.map +1 -0
  92. package/dist/ui/status-indicator.d.ts +10 -0
  93. package/dist/ui/status-indicator.d.ts.map +1 -0
  94. package/dist/ui/switch.d.ts +4 -0
  95. package/dist/ui/switch.d.ts.map +1 -0
  96. package/dist/ui/table-of-contents.d.ts +19 -0
  97. package/dist/ui/table-of-contents.d.ts.map +1 -0
  98. package/dist/ui/tabs.d.ts +7 -0
  99. package/dist/ui/tabs.d.ts.map +1 -0
  100. package/dist/ui/typography.d.ts +50 -0
  101. package/dist/ui/typography.d.ts.map +1 -0
  102. package/dist/ui/use-case-grid.d.ts +17 -0
  103. package/dist/ui/use-case-grid.d.ts.map +1 -0
  104. package/dist/ui/wallet-icon.d.ts +13 -0
  105. package/dist/ui/wallet-icon.d.ts.map +1 -0
  106. package/dist/ui/wallet-selection.d.ts +49 -0
  107. package/dist/ui/wallet-selection.d.ts.map +1 -0
  108. package/dist/utils/css-optimization.d.ts +81 -0
  109. package/dist/utils/css-optimization.d.ts.map +1 -0
  110. package/dist/utils/formatFileSize.d.ts +42 -0
  111. package/dist/utils/formatFileSize.d.ts.map +1 -0
  112. package/dist/utils/image-optimization.d.ts +75 -0
  113. package/dist/utils/image-optimization.d.ts.map +1 -0
  114. package/dist/utils/index.d.ts +13 -0
  115. package/dist/utils/index.d.ts.map +1 -0
  116. package/dist/utils/lazy-components.d.ts +54 -0
  117. package/dist/utils/lazy-components.d.ts.map +1 -0
  118. package/dist/utils/lazy-loading.d.ts +96 -0
  119. package/dist/utils/lazy-loading.d.ts.map +1 -0
  120. package/dist/utils/navigation.d.ts +133 -0
  121. package/dist/utils/navigation.d.ts.map +1 -0
  122. package/dist/utils/navigationHelpers.d.ts +89 -0
  123. package/dist/utils/navigationHelpers.d.ts.map +1 -0
  124. package/dist/utils/storage.d.ts +250 -0
  125. package/dist/utils/storage.d.ts.map +1 -0
  126. package/dist/utils/treeShaking.d.ts +124 -0
  127. package/dist/utils/treeShaking.d.ts.map +1 -0
  128. package/dist/utils/walletBrowserDetection.d.ts +17 -0
  129. package/dist/utils/walletBrowserDetection.d.ts.map +1 -0
  130. package/package.json +149 -0
  131. package/vendor/@johnqh/design-system/colors.d.ts +1064 -0
  132. package/vendor/@johnqh/design-system/colors.d.ts.map +1 -0
  133. package/vendor/@johnqh/design-system/index.d.ts +123 -0
  134. package/vendor/@johnqh/design-system/index.d.ts.map +1 -0
  135. package/vendor/@johnqh/design-system/index.esm.js +3543 -0
  136. package/vendor/@johnqh/design-system/index.umd.js +1 -0
  137. package/vendor/@johnqh/design-system/package.json +9 -0
  138. package/vendor/@johnqh/design-system/simple-variants.d.ts +72 -0
  139. package/vendor/@johnqh/design-system/simple-variants.d.ts.map +1 -0
  140. package/vendor/@johnqh/design-system/tokens.d.ts +307 -0
  141. package/vendor/@johnqh/design-system/tokens.d.ts.map +1 -0
  142. package/vendor/@johnqh/design-system/typography.d.ts +112 -0
  143. package/vendor/@johnqh/design-system/typography.d.ts.map +1 -0
  144. package/vendor/@johnqh/design-system/variants.d.ts +35 -0
  145. package/vendor/@johnqh/design-system/variants.d.ts.map +1 -0
package/README.md ADDED
@@ -0,0 +1,169 @@
1
+ # @johnqh/mail-box-components
2
+
3
+ A comprehensive React component library and design system for building modern web applications.
4
+
5
+ ## Features
6
+
7
+ - 🎨 **Complete Design System** - Professional design tokens, colors, typography
8
+ - 🧩 **20+ UI Components** - Forms, modals, cards, alerts, and more
9
+ - ♿ **Accessibility First** - Built with Radix UI primitives
10
+ - 🌙 **Dark Mode Support** - Full dark/light theme support
11
+ - 📱 **Responsive Design** - Mobile-first approach
12
+ - 🎯 **TypeScript** - Fully typed with excellent IntelliSense
13
+ - 🎭 **Tailwind CSS** - Utility-first styling with customization
14
+ - ⚡ **Performance Optimized** - Tree-shakeable and lightweight
15
+
16
+ ## Installation
17
+
18
+ ### Quick Start
19
+
20
+ ```bash
21
+ npm install @johnqh/mail-box-components
22
+ ```
23
+
24
+ ### Required Peer Dependencies
25
+
26
+ The library requires these peer dependencies to be installed:
27
+
28
+ ```bash
29
+ npm install react@^18.0.0 react-dom@^18.0.0 \
30
+ @heroicons/react@^2.0.0 \
31
+ @radix-ui/react-alert-dialog@^1.0.0 \
32
+ @radix-ui/react-dialog@^1.0.0 \
33
+ @radix-ui/react-label@^2.0.0 \
34
+ @radix-ui/react-select@^2.0.0 \
35
+ @radix-ui/react-slot@^1.0.0 \
36
+ @radix-ui/react-switch@^1.0.0 \
37
+ @radix-ui/react-tabs@^1.0.0 \
38
+ class-variance-authority@^0.7.0 \
39
+ clsx@^2.1.1 \
40
+ tailwind-merge@^3.0.0
41
+ ```
42
+
43
+ ### Optional Dependencies
44
+
45
+ Install these only if you need specific features:
46
+
47
+ ```bash
48
+ # For internationalization (LanguageSelector, CodeBlock)
49
+ npm install react-i18next@^16.0.0 i18next@^25.0.0
50
+
51
+ # For routing (SmartLink, Breadcrumb)
52
+ npm install react-router-dom@^7.0.0
53
+
54
+ # For SEO/Meta tags (AIMeta)
55
+ npm install react-helmet-async@^2.0.0
56
+
57
+ # For social sharing (Breadcrumb sharing feature)
58
+ npm install react-share@^5.0.0
59
+
60
+ # For performance monitoring
61
+ npm install web-vitals@^5.0.0
62
+
63
+ # For additional icons
64
+ npm install lucide-react@^0.400.0
65
+ ```
66
+
67
+ ### Complete Installation (All Features)
68
+
69
+ To install everything at once:
70
+
71
+ ```bash
72
+ npm install @johnqh/mail-box-components \
73
+ react@^18.0.0 react-dom@^18.0.0 \
74
+ @heroicons/react@^2.0.0 \
75
+ @radix-ui/react-alert-dialog@^1.0.0 \
76
+ @radix-ui/react-dialog@^1.0.0 \
77
+ @radix-ui/react-label@^2.0.0 \
78
+ @radix-ui/react-select@^2.0.0 \
79
+ @radix-ui/react-slot@^1.0.0 \
80
+ @radix-ui/react-switch@^1.0.0 \
81
+ @radix-ui/react-tabs@^1.0.0 \
82
+ class-variance-authority@^0.7.0 \
83
+ clsx@^2.1.1 \
84
+ tailwind-merge@^3.0.0 \
85
+ react-i18next@^16.0.0 \
86
+ i18next@^25.0.0 \
87
+ react-router-dom@^7.0.0 \
88
+ react-helmet-async@^2.0.0 \
89
+ react-share@^5.0.0 \
90
+ web-vitals@^5.0.0 \
91
+ lucide-react@^0.400.0
92
+ ```
93
+
94
+ > **Migrating from v1.x?** See [MIGRATION.md](./MIGRATION.md) for detailed upgrade instructions.
95
+
96
+ ## Usage
97
+
98
+ ```tsx
99
+ import { Button, Card, Alert } from '@johnqh/mail-box-components'
100
+
101
+ function App() {
102
+ return (
103
+ <div>
104
+ <Card>
105
+ <Button variant="primary">Click me</Button>
106
+ <Alert variant="success">Success message</Alert>
107
+ </Card>
108
+ </div>
109
+ )
110
+ }
111
+ ```
112
+
113
+ ## Components
114
+
115
+ ### Form Controls
116
+ - `Button` - Feature-rich button with variants and animations
117
+ - `Input` - Form input with validation states
118
+ - `Label` - Accessible form labels
119
+ - `Select` - Dropdown select component
120
+ - `Switch` - Toggle switch component
121
+ - `Tabs` - Tabbed interface component
122
+
123
+ ### Layout & Display
124
+ - `Card` - Flexible card component
125
+ - `Modal` - Accessible modal dialogs
126
+ - `Alert` - Alert messages with multiple states
127
+ - `Spinner` - Loading spinners
128
+ - `LoadingState` - Comprehensive loading states
129
+ - `EmptyState` - Empty state placeholders
130
+
131
+ ### Navigation
132
+ - `Breadcrumb` - SEO-optimized breadcrumbs
133
+ - `ConfirmationDialog` - Confirmation prompts
134
+
135
+ ### Typography
136
+ - `Typography` - Text components (PageTitle, SectionTitle, BodyText, TextLink)
137
+
138
+ ## Design System
139
+
140
+ The library includes a complete design system with:
141
+
142
+ - **Colors** - Semantic color palette with dark mode support
143
+ - **Typography** - Consistent text styles and hierarchy
144
+ - **Spacing** - Standardized spacing scale
145
+ - **Shadows** - Elevation system
146
+ - **Tokens** - Design tokens for consistency
147
+
148
+ ## Development
149
+
150
+ ```bash
151
+ # Install dependencies
152
+ npm install
153
+
154
+ # Start development server
155
+ npm run dev
156
+
157
+ # Build library
158
+ npm run build
159
+
160
+ # Run tests
161
+ npm test
162
+
163
+ # Lint code
164
+ npm run lint
165
+ ```
166
+
167
+ ## License
168
+
169
+ MIT
@@ -0,0 +1,3 @@
1
+ import { RefObject } from 'react';
2
+ export declare function useClickOutside<T extends HTMLElement = HTMLElement>(ref: RefObject<T>, handler: (event: Event) => void): void;
3
+ //# sourceMappingURL=useClickOutside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutside.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickOutside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7C,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACjE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,QAmBhC"}
@@ -0,0 +1,8 @@
1
+ interface UseCodeLoaderReturn {
2
+ code: string;
3
+ loading: boolean;
4
+ error: string | null;
5
+ }
6
+ export declare const useCodeLoader: (filename: string) => UseCodeLoaderReturn;
7
+ export {};
8
+ //# sourceMappingURL=useCodeLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodeLoader.d.ts","sourceRoot":"","sources":["../../src/hooks/useCodeLoader.ts"],"names":[],"mappings":"AAEA,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,mBAkChD,CAAC"}
@@ -0,0 +1,64 @@
1
+ export interface CopyToClipboardOptions {
2
+ successDuration?: number;
3
+ onSuccess?: (text: string) => void;
4
+ onError?: (error: Error) => void;
5
+ }
6
+ export interface CopyToClipboardResult {
7
+ copiedValue: string | null;
8
+ copyToClipboard: (text: string) => Promise<boolean>;
9
+ isCopied: (text: string) => boolean;
10
+ resetCopiedState: () => void;
11
+ }
12
+ /**
13
+ * Hook for managing copy-to-clipboard functionality with feedback
14
+ *
15
+ * Features:
16
+ * - Async clipboard API with fallback
17
+ * - Visual feedback state management
18
+ * - Automatic timeout for feedback reset
19
+ * - Error handling
20
+ * - Multiple copy tracking
21
+ *
22
+ * @param options - Configuration options
23
+ * @returns Object with copy function and state
24
+ *
25
+ * @example
26
+ * const { copyToClipboard, isCopied } = useCopyToClipboard({
27
+ * successDuration: 2000,
28
+ * onSuccess: (text) => console.log('Copied:', text)
29
+ * });
30
+ *
31
+ * // In component
32
+ * <button onClick={() => copyToClipboard('Hello World')}>
33
+ * {isCopied('Hello World') ? '✓ Copied!' : 'Copy'}
34
+ * </button>
35
+ */
36
+ export declare const useCopyToClipboard: (options?: CopyToClipboardOptions) => CopyToClipboardResult;
37
+ /**
38
+ * Hook for managing multiple copy states simultaneously
39
+ *
40
+ * Useful when you have multiple copyable items on the same page
41
+ * and want to track their individual copy states.
42
+ *
43
+ * @param options - Configuration options
44
+ * @returns Object with copy function and state management
45
+ *
46
+ * @example
47
+ * const { copyToClipboard, isCopied } = useMultipleCopyToClipboard();
48
+ *
49
+ * // Each item has its own copy state
50
+ * <button onClick={() => copyToClipboard('code1', 'item1')}>
51
+ * {isCopied('item1') ? '✓ Copied!' : 'Copy'}
52
+ * </button>
53
+ * <button onClick={() => copyToClipboard('code2', 'item2')}>
54
+ * {isCopied('item2') ? '✓ Copied!' : 'Copy'}
55
+ * </button>
56
+ */
57
+ export declare const useMultipleCopyToClipboard: (options?: CopyToClipboardOptions) => {
58
+ copiedStates: Record<string, boolean>;
59
+ copyToClipboard: (text: string, key: string) => Promise<boolean>;
60
+ isCopied: (key: string) => boolean;
61
+ resetCopiedState: (key?: string) => void;
62
+ };
63
+ export default useCopyToClipboard;
64
+ //# sourceMappingURL=useCopyToClipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCopyToClipboard.d.ts","sourceRoot":"","sources":["../../src/hooks/useCopyToClipboard.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAS,sBAA2B,KACnC,qBAmEF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,0BAA0B,GACrC,UAAS,sBAA2B;;4BAOrB,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;oBA6C7C,MAAM,KAAG,OAAO;6BAMoB,MAAM;CAcnD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}