@skysoftware-co/bayan-core-widgets-ui 0.0.8 → 0.0.10
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.
- package/README.md +520 -1
- package/fesm2022/skysoftware-co-bayan-core-widgets-ui.mjs +4125 -0
- package/fesm2022/skysoftware-co-bayan-core-widgets-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/shared/common-methods/navigation.utils.d.ts +3 -0
- package/lib/shared/menu.dtos.d.ts +90 -0
- package/lib/shared/menu.service.d.ts +23 -0
- package/lib/shared/pipes/translate.pipe.d.ts +10 -0
- package/lib/shared/services/translate.service.d.ts +12 -0
- package/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.d.ts +36 -0
- package/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.d.ts +32 -0
- package/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.d.ts +58 -0
- package/lib/top-menu-widget/components/item-widget/item-widget.component.d.ts +28 -0
- package/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.d.ts +22 -0
- package/lib/top-menu-widget/components/settings-widget/settings-widget.component.d.ts +73 -0
- package/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.d.ts +42 -0
- package/lib/top-menu-widget/top-menu-widget.component.d.ts +61 -0
- package/lib/top-menu-widget/top-menu-widget.models.d.ts +24 -0
- package/package.json +56 -59
- package/{projects/bayan-core-ui/src/public-api.ts → public-api.d.ts} +10 -14
- package/.editorconfig +0 -17
- package/.github/copilot/WidgetDevelopmentGuide.md +0 -632
- package/.github/copilot/WidgetProjectStructure.md +0 -81
- package/.github/copilot/git.md +0 -176
- package/.github/copilot/guideline.md +0 -466
- package/.github/copilot-instructions.md +0 -697
- package/.github/prompts/As world class developer, create unit tests for.prompt.md +0 -7
- package/Web.config +0 -7
- package/angular.json +0 -43
- package/projects/bayan-core-ui/README.md +0 -522
- package/projects/bayan-core-ui/ng-package.json +0 -7
- package/projects/bayan-core-ui/package.json +0 -36
- package/projects/bayan-core-ui/src/assets/i18n/ar.json +0 -725
- package/projects/bayan-core-ui/src/assets/i18n/en.json +0 -683
- package/projects/bayan-core-ui/src/assets/i18n/fr.json +0 -687
- package/projects/bayan-core-ui/src/lib/shared/common-methods/navigation.utils.ts +0 -21
- package/projects/bayan-core-ui/src/lib/shared/menu.dtos.ts +0 -107
- package/projects/bayan-core-ui/src/lib/shared/menu.service.ts +0 -157
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.html +0 -37
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.ts +0 -68
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.html +0 -56
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.ts +0 -158
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.html +0 -39
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.ts +0 -152
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/item-widget/item-widget.component.html +0 -39
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/item-widget/item-widget.component.ts +0 -80
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.html +0 -10
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.ts +0 -89
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/settings-widget/settings-widget.component.html +0 -111
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/settings-widget/settings-widget.component.ts +0 -235
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.html +0 -54
- package/projects/bayan-core-ui/src/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.ts +0 -140
- package/projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.component.html +0 -107
- package/projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.component.ts +0 -164
- package/projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.models.ts +0 -29
- package/projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.styles.css +0 -1378
- package/projects/bayan-core-ui/tsconfig.lib.json +0 -16
- package/projects/bayan-core-ui/tsconfig.lib.prod.json +0 -9
- package/projects/bayan-core-ui/tsconfig.spec.json +0 -13
- package/tsconfig.json +0 -40
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
Bayan Core Widgets Project Structure & Widget Creation Guide
|
|
2
|
-
Project Structure Overview
|
|
3
|
-
This repository is organized as follows:
|
|
4
|
-
|
|
5
|
-
Bayan.Core.Widgets/
|
|
6
|
-
├── projects/
|
|
7
|
-
│ └── namespace-ui/
|
|
8
|
-
│ ├── README.md
|
|
9
|
-
│ ├── src/
|
|
10
|
-
│ │ └── lib/
|
|
11
|
-
│ │ ├── <widget-name>/
|
|
12
|
-
│ │ │ ├── <widget-name>.component.ts
|
|
13
|
-
│ │ │ ├── <widget-name>.component.html
|
|
14
|
-
│ │ │ ├── <widget-name>.component.scss
|
|
15
|
-
│ │ │ └── ...
|
|
16
|
-
│ │ └── shared/
|
|
17
|
-
│ │ ├── <feature>.dtos.ts
|
|
18
|
-
│ │ └── <feature>.service.ts
|
|
19
|
-
│ └── ...
|
|
20
|
-
├── README.md
|
|
21
|
-
└── ...
|
|
22
|
-
|
|
23
|
-
• Each widget is a standalone Angular component under `projects/namespace-ui/src/lib/<widget-name>/`.
|
|
24
|
-
• Reusable DTOs and services shared by multiple widgets belong under `projects/namespace-ui/src/lib/shared/`.
|
|
25
|
-
• Reuse shared services and pipes exported by `@skysoftware-co/sky-components-ui` before adding new ones under the Widgets project.
|
|
26
|
-
• Do not create Widgets-local services named `CookiesService`, `SecureCookieService`, `SecureStorageService`, `LocalStorageService`, `EncryptionService`, `TranslationService`, `SkyScreenService`, or `SkyPDFService`; import them from `@skysoftware-co/sky-components-ui`.
|
|
27
|
-
• Do not create Widgets-local pipes named `capitalizefirst`, `highlight`, `safe`, or `translate`; import them from `@skysoftware-co/sky-components-ui`.
|
|
28
|
-
• Documentation for this library belongs at `projects/namespace-ui/README.md`.
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
How to Create a New Widget
|
|
32
|
-
1. Generate a New Standalone Component
|
|
33
|
-
From the root of the repository, run:
|
|
34
|
-
ng generate component <widget-name> --project namespace-ui --standalone
|
|
35
|
-
|
|
36
|
-
This creates a new folder and component files under `projects/namespace-ui/src/lib/<widget-name>/`
|
|
37
|
-
|
|
38
|
-
2. (Optional) Reuse Existing Shared Services Or Pipes First
|
|
39
|
-
If your widget needs API, translation, formatting, or shared infrastructure behavior, first import the exported service or pipe from `@skysoftware-co/sky-components-ui`.
|
|
40
|
-
|
|
41
|
-
Create a new Widgets-local service only if the package does not already provide the required behavior.
|
|
42
|
-
Never create local replacements for `CookiesService`, `SecureCookieService`, `SecureStorageService`, `LocalStorageService`, `EncryptionService`, `TranslationService`, `SkyScreenService`, `SkyPDFService`, `capitalizefirst`, `highlight`, `safe`, or `translate`.
|
|
43
|
-
If the new DTO or service will be reused by more than one widget, create it under `projects/namespace-ui/src/lib/shared/` instead of the widget folder.
|
|
44
|
-
|
|
45
|
-
3. Implement the Widget
|
|
46
|
-
• Use @Input() for all configurable properties.
|
|
47
|
-
• Use @Output() for all events.
|
|
48
|
-
• Use the shared translation pipes exported by `@skysoftware-co/sky-components-ui` for all user-facing text.
|
|
49
|
-
• Use shared services from `@skysoftware-co/sky-components-ui` when available, otherwise use a Widgets-specific service with baseUrl as an input.
|
|
50
|
-
• Emit loading and error states via isLoadingChanged and errorOccurred outputs.
|
|
51
|
-
• Keep widget-private files inside the widget folder.
|
|
52
|
-
• Keep reusable shared DTOs and services in `src/lib/shared/`.
|
|
53
|
-
4. Add the Widget to the Module (if needed)
|
|
54
|
-
If you are not using standalone components, declare your widget in the appropriate module. For standalone, this is not required.
|
|
55
|
-
5. Follow Naming and Code Standards
|
|
56
|
-
• Component selector: hr-<widget-name>
|
|
57
|
-
• Folder and file names: kebab-case
|
|
58
|
-
• Class names: PascalCase
|
|
59
|
-
• Inputs/Outputs: camelCase
|
|
60
|
-
6. Test and Document
|
|
61
|
-
• Add unit tests in the same folder as your component.
|
|
62
|
-
• Document all inputs, outputs, and usage in `projects/namespace-ui/README.md` unless the user explicitly requests another documentation location.
|
|
63
|
-
---
|
|
64
|
-
Example: Creating a "profile-job-info-contract-widget"
|
|
65
|
-
1. Generate the component:
|
|
66
|
-
ng generate component profile-job-info-contract-widget --project namespace-ui --standalone
|
|
67
|
-
|
|
68
|
-
2. Import and reuse the required shared service or pipe from `@skysoftware-co/sky-components-ui` when available.
|
|
69
|
-
|
|
70
|
-
3. Implement as per standards above.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
Additional Tips
|
|
75
|
-
• Review existing widgets in `projects/namespace-ui/src/lib/` for reference.
|
|
76
|
-
• Use the provided services and pipes from `@skysoftware-co/sky-components-ui` before adding new Widgets-specific implementations.
|
|
77
|
-
• Keep widgets focused and reusable.
|
|
78
|
-
• If another repo is mentioned as a source example, treat it as reference-only unless the user explicitly asks to edit it.
|
|
79
|
-
---
|
|
80
|
-
For more details, see the main ./README.md and the Widget Development Guide.
|
|
81
|
-
---
|
package/.github/copilot/git.md
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
## Version Control
|
|
2
|
-
|
|
3
|
-
This document defines the standards and conventions used in Git version control. All developers and AI assistants should follow these guidelines to maintain consistency across the codebase.
|
|
4
|
-
|
|
5
|
-
### Commit Message Format
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
<type>(<scope>): <subject>
|
|
9
|
-
|
|
10
|
-
Types: feat, fix, docs, refactor, test, chore
|
|
11
|
-
Examples:
|
|
12
|
-
- feat(policy): add premium rule validation
|
|
13
|
-
- fix(employee): correct service years calculation
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### Branch Naming
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
feature/add-dependant-enrollment
|
|
20
|
-
bugfix/fix-premium-calculation
|
|
21
|
-
hotfix/correct-membership-id-generation
|
|
22
|
-
refactor/improve-error-handling
|
|
23
|
-
docs/update-api-documentation
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### .gitignore Configuration
|
|
27
|
-
|
|
28
|
-
Every .NET repository MUST have a `.gitignore` file in the repository root. When creating new projects, always create this file with the standard configuration below.
|
|
29
|
-
|
|
30
|
-
**Create file:** `.gitignore` (repository root)
|
|
31
|
-
|
|
32
|
-
**Essential exclusions:**
|
|
33
|
-
- Build outputs (`bin/`, `obj/`)
|
|
34
|
-
- IDE files (`.vs/`, `.vscode/`, `.idea/`)
|
|
35
|
-
- User-specific files (`*.suo`, `*.user`)
|
|
36
|
-
- NuGet packages (`packages/`, `*.nupkg`)
|
|
37
|
-
- Sensitive files (`appsettings.Development.json`, `*.pfx`, `.env`)
|
|
38
|
-
- Test results (`TestResults/`, `*.trx`)
|
|
39
|
-
- OS-specific files (`Thumbs.db`, `.DS_Store`)
|
|
40
|
-
|
|
41
|
-
**Complete .gitignore template:**
|
|
42
|
-
|
|
43
|
-
```gitignore
|
|
44
|
-
# .NET Build Outputs
|
|
45
|
-
[Bb]in/
|
|
46
|
-
[Oo]bj/
|
|
47
|
-
[Ll]og/
|
|
48
|
-
[Ll]ogs/
|
|
49
|
-
|
|
50
|
-
# Visual Studio 2022/2019/2017 cache/options
|
|
51
|
-
.vs/
|
|
52
|
-
*.suo
|
|
53
|
-
*.user
|
|
54
|
-
*.userosscache
|
|
55
|
-
*.sln.docstates
|
|
56
|
-
|
|
57
|
-
# Visual Studio Code
|
|
58
|
-
.vscode/*
|
|
59
|
-
!.vscode/settings.json
|
|
60
|
-
!.vscode/tasks.json
|
|
61
|
-
!.vscode/launch.json
|
|
62
|
-
!.vscode/extensions.json
|
|
63
|
-
*.code-workspace
|
|
64
|
-
|
|
65
|
-
# Build results
|
|
66
|
-
[Dd]ebug/
|
|
67
|
-
[Dd]ebugPublic/
|
|
68
|
-
[Rr]elease/
|
|
69
|
-
[Rr]eleases/
|
|
70
|
-
x64/
|
|
71
|
-
x86/
|
|
72
|
-
[Ww][Ii][Nn]32/
|
|
73
|
-
[Aa][Rr][Mm]/
|
|
74
|
-
[Aa][Rr][Mm]64/
|
|
75
|
-
bld/
|
|
76
|
-
|
|
77
|
-
# .NET Core
|
|
78
|
-
project.lock.json
|
|
79
|
-
project.fragment.lock.json
|
|
80
|
-
artifacts/
|
|
81
|
-
|
|
82
|
-
# NuGet Packages
|
|
83
|
-
*.nupkg
|
|
84
|
-
*.snupkg
|
|
85
|
-
**/packages/*
|
|
86
|
-
!**/packages/build/
|
|
87
|
-
*.nuget.props
|
|
88
|
-
*.nuget.targets
|
|
89
|
-
|
|
90
|
-
# Test Results
|
|
91
|
-
[Tt]est[Rr]esult*/
|
|
92
|
-
[Bb]uild[Ll]og.*
|
|
93
|
-
*.trx
|
|
94
|
-
*.coverage
|
|
95
|
-
*.coveragexml
|
|
96
|
-
TestResults/
|
|
97
|
-
|
|
98
|
-
# Visual Studio profiler
|
|
99
|
-
*.psess
|
|
100
|
-
*.vsp
|
|
101
|
-
*.vspx
|
|
102
|
-
*.sap
|
|
103
|
-
|
|
104
|
-
# ReSharper
|
|
105
|
-
_ReSharper*/
|
|
106
|
-
*.[Rr]e[Ss]harper
|
|
107
|
-
*.DotSettings.user
|
|
108
|
-
|
|
109
|
-
# JetBrains Rider
|
|
110
|
-
*.sln.iml
|
|
111
|
-
.idea/
|
|
112
|
-
|
|
113
|
-
# SQL Server files
|
|
114
|
-
*.mdf
|
|
115
|
-
*.ldf
|
|
116
|
-
*.ndf
|
|
117
|
-
|
|
118
|
-
# Sensitive configuration files
|
|
119
|
-
appsettings.Development.json
|
|
120
|
-
appsettings.Local.json
|
|
121
|
-
*.secrets.json
|
|
122
|
-
connectionstrings.json
|
|
123
|
-
*.pfx
|
|
124
|
-
*.p12
|
|
125
|
-
|
|
126
|
-
# AWS credentials
|
|
127
|
-
credentials
|
|
128
|
-
config
|
|
129
|
-
|
|
130
|
-
# Environment files
|
|
131
|
-
.env
|
|
132
|
-
.env.local
|
|
133
|
-
.env.*.local
|
|
134
|
-
|
|
135
|
-
# macOS
|
|
136
|
-
.DS_Store
|
|
137
|
-
|
|
138
|
-
# Windows
|
|
139
|
-
Thumbs.db
|
|
140
|
-
Desktop.ini
|
|
141
|
-
$RECYCLE.BIN/
|
|
142
|
-
*.lnk
|
|
143
|
-
|
|
144
|
-
# Logs and databases
|
|
145
|
-
*.log
|
|
146
|
-
*.sqlite
|
|
147
|
-
*.sqlite3
|
|
148
|
-
|
|
149
|
-
# Temporary files
|
|
150
|
-
*.tmp
|
|
151
|
-
*.temp
|
|
152
|
-
*.swp
|
|
153
|
-
*~
|
|
154
|
-
|
|
155
|
-
# Coverage reports
|
|
156
|
-
coverage/
|
|
157
|
-
|
|
158
|
-
# Terraform
|
|
159
|
-
*.tfstate
|
|
160
|
-
*.tfstate.*
|
|
161
|
-
.terraform/
|
|
162
|
-
|
|
163
|
-
# Docker
|
|
164
|
-
docker-compose.override.yml
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**Why this matters:**
|
|
168
|
-
- Prevents committing build artifacts and generated files
|
|
169
|
-
- Protects sensitive configuration and credentials
|
|
170
|
-
- Keeps repository clean and reduces merge conflicts
|
|
171
|
-
- Ensures consistent behavior across development environments
|
|
172
|
-
|
|
173
|
-
**When to create:**
|
|
174
|
-
- ✅ ALWAYS create `.gitignore` as first file in new repository
|
|
175
|
-
- ✅ Before first `git add` command
|
|
176
|
-
- ✅ When setting up new .NET solution
|
|
@@ -1,466 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Bayan HRMS — AI Design & Development Prompt Guide
|
|
3
|
-
|
|
4
|
-
This document defines the complete rules for generating UI designs and Angular components for Bayan HRMS using AI tools such as Figma Make, design copilots, or code generators.
|
|
5
|
-
|
|
6
|
-
The AI MUST follow these rules strictly when generating any screen, component, or UI layout.
|
|
7
|
-
|
|
8
|
-
This guideline is the single source of truth for:
|
|
9
|
-
- UI Design
|
|
10
|
-
- UX Structure
|
|
11
|
-
- Design Tokens
|
|
12
|
-
- Angular Implementation
|
|
13
|
-
- Component Architecture
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
# 1. Product Design Philosophy
|
|
18
|
-
|
|
19
|
-
All UI generated must follow these product values.
|
|
20
|
-
|
|
21
|
-
## Core Principles
|
|
22
|
-
|
|
23
|
-
1. Clarity over cleverness
|
|
24
|
-
HR systems are used daily. Reduce cognitive load.
|
|
25
|
-
|
|
26
|
-
2. Consistency builds trust
|
|
27
|
-
Use the same patterns everywhere.
|
|
28
|
-
|
|
29
|
-
3. Scalability
|
|
30
|
-
UI must work for small companies and enterprise hospitality groups.
|
|
31
|
-
|
|
32
|
-
4. Respect user time
|
|
33
|
-
Interfaces should feel fast and purposeful.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
# 2. UX Guidelines
|
|
38
|
-
|
|
39
|
-
AI must follow these UX rules:
|
|
40
|
-
|
|
41
|
-
- Layouts must be task-first
|
|
42
|
-
- Use progressive disclosure for advanced options
|
|
43
|
-
- Avoid visual clutter
|
|
44
|
-
- Always provide clear system feedback
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
# 3. Layout System
|
|
49
|
-
|
|
50
|
-
## Frame Sizes
|
|
51
|
-
|
|
52
|
-
Desktop: 1440px
|
|
53
|
-
Extended detail screens: 1460px
|
|
54
|
-
Tablet: 1024px
|
|
55
|
-
Mobile: 375px (reference only)
|
|
56
|
-
|
|
57
|
-
## Grid System
|
|
58
|
-
|
|
59
|
-
- 12 column grid
|
|
60
|
-
- Margin: 80px
|
|
61
|
-
- Content margin: 32px
|
|
62
|
-
- Gutter: 24px
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
# 4. Spacing System
|
|
67
|
-
|
|
68
|
-
Use the 8px spacing scale.
|
|
69
|
-
|
|
70
|
-
Allowed values:
|
|
71
|
-
4, 8, 16, 24, 32, 40, 48, 64
|
|
72
|
-
|
|
73
|
-
Typical usage:
|
|
74
|
-
|
|
75
|
-
- Tight spacing: 4px
|
|
76
|
-
- Component spacing: 8px
|
|
77
|
-
- Standard gaps: 16px
|
|
78
|
-
- Section spacing: 32px
|
|
79
|
-
- Page margins: 48px
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
# 5. Color System
|
|
84
|
-
|
|
85
|
-
AI must only use colors from this palette.
|
|
86
|
-
|
|
87
|
-
## Primary Colors
|
|
88
|
-
|
|
89
|
-
Primary Orange: #F18206
|
|
90
|
-
Link Orange: #F78204
|
|
91
|
-
Secondary Beige: #F0E4D5
|
|
92
|
-
Teal Accent: #00796B
|
|
93
|
-
|
|
94
|
-
Usage:
|
|
95
|
-
|
|
96
|
-
- #F18206 → Primary actions
|
|
97
|
-
- #F78204 → Links
|
|
98
|
-
- #00796B → Action icons
|
|
99
|
-
- #F0E4D5 → Badges
|
|
100
|
-
|
|
101
|
-
## Neutral Colors
|
|
102
|
-
|
|
103
|
-
Background Primary: #FFFFFF
|
|
104
|
-
Background Secondary: #FAFAFA
|
|
105
|
-
Background Tertiary: #F5F5F5
|
|
106
|
-
Text Primary: #333333
|
|
107
|
-
Text Tertiary: #212529
|
|
108
|
-
|
|
109
|
-
Important rule:
|
|
110
|
-
|
|
111
|
-
Never use grey text like #9D9C9C.
|
|
112
|
-
|
|
113
|
-
Muted text must be:
|
|
114
|
-
#333333 with font-weight 300.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
# 6. Status Colors
|
|
119
|
-
|
|
120
|
-
Accepted: #F18206
|
|
121
|
-
Assigned: #F3C94B
|
|
122
|
-
Assessed: #3B82F6
|
|
123
|
-
Reviewed: #388E3C
|
|
124
|
-
|
|
125
|
-
Additional semantic colors:
|
|
126
|
-
|
|
127
|
-
Error: #EF4444
|
|
128
|
-
Warning: #F59E0B
|
|
129
|
-
Neutral: #9CA3AF
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
# 7. Typography
|
|
134
|
-
|
|
135
|
-
Font family: Inter
|
|
136
|
-
|
|
137
|
-
## Typography Scale
|
|
138
|
-
|
|
139
|
-
H1 — 32px Bold
|
|
140
|
-
H2 — 22px Medium
|
|
141
|
-
H3 — 16px Semibold
|
|
142
|
-
Body Large — 16px Regular
|
|
143
|
-
Body — 14px Regular
|
|
144
|
-
Small — 12px Regular
|
|
145
|
-
Caption — 10px Regular
|
|
146
|
-
|
|
147
|
-
## Typography Rules
|
|
148
|
-
|
|
149
|
-
- Only one H1 per screen
|
|
150
|
-
- Maintain hierarchy with size and weight
|
|
151
|
-
- Minimum line height 1.4
|
|
152
|
-
- Text must be left aligned in forms and tables
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
# 8. Border Radius
|
|
157
|
-
|
|
158
|
-
Cards: 12px
|
|
159
|
-
Buttons: 7px
|
|
160
|
-
Inputs: 5px
|
|
161
|
-
Badges: 4px
|
|
162
|
-
Circles: 50%
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
# 9. Shadows
|
|
167
|
-
|
|
168
|
-
Standard card shadow:
|
|
169
|
-
|
|
170
|
-
0px 4px 4px rgba(0,0,0,0.25)
|
|
171
|
-
|
|
172
|
-
Rules:
|
|
173
|
-
|
|
174
|
-
- Cards use shadow
|
|
175
|
-
- Buttons do not use shadow
|
|
176
|
-
- Elevated components use card shadow
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
# 10. Component Design Rules
|
|
181
|
-
|
|
182
|
-
## Buttons
|
|
183
|
-
|
|
184
|
-
Primary Button
|
|
185
|
-
- Background: #F18206
|
|
186
|
-
- Text: White
|
|
187
|
-
- Height: 36px
|
|
188
|
-
- Radius: 7px
|
|
189
|
-
|
|
190
|
-
Secondary Button
|
|
191
|
-
- Background: White
|
|
192
|
-
- Border: #C9C7C7
|
|
193
|
-
- Height: 36px
|
|
194
|
-
- Radius: 7px
|
|
195
|
-
|
|
196
|
-
## Cards
|
|
197
|
-
|
|
198
|
-
Background: White
|
|
199
|
-
Border: rgba(224,224,224,0.78)
|
|
200
|
-
Radius: 12px
|
|
201
|
-
Shadow: Standard card shadow
|
|
202
|
-
Padding: 16px
|
|
203
|
-
|
|
204
|
-
## Tables
|
|
205
|
-
|
|
206
|
-
Header
|
|
207
|
-
- Background: #F2F2F2
|
|
208
|
-
- Height: 32px
|
|
209
|
-
- Text: 12px semibold
|
|
210
|
-
|
|
211
|
-
Rows
|
|
212
|
-
- Height: 40–60px
|
|
213
|
-
- Padding: 16px
|
|
214
|
-
|
|
215
|
-
## Inputs
|
|
216
|
-
|
|
217
|
-
Background: #F8F7F7
|
|
218
|
-
Border: rgba(0,0,0,0.23)
|
|
219
|
-
Height: 36–48px
|
|
220
|
-
Radius: 5px
|
|
221
|
-
Padding: 16px
|
|
222
|
-
|
|
223
|
-
## File Upload
|
|
224
|
-
|
|
225
|
-
Height: 220px
|
|
226
|
-
Border: dashed
|
|
227
|
-
Radius: 5px
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
# 11. Navigation
|
|
232
|
-
|
|
233
|
-
Primary navigation
|
|
234
|
-
- Left sidebar
|
|
235
|
-
- Collapsible
|
|
236
|
-
- Background #FAFAFA
|
|
237
|
-
|
|
238
|
-
Top bar
|
|
239
|
-
- Height 148px
|
|
240
|
-
- Background #F8F7F7
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
# 12. Layout Patterns
|
|
245
|
-
|
|
246
|
-
Dashboard Layout
|
|
247
|
-
- Two column grid
|
|
248
|
-
- Gap 24px
|
|
249
|
-
- Equal card widths
|
|
250
|
-
|
|
251
|
-
Detail Layout
|
|
252
|
-
- Two panel layout
|
|
253
|
-
- Main content left
|
|
254
|
-
- Sidebar right (467px)
|
|
255
|
-
|
|
256
|
-
Table Layout
|
|
257
|
-
- Filters on top
|
|
258
|
-
- Table full width
|
|
259
|
-
- Pagination bottom
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
# 13. Accessibility
|
|
264
|
-
|
|
265
|
-
All UI must follow WCAG AA.
|
|
266
|
-
|
|
267
|
-
Requirements:
|
|
268
|
-
|
|
269
|
-
- Minimum contrast ratio
|
|
270
|
-
- Visible focus states
|
|
271
|
-
- Minimum click size 36px
|
|
272
|
-
- Clear interactive affordance
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
# 14. Data Handling
|
|
277
|
-
|
|
278
|
-
Change tracking must display:
|
|
279
|
-
|
|
280
|
-
New value
|
|
281
|
-
Old: [previous value]
|
|
282
|
-
|
|
283
|
-
Old values must use font-weight 300.
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
# 15. Empty States
|
|
288
|
-
|
|
289
|
-
Empty states must:
|
|
290
|
-
|
|
291
|
-
- Explain why content is empty
|
|
292
|
-
- Provide next action
|
|
293
|
-
- Never blame the user
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
# 16. Angular Implementation Rules
|
|
298
|
-
|
|
299
|
-
Angular version: v19+
|
|
300
|
-
|
|
301
|
-
## Styling
|
|
302
|
-
|
|
303
|
-
Use Bootstrap 5
|
|
304
|
-
|
|
305
|
-
Install:
|
|
306
|
-
bootstrap ^5.3.3
|
|
307
|
-
|
|
308
|
-
Rules:
|
|
309
|
-
|
|
310
|
-
- Use one global style.css
|
|
311
|
-
- Do not create component CSS files
|
|
312
|
-
- Avoid inline styles
|
|
313
|
-
|
|
314
|
-
Use:
|
|
315
|
-
class, ngClass, ngStyle
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
# 17. Icons
|
|
320
|
-
|
|
321
|
-
Use FontAwesome packages:
|
|
322
|
-
|
|
323
|
-
@fortawesome/angular-fontawesome
|
|
324
|
-
@fortawesome/fontawesome-svg-core
|
|
325
|
-
@fortawesome/pro-light-svg-icons
|
|
326
|
-
@fortawesome/pro-regular-svg-icons
|
|
327
|
-
@fortawesome/pro-solid-svg-icons
|
|
328
|
-
@fortawesome/pro-thin-svg-icons
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
# 18. UI Components
|
|
333
|
-
|
|
334
|
-
Never use native HTML controls.
|
|
335
|
-
|
|
336
|
-
Always use DevExtreme components.
|
|
337
|
-
|
|
338
|
-
Packages:
|
|
339
|
-
|
|
340
|
-
devextreme 24.1.7
|
|
341
|
-
devextreme-angular 24.1.7
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
# 19. Component Architecture
|
|
346
|
-
|
|
347
|
-
Rules:
|
|
348
|
-
|
|
349
|
-
- Each component must have a single responsibility
|
|
350
|
-
- Split complex screens into subcomponents
|
|
351
|
-
- Use standalone components
|
|
352
|
-
|
|
353
|
-
Use:
|
|
354
|
-
|
|
355
|
-
Input
|
|
356
|
-
Output
|
|
357
|
-
Signals
|
|
358
|
-
|
|
359
|
-
Do not define interfaces inside components.
|
|
360
|
-
|
|
361
|
-
Use folders:
|
|
362
|
-
|
|
363
|
-
/types
|
|
364
|
-
/api
|
|
365
|
-
/services
|
|
366
|
-
|
|
367
|
-
---
|
|
368
|
-
|
|
369
|
-
# 20. Routing
|
|
370
|
-
|
|
371
|
-
Use lazy loading.
|
|
372
|
-
|
|
373
|
-
Load pages only when needed.
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
# 21. Shared Packages
|
|
378
|
-
|
|
379
|
-
Use:
|
|
380
|
-
|
|
381
|
-
@skysoftware-co/bayan-components-ui
|
|
382
|
-
@skysoftware-co/sky-components-ui
|
|
383
|
-
|
|
384
|
-
Theme:
|
|
385
|
-
|
|
386
|
-
@skysoftware-co/sky-themes
|
|
387
|
-
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
# 22. Date Handling
|
|
391
|
-
|
|
392
|
-
Use moment ^2.30.1
|
|
393
|
-
|
|
394
|
-
---
|
|
395
|
-
|
|
396
|
-
# 23. File Structure
|
|
397
|
-
|
|
398
|
-
Angular components must include only:
|
|
399
|
-
|
|
400
|
-
.ts
|
|
401
|
-
.html
|
|
402
|
-
|
|
403
|
-
Do not create:
|
|
404
|
-
|
|
405
|
-
.spec.ts
|
|
406
|
-
.css
|
|
407
|
-
.scss
|
|
408
|
-
|
|
409
|
-
---
|
|
410
|
-
|
|
411
|
-
# 24. Responsiveness
|
|
412
|
-
|
|
413
|
-
Designs must support:
|
|
414
|
-
|
|
415
|
-
Desktop
|
|
416
|
-
Large Desktop
|
|
417
|
-
Tablet
|
|
418
|
-
|
|
419
|
-
Mobile is optional reference.
|
|
420
|
-
|
|
421
|
-
---
|
|
422
|
-
|
|
423
|
-
# 25. Naming Conventions
|
|
424
|
-
|
|
425
|
-
Component naming pattern:
|
|
426
|
-
|
|
427
|
-
Component / Type / State
|
|
428
|
-
|
|
429
|
-
Examples:
|
|
430
|
-
|
|
431
|
-
Button/Primary/Default
|
|
432
|
-
Card/Employee/Default
|
|
433
|
-
Table/Status/Compact
|
|
434
|
-
|
|
435
|
-
---
|
|
436
|
-
|
|
437
|
-
# 26. Development Checklist
|
|
438
|
-
|
|
439
|
-
Before finalizing UI or code verify:
|
|
440
|
-
|
|
441
|
-
✓ Approved colors used
|
|
442
|
-
✓ Spacing scale applied
|
|
443
|
-
✓ Inter font used
|
|
444
|
-
✓ Correct border radius
|
|
445
|
-
✓ Card shadows applied
|
|
446
|
-
✓ WCAG contrast respected
|
|
447
|
-
✓ Click targets ≥ 36px
|
|
448
|
-
✓ Proper component architecture
|
|
449
|
-
|
|
450
|
-
---
|
|
451
|
-
|
|
452
|
-
# 27. Critical AI Rules
|
|
453
|
-
|
|
454
|
-
AI must:
|
|
455
|
-
|
|
456
|
-
1. Follow the design system strictly
|
|
457
|
-
2. Never invent colors or spacing values
|
|
458
|
-
3. Always use DevExtreme components
|
|
459
|
-
4. Follow Angular architecture rules
|
|
460
|
-
5. Maintain consistent typography and spacing
|
|
461
|
-
6. Generate responsive layouts
|
|
462
|
-
7. Use Bootstrap utility classes
|
|
463
|
-
|
|
464
|
-
---
|
|
465
|
-
|
|
466
|
-
End of Guideline
|