@licklist/design 0.78.7-stage.65 → 0.78.7-stage.67

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.
@@ -58,6 +58,8 @@ export { useAuth, useCanAccess } from './hooks/useAuth';
58
58
  export type { AuthCredentials } from './types/navigation';
59
59
  export { SettingsPage, SettingsTabs, SidebarCustomisation, defaultSidebarItems, SidebarNavItem } from './pages/Settings';
60
60
  export type { SettingsPageProps, SettingsTabsProps, SettingsTab, SidebarCustomisationProps, SidebarItem, SidebarNavItemProps } from './pages/Settings';
61
+ export { LoginPage, ResetPasswordPage, CreatePasswordPage } from './pages/auth';
62
+ export type { LoginPageProps, ResetPasswordPageProps, CreatePasswordPageProps } from './pages/auth';
61
63
  /**
62
64
  * Design tokens are available as SCSS imports from:
63
65
  * - @/v2/styles/tokens/_colors.scss
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v2/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import './AuthLayout.scss';
3
+ export interface AuthLayoutProps {
4
+ badgeLabel: string;
5
+ icon: React.ReactNode;
6
+ title: string;
7
+ subtitle: string;
8
+ children: React.ReactNode;
9
+ version?: string;
10
+ error?: string;
11
+ successMessage?: string;
12
+ }
13
+ export declare const AuthLayout: React.FC<AuthLayoutProps>;
14
+ //# sourceMappingURL=AuthLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../../../src/v2/pages/auth/AuthLayout/AuthLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAClD,OAAO,mBAAmB,CAAA;AAM1B,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0ChD,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { AuthLayout } from './AuthLayout';
2
+ export type { AuthLayoutProps } from './AuthLayout';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/pages/auth/AuthLayout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { CreatePasswordPage } from './CreatePasswordPage';
2
+ export type { CreatePasswordPageProps } from './CreatePasswordPage';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/pages/auth/CreatePassword/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { LoginPage } from './LoginPage';
2
+ export type { LoginPageProps } from './LoginPage';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/pages/auth/Login/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { ResetPasswordPage } from './ResetPasswordPage';
2
+ export type { ResetPasswordPageProps } from './ResetPasswordPage';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/pages/auth/ResetPassword/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,11 @@
1
+ export { AuthLayout } from './AuthLayout';
2
+ export type { AuthLayoutProps } from './AuthLayout';
3
+ export { LoginPage } from './Login';
4
+ export type { LoginPageProps } from './Login';
5
+ export { ResetPasswordPage } from './ResetPassword';
6
+ export type { ResetPasswordPageProps } from './ResetPassword';
7
+ export { CreatePasswordPage } from './CreatePassword';
8
+ export type { CreatePasswordPageProps } from './CreatePassword';
9
+ export { VerifyEmailPage } from './VerifyEmail';
10
+ export type { VerifyEmailPageProps } from './VerifyEmail';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/pages/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.78.7-stage.65",
3
+ "version": "0.78.7-stage.67",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/bookedit-licklist/licklist_design.git"
package/src/v2/index.ts CHANGED
@@ -151,6 +151,10 @@ export type { AuthCredentials } from './types/navigation'
151
151
  export { SettingsPage, SettingsTabs, SidebarCustomisation, defaultSidebarItems, SidebarNavItem } from './pages/Settings'
152
152
  export type { SettingsPageProps, SettingsTabsProps, SettingsTab, SidebarCustomisationProps, SidebarItem, SidebarNavItemProps } from './pages/Settings'
153
153
 
154
+ // Auth Pages
155
+ export { LoginPage, ResetPasswordPage, CreatePasswordPage } from './pages/auth'
156
+ export type { LoginPageProps, ResetPasswordPageProps, CreatePasswordPageProps } from './pages/auth'
157
+
154
158
  // ============================================================================
155
159
  // Design Tokens
156
160
  // ============================================================================
@@ -0,0 +1,61 @@
1
+ import React, { useState, useEffect } from 'react'
2
+ import './AuthLayout.scss'
3
+ import { DashboardFooter } from '../../../navigation/DashboardLayout/DashboardFooter'
4
+ import { AuthBgDecorationIcon, BookedLogo } from '../../../icons'
5
+ import { Badge } from '../../../components/Badge'
6
+ import { Alert } from '../../../components/Alert'
7
+
8
+ export interface AuthLayoutProps {
9
+ badgeLabel: string
10
+ icon: React.ReactNode
11
+ title: string
12
+ subtitle: string
13
+ children: React.ReactNode
14
+ version?: string
15
+ error?: string
16
+ successMessage?: string
17
+ }
18
+
19
+ export const AuthLayout: React.FC<AuthLayoutProps> = ({ badgeLabel, icon, title, subtitle, children, version, error, successMessage }) => {
20
+ const [dismissed, setDismissed] = useState(false)
21
+
22
+ useEffect(() => {
23
+ setDismissed(false)
24
+ }, [error, successMessage])
25
+
26
+ const showError = error && !dismissed
27
+ const showSuccess = successMessage && !dismissed
28
+
29
+ return (
30
+ <div className="auth-layout">
31
+ <AuthBgDecorationIcon />
32
+
33
+ {showError && (
34
+ <Alert variant="error" title="Error" message={error} className="auth-layout__alert" onDismiss={() => setDismissed(true)} />
35
+ )}
36
+ {showSuccess && (
37
+ <Alert variant="success" title="Success" message={successMessage} className="auth-layout__alert" onDismiss={() => setDismissed(true)} />
38
+ )}
39
+
40
+ <div className="auth-layout__card">
41
+ <div className="auth-layout__header">
42
+ <BookedLogo />
43
+ <Badge>{badgeLabel}</Badge>
44
+ </div>
45
+ <div className="auth-layout__body">
46
+ <div className="auth-layout__content">
47
+ <div className="auth-layout__info">
48
+ <div className="auth-layout__icon">{icon}</div>
49
+ <h1 className="auth-layout__title">{title}</h1>
50
+ <p className="auth-layout__subtitle">{subtitle}</p>
51
+ </div>
52
+ <div className="auth-layout__form-area">
53
+ {children}
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ <DashboardFooter version={version} />
59
+ </div>
60
+ )
61
+ }
@@ -0,0 +1,2 @@
1
+ export { AuthLayout } from './AuthLayout'
2
+ export type { AuthLayoutProps } from './AuthLayout'
@@ -0,0 +1,149 @@
1
+ .auth-create-password {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0;
5
+
6
+ &__requirements {
7
+ margin-bottom: 24px;
8
+ }
9
+
10
+ &__requirements-title {
11
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
12
+ font-size: 15px;
13
+ font-weight: 600;
14
+ line-height: 1.4;
15
+ color: var(--label-primary);
16
+ margin: 0 0 8px;
17
+ padding: 0;
18
+ }
19
+
20
+ &__requirements-list {
21
+ list-style: none;
22
+ margin: 0;
23
+ padding: 0;
24
+ display: flex;
25
+ flex-direction: column;
26
+ gap: 6px;
27
+ }
28
+
29
+ &__requirement-item {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 8px;
33
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
34
+ font-size: 15px;
35
+ font-weight: 400;
36
+ line-height: 1.4;
37
+ color: var(--label-primary);
38
+ }
39
+
40
+ &__requirement-icon {
41
+ width: 16px;
42
+ height: 16px;
43
+ flex-shrink: 0;
44
+ border-radius: 50%;
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+
49
+ &--met {
50
+ color: var(--label-status-success);
51
+ }
52
+
53
+ &--unmet {
54
+ color: var(--label-status-error);
55
+ }
56
+
57
+ &--neutral {
58
+ color: var(--label-tertiary);
59
+ }
60
+ }
61
+
62
+ &__field {
63
+ margin-bottom: 16px;
64
+ }
65
+
66
+ &__field--last {
67
+ margin-bottom: 24px;
68
+ }
69
+
70
+ &__strength {
71
+ margin-top: 8px;
72
+ }
73
+
74
+ &__strength-header {
75
+ display: flex;
76
+ justify-content: space-between;
77
+ margin-bottom: 4px;
78
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
79
+ font-size: 12px;
80
+ color: var(--label-secondary);
81
+ }
82
+
83
+ &__strength-bar-track {
84
+ height: 4px;
85
+ background-color: var(--surface-tertiary);
86
+ border-radius: 4px;
87
+ overflow: hidden;
88
+ }
89
+
90
+ &__strength-bar-fill {
91
+ height: 100%;
92
+ border-radius: 4px;
93
+ transition: width 0.3s ease, background-color 0.3s ease;
94
+ }
95
+
96
+ &__match {
97
+ display: flex;
98
+ align-items: center;
99
+ gap: 8px;
100
+ margin-top: 8px;
101
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
102
+ font-size: 13px;
103
+
104
+ &--match {
105
+ color: var(--label-status-success);
106
+ }
107
+
108
+ &--no-match {
109
+ color: var(--label-status-error);
110
+ }
111
+ }
112
+
113
+ &__actions {
114
+ display: flex;
115
+ flex-direction: column;
116
+ gap: 12px;
117
+ align-items: flex-start;
118
+ }
119
+
120
+ &__reset-link {
121
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
122
+ font-size: 15px;
123
+ font-weight: 400;
124
+ color: var(--label-action);
125
+ text-decoration: underline;
126
+ background: none;
127
+ border: none;
128
+ padding: 0;
129
+ cursor: pointer;
130
+
131
+ &:hover {
132
+ opacity: 0.8;
133
+ }
134
+ }
135
+
136
+ &__error {
137
+ display: flex;
138
+ align-items: center;
139
+ gap: 8px;
140
+ padding: 10px 12px;
141
+ border-radius: 8px;
142
+ background-color: var(--surface-status-error);
143
+ border: 1px solid var(--border-status-error);
144
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
145
+ font-size: 13px;
146
+ color: var(--label-status-error);
147
+ margin-bottom: 16px;
148
+ }
149
+ }
@@ -0,0 +1,2 @@
1
+ export { CreatePasswordPage } from './CreatePasswordPage'
2
+ export type { CreatePasswordPageProps } from './CreatePasswordPage'
@@ -0,0 +1,49 @@
1
+ .auth-login {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0;
5
+
6
+ &__field {
7
+ margin-bottom: 16px;
8
+ }
9
+
10
+ &__field--last {
11
+ margin-bottom: 24px;
12
+ }
13
+
14
+ &__forgot {
15
+ display: inline-block;
16
+ margin-top: 8px;
17
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
18
+ font-size: 15px;
19
+ font-weight: 400;
20
+ color: var(--label-action);
21
+ text-decoration: underline;
22
+ background: none;
23
+ border: none;
24
+ padding: 0;
25
+ cursor: pointer;
26
+
27
+ &:hover {
28
+ opacity: 0.8;
29
+ }
30
+ }
31
+
32
+ &__actions {
33
+ margin-bottom: 0;
34
+ }
35
+
36
+ &__error {
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 8px;
40
+ padding: 10px 12px;
41
+ border-radius: 8px;
42
+ background-color: var(--surface-status-error);
43
+ border: 1px solid var(--border-status-error);
44
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
45
+ font-size: 13px;
46
+ color: var(--label-status-error);
47
+ margin-bottom: 16px;
48
+ }
49
+ }
@@ -0,0 +1,2 @@
1
+ export { LoginPage } from './LoginPage'
2
+ export type { LoginPageProps } from './LoginPage'
@@ -49,7 +49,7 @@
49
49
 
50
50
  &:hover {
51
51
  color: var(--label-action);
52
- text-decoration: none;
52
+ text-decoration: underline;
53
53
  opacity: 0.8;
54
54
  }
55
55
  }
@@ -0,0 +1,2 @@
1
+ export { ResetPasswordPage } from './ResetPasswordPage'
2
+ export type { ResetPasswordPageProps } from './ResetPasswordPage'
@@ -0,0 +1,14 @@
1
+ export { AuthLayout } from './AuthLayout'
2
+ export type { AuthLayoutProps } from './AuthLayout'
3
+
4
+ export { LoginPage } from './Login'
5
+ export type { LoginPageProps } from './Login'
6
+
7
+ export { ResetPasswordPage } from './ResetPassword'
8
+ export type { ResetPasswordPageProps } from './ResetPassword'
9
+
10
+ export { CreatePasswordPage } from './CreatePassword'
11
+ export type { CreatePasswordPageProps } from './CreatePassword'
12
+
13
+ export { VerifyEmailPage } from './VerifyEmail'
14
+ export type { VerifyEmailPageProps } from './VerifyEmail'