@umituz/web-dashboard 2.0.2 → 2.0.6

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 (40) hide show
  1. package/dist/onboarding/components/AppFocusStep.d.ts +26 -0
  2. package/dist/onboarding/components/AppFocusStep.js +86 -0
  3. package/dist/onboarding/components/AppFocusStep.js.map +1 -0
  4. package/dist/onboarding/components/OnboardingWizard.d.ts +13 -0
  5. package/dist/onboarding/components/OnboardingWizard.js +332 -0
  6. package/dist/onboarding/components/OnboardingWizard.js.map +1 -0
  7. package/dist/onboarding/components/PlanStep.d.ts +21 -0
  8. package/dist/onboarding/components/PlanStep.js +167 -0
  9. package/dist/onboarding/components/PlanStep.js.map +1 -0
  10. package/dist/onboarding/components/PlatformsStep.d.ts +26 -0
  11. package/dist/onboarding/components/PlatformsStep.js +86 -0
  12. package/dist/onboarding/components/PlatformsStep.js.map +1 -0
  13. package/dist/onboarding/components/UserTypeStep.d.ts +30 -0
  14. package/dist/onboarding/components/UserTypeStep.js +93 -0
  15. package/dist/onboarding/components/UserTypeStep.js.map +1 -0
  16. package/dist/onboarding/components/index.d.ts +9 -0
  17. package/dist/onboarding/components/index.js +738 -0
  18. package/dist/onboarding/components/index.js.map +1 -0
  19. package/dist/onboarding/hooks/index.d.ts +4 -0
  20. package/dist/onboarding/hooks/index.js +100 -0
  21. package/dist/onboarding/hooks/index.js.map +1 -0
  22. package/dist/onboarding/hooks/useOnboarding.d.ts +50 -0
  23. package/dist/onboarding/hooks/useOnboarding.js +100 -0
  24. package/dist/onboarding/hooks/useOnboarding.js.map +1 -0
  25. package/dist/onboarding/index.d.ts +11 -0
  26. package/dist/onboarding/index.js +913 -0
  27. package/dist/onboarding/index.js.map +1 -0
  28. package/dist/onboarding/types/index.d.ts +3 -0
  29. package/dist/onboarding/types/index.js +2 -0
  30. package/dist/onboarding/types/index.js.map +1 -0
  31. package/dist/onboarding/types/onboarding.d.ts +209 -0
  32. package/dist/onboarding/types/onboarding.js +2 -0
  33. package/dist/onboarding/types/onboarding.js.map +1 -0
  34. package/dist/onboarding/utils/index.d.ts +4 -0
  35. package/dist/onboarding/utils/index.js +83 -0
  36. package/dist/onboarding/utils/index.js.map +1 -0
  37. package/dist/onboarding/utils/onboarding.d.ts +106 -0
  38. package/dist/onboarding/utils/onboarding.js +83 -0
  39. package/dist/onboarding/utils/onboarding.js.map +1 -0
  40. package/package.json +23 -1
@@ -0,0 +1,83 @@
1
+ "use client";
2
+
3
+ // src/domains/onboarding/utils/onboarding.ts
4
+ function validateStep(state, stepNumber, config) {
5
+ const stepConfig = config.steps[stepNumber - 1];
6
+ if (stepConfig?.validate) {
7
+ return stepConfig.validate(state);
8
+ }
9
+ switch (stepNumber) {
10
+ case 1:
11
+ return !!state.selectedUserType;
12
+ case 2:
13
+ return !!(state.hasMobileApp || state.hasWebApp);
14
+ case 3:
15
+ return state.connectedPlatforms.length > 0;
16
+ case 4:
17
+ return !!state.selectedPlan;
18
+ default:
19
+ return true;
20
+ }
21
+ }
22
+ function getStepTitle(stepNumber, config) {
23
+ const stepConfig = config.steps[stepNumber - 1];
24
+ return stepConfig?.title || `Step ${stepNumber}`;
25
+ }
26
+ function getStepDescription(stepNumber, config) {
27
+ const stepConfig = config.steps[stepNumber - 1];
28
+ return stepConfig?.description;
29
+ }
30
+ function calculateProgress(currentStep, totalSteps) {
31
+ return Math.min(currentStep / totalSteps * 100, 100);
32
+ }
33
+ function getCompletedSteps(currentStep) {
34
+ return Array.from({ length: currentStep - 1 }, (_, i) => i + 1);
35
+ }
36
+ function formatOnboardingData(state, userId) {
37
+ return {
38
+ userId,
39
+ userType: state.selectedUserType,
40
+ hasMobileApp: state.hasMobileApp,
41
+ hasWebApp: state.hasWebApp,
42
+ connectedPlatforms: state.connectedPlatforms,
43
+ selectedPlan: state.selectedPlan,
44
+ billingCycle: state.billingCycle,
45
+ stepData: state.stepData,
46
+ completedAt: (/* @__PURE__ */ new Date()).toISOString()
47
+ };
48
+ }
49
+ function generateOnboardingEvent(event, state, additionalData) {
50
+ return {
51
+ event,
52
+ properties: {
53
+ currentStep: state.currentStep,
54
+ userType: state.selectedUserType,
55
+ hasMobileApp: state.hasMobileApp,
56
+ hasWebApp: state.hasWebApp,
57
+ platformCount: state.connectedPlatforms.length,
58
+ selectedPlan: state.selectedPlan,
59
+ billingCycle: state.billingCycle,
60
+ ...additionalData
61
+ },
62
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
63
+ };
64
+ }
65
+ function isValidEmail(email) {
66
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
67
+ return emailRegex.test(email);
68
+ }
69
+ function isValidPassword(password, minLength = 8) {
70
+ return password.length >= minLength;
71
+ }
72
+ export {
73
+ calculateProgress,
74
+ formatOnboardingData,
75
+ generateOnboardingEvent,
76
+ getCompletedSteps,
77
+ getStepDescription,
78
+ getStepTitle,
79
+ isValidEmail,
80
+ isValidPassword,
81
+ validateStep
82
+ };
83
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/domains/onboarding/utils/onboarding.ts"],"sourcesContent":["/**\n * Onboarding Utilities\n *\n * Utility functions for onboarding operations\n */\n\nimport type { OnboardingState, OnboardingConfig } from \"../types/onboarding\";\n\n/**\n * Validate onboarding step\n *\n * @param state - Current onboarding state\n * @param stepNumber - Step number to validate\n * @param config - Onboarding configuration\n * @returns Whether the step is valid\n */\nexport function validateStep(\n state: OnboardingState,\n stepNumber: number,\n config: OnboardingConfig\n): boolean {\n const stepConfig = config.steps[stepNumber - 1];\n\n if (stepConfig?.validate) {\n return stepConfig.validate(state);\n }\n\n // Default validations\n switch (stepNumber) {\n case 1:\n // User type step\n return !!state.selectedUserType;\n\n case 2:\n // App focus step\n return !!(state.hasMobileApp || state.hasWebApp);\n\n case 3:\n // Platforms step\n return state.connectedPlatforms.length > 0;\n\n case 4:\n // Plan step\n return !!state.selectedPlan;\n\n default:\n return true;\n }\n}\n\n/**\n * Get step title\n *\n * @param stepNumber - Step number\n * @param config - Onboarding configuration\n * @returns Step title\n */\nexport function getStepTitle(stepNumber: number, config: OnboardingConfig): string {\n const stepConfig = config.steps[stepNumber - 1];\n return stepConfig?.title || `Step ${stepNumber}`;\n}\n\n/**\n * Get step description\n *\n * @param stepNumber - Step number\n * @param config - Onboarding configuration\n * @returns Step description or undefined\n */\nexport function getStepDescription(stepNumber: number, config: OnboardingConfig): string | undefined {\n const stepConfig = config.steps[stepNumber - 1];\n return stepConfig?.description;\n}\n\n/**\n * Calculate onboarding progress\n *\n * @param currentStep - Current step number\n * @param totalSteps - Total number of steps\n * @returns Progress percentage (0-100)\n */\nexport function calculateProgress(currentStep: number, totalSteps: number): number {\n return Math.min((currentStep / totalSteps) * 100, 100);\n}\n\n/**\n * Get completed steps\n *\n * @param currentStep - Current step number\n * @returns Array of completed step numbers\n */\nexport function getCompletedSteps(currentStep: number): number[] {\n return Array.from({ length: currentStep - 1 }, (_, i) => i + 1);\n}\n\n/**\n * Format onboarding data for API submission\n *\n * @param state - Onboarding state\n * @param userId - User ID\n * @returns Formatted data object\n */\nexport function formatOnboardingData(state: OnboardingState, userId?: string) {\n return {\n userId,\n userType: state.selectedUserType,\n hasMobileApp: state.hasMobileApp,\n hasWebApp: state.hasWebApp,\n connectedPlatforms: state.connectedPlatforms,\n selectedPlan: state.selectedPlan,\n billingCycle: state.billingCycle,\n stepData: state.stepData,\n completedAt: new Date().toISOString(),\n };\n}\n\n/**\n * Generate onboarding analytics event\n *\n * @param event - Event name\n * @param state - Onboarding state\n * @param additionalData - Additional event data\n * @returns Analytics event object\n */\nexport function generateOnboardingEvent(\n event: string,\n state: OnboardingState,\n additionalData?: Record<string, unknown>\n) {\n return {\n event,\n properties: {\n currentStep: state.currentStep,\n userType: state.selectedUserType,\n hasMobileApp: state.hasMobileApp,\n hasWebApp: state.hasWebApp,\n platformCount: state.connectedPlatforms.length,\n selectedPlan: state.selectedPlan,\n billingCycle: state.billingCycle,\n ...additionalData,\n },\n timestamp: new Date().toISOString(),\n };\n}\n\n/**\n * Validate email format\n *\n * @param email - Email address\n * @returns Whether email is valid\n */\nexport function isValidEmail(email: string): boolean {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n}\n\n/**\n * Validate password strength\n *\n * @param password - Password\n * @param minLength - Minimum length (default: 8)\n * @returns Whether password meets requirements\n */\nexport function isValidPassword(password: string, minLength: number = 8): boolean {\n return password.length >= minLength;\n}\n"],"mappings":";;;AAgBO,SAAS,aACd,OACA,YACA,QACS;AACT,QAAM,aAAa,OAAO,MAAM,aAAa,CAAC;AAE9C,MAAI,YAAY,UAAU;AACxB,WAAO,WAAW,SAAS,KAAK;AAAA,EAClC;AAGA,UAAQ,YAAY;AAAA,IAClB,KAAK;AAEH,aAAO,CAAC,CAAC,MAAM;AAAA,IAEjB,KAAK;AAEH,aAAO,CAAC,EAAE,MAAM,gBAAgB,MAAM;AAAA,IAExC,KAAK;AAEH,aAAO,MAAM,mBAAmB,SAAS;AAAA,IAE3C,KAAK;AAEH,aAAO,CAAC,CAAC,MAAM;AAAA,IAEjB;AACE,aAAO;AAAA,EACX;AACF;AASO,SAAS,aAAa,YAAoB,QAAkC;AACjF,QAAM,aAAa,OAAO,MAAM,aAAa,CAAC;AAC9C,SAAO,YAAY,SAAS,QAAQ,UAAU;AAChD;AASO,SAAS,mBAAmB,YAAoB,QAA8C;AACnG,QAAM,aAAa,OAAO,MAAM,aAAa,CAAC;AAC9C,SAAO,YAAY;AACrB;AASO,SAAS,kBAAkB,aAAqB,YAA4B;AACjF,SAAO,KAAK,IAAK,cAAc,aAAc,KAAK,GAAG;AACvD;AAQO,SAAS,kBAAkB,aAA+B;AAC/D,SAAO,MAAM,KAAK,EAAE,QAAQ,cAAc,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAChE;AASO,SAAS,qBAAqB,OAAwB,QAAiB;AAC5E,SAAO;AAAA,IACL;AAAA,IACA,UAAU,MAAM;AAAA,IAChB,cAAc,MAAM;AAAA,IACpB,WAAW,MAAM;AAAA,IACjB,oBAAoB,MAAM;AAAA,IAC1B,cAAc,MAAM;AAAA,IACpB,cAAc,MAAM;AAAA,IACpB,UAAU,MAAM;AAAA,IAChB,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,EACtC;AACF;AAUO,SAAS,wBACd,OACA,OACA,gBACA;AACA,SAAO;AAAA,IACL;AAAA,IACA,YAAY;AAAA,MACV,aAAa,MAAM;AAAA,MACnB,UAAU,MAAM;AAAA,MAChB,cAAc,MAAM;AAAA,MACpB,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM,mBAAmB;AAAA,MACxC,cAAc,MAAM;AAAA,MACpB,cAAc,MAAM;AAAA,MACpB,GAAG;AAAA,IACL;AAAA,IACA,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,EACpC;AACF;AAQO,SAAS,aAAa,OAAwB;AACnD,QAAM,aAAa;AACnB,SAAO,WAAW,KAAK,KAAK;AAC9B;AASO,SAAS,gBAAgB,UAAkB,YAAoB,GAAY;AAChF,SAAO,SAAS,UAAU;AAC5B;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/web-dashboard",
3
- "version": "2.0.2",
3
+ "version": "2.0.6",
4
4
  "description": "Dashboard Layout System - Customizable, themeable dashboard layouts and settings",
5
5
  "type": "module",
6
6
  "exports": {
@@ -48,6 +48,26 @@
48
48
  "types": "./dist/domains/settings/types/index.d.ts",
49
49
  "import": "./dist/domains/settings/types/index.js"
50
50
  },
51
+ "./onboarding": {
52
+ "types": "./dist/domains/onboarding/index.d.ts",
53
+ "import": "./dist/domains/onboarding/index.js"
54
+ },
55
+ "./onboarding/components": {
56
+ "types": "./dist/domains/onboarding/components/index.d.ts",
57
+ "import": "./dist/domains/onboarding/components/index.js"
58
+ },
59
+ "./onboarding/hooks": {
60
+ "types": "./dist/domains/onboarding/hooks/index.d.ts",
61
+ "import": "./dist/domains/onboarding/hooks/index.js"
62
+ },
63
+ "./onboarding/utils": {
64
+ "types": "./dist/domains/onboarding/utils/index.d.ts",
65
+ "import": "./dist/domains/onboarding/utils/index.js"
66
+ },
67
+ "./onboarding/types": {
68
+ "types": "./dist/domains/onboarding/types/index.d.ts",
69
+ "import": "./dist/domains/onboarding/types/index.js"
70
+ },
51
71
  "./package.json": "./package.json"
52
72
  },
53
73
  "files": [
@@ -88,6 +108,8 @@
88
108
  "dashboard",
89
109
  "layout",
90
110
  "settings",
111
+ "onboarding",
112
+ "wizard",
91
113
  "react",
92
114
  "typescript",
93
115
  "components",