@cyberskill/design 1.1.0 → 1.2.0
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/DESIGN.md +25 -3
- package/README.md +7 -7
- package/SKILL.md +4 -4
- package/VERSION +1 -1
- package/_ds_bundle.js +819 -416
- package/_ds_manifest.json +1 -1
- package/_esm/cs.mjs +18 -4
- package/_esm/react.d.ts +2 -0
- package/_esm/react.mjs +1 -0
- package/base/a11y.css +18 -0
- package/base/ai.css +2 -2
- package/base/collections.css +8 -3
- package/base/components.css +11 -2
- package/base/controls.css +61 -48
- package/base/data.css +3 -3
- package/base/feedback.css +5 -0
- package/base/forms.css +9 -3
- package/base/glass.css +6 -0
- package/base/navigation.css +8 -2
- package/base/reset.css +1 -1
- package/base/responsive.css +25 -0
- package/base/shell.css +7 -1
- package/components/_i18n/i18n.js +13 -1
- package/components/_i18n/strings.js +52 -3
- package/components/ai/ConfidenceMeter.jsx +8 -6
- package/components/data/Watermark.jsx +11 -3
- package/components/datatable/DataGrid.jsx +10 -1
- package/components/dialog/Dialog.jsx +13 -45
- package/components/feedback/ProgressBar.jsx +4 -2
- package/components/forms/Cascader.jsx +69 -6
- package/components/forms/Editor.jsx +37 -2
- package/components/forms/FileUpload.jsx +22 -8
- package/components/forms/Switch.jsx +16 -2
- package/components/forms/TimePicker.jsx +3 -1
- package/components/icon/Icon.jsx +1 -0
- package/components/navigation/CommandPalette.jsx +22 -7
- package/components/navigation/Toolbar.jsx +2 -1
- package/components/overlays/AlertDialog.jsx +19 -49
- package/components/overlays/Drawer.jsx +24 -20
- package/components/overlays/OverlayManager.d.ts +40 -0
- package/components/overlays/OverlayManager.jsx +214 -0
- package/components/overlays/OverlayManager.prompt.md +12 -0
- package/components/overlays/Tour.jsx +14 -7
- package/dist/styles.min.css +2004 -0
- package/docs/benchmark-rubric.md +1 -1
- package/docs/ci-cd.md +3 -1
- package/docs/consuming.md +6 -6
- package/docs/contrast-report.md +1 -1
- package/docs/conventions.md +4 -4
- package/docs/decisions/container-query-migration.md +18 -0
- package/docs/decisions/overlay-manager-design.md +101 -0
- package/docs/decisions.md +5 -5
- package/docs/design-styles.md +1 -1
- package/docs/plans/cyberskill-design-system-audit-and-12-month-evolution-plan.md +1490 -0
- package/docs/quality-gates.md +21 -9
- package/docs/release-notes.md +10 -2
- package/docs/status/data/status-feed.json +1 -1
- package/docs/status/data/task/TASK-REL-002.js +1 -0
- package/docs/status/index.html +7 -6
- package/docs/status/status-legacy.html +13 -12
- package/docs/sync.md +1 -1
- package/docs/tasks/BACKLOG.md +1 -0
- package/docs/tasks/_state/commit-links.yaml +14 -0
- package/docs/tasks/release/TASK-REL-002-republish-1-1-1/spec.md +54 -0
- package/docs/vi/benchmark-rubric.md +1 -1
- package/docs/vi/ci-cd.md +3 -1
- package/docs/vi/consuming.md +6 -6
- package/docs/vi/contrast-report.md +1 -1
- package/docs/vi/conventions.md +2 -2
- package/docs/vi/decisions.md +5 -5
- package/docs/vi/quality-gates.md +21 -9
- package/docs/vi/release-notes.md +10 -2
- package/docs/vi/sync.md +1 -1
- package/guidelines/atomic-view.html +11 -7
- package/llms.txt +5 -5
- package/package.json +14 -6
- package/templates/_ds-base.canonical.js +55 -0
- package/templates/ai-cluster-demo.html +2 -2
- package/templates/app-shell/AppShell.dc.html +5 -3
- package/templates/app-shell/ds-base.js +33 -1
- package/templates/app-shell/support.js +13 -20
- package/templates/article/Article.dc.html +5 -1
- package/templates/article/ds-base.js +33 -1
- package/templates/article/support.js +13 -20
- package/templates/auth/Auth.dc.html +10 -5
- package/templates/auth/content-schema.json +12 -0
- package/templates/auth/ds-base.js +33 -1
- package/templates/auth/support.js +13 -20
- package/templates/bod-deck/BodDeck.dc.html +11 -10
- package/templates/bod-deck/ds-base.js +33 -1
- package/templates/bod-deck/support.js +13 -20
- package/templates/bod-investor-update/BodInvestorUpdate.dc.html +4 -3
- package/templates/bod-investor-update/ds-base.js +33 -1
- package/templates/bod-investor-update/support.js +13 -20
- package/templates/bod-memo/BodMemo.dc.html +6 -5
- package/templates/bod-memo/ds-base.js +33 -1
- package/templates/bod-memo/support.js +13 -20
- package/templates/bod-minutes/BodMinutes.dc.html +2 -1
- package/templates/bod-minutes/ds-base.js +33 -1
- package/templates/bod-minutes/support.js +13 -20
- package/templates/bod-report/BodReport.dc.html +3 -2
- package/templates/bod-report/ds-base.js +33 -1
- package/templates/bod-report/support.js +13 -20
- package/templates/bod-resolution/BodResolution.dc.html +5 -4
- package/templates/bod-resolution/ds-base.js +33 -1
- package/templates/bod-resolution/support.js +13 -20
- package/templates/culture-event-invite/CultureEventInvite.dc.html +3 -2
- package/templates/culture-event-invite/ds-base.js +33 -1
- package/templates/culture-event-invite/support.js +13 -20
- package/templates/dashboard/Dashboard.dc.html +7 -3
- package/templates/dashboard/ds-base.js +33 -1
- package/templates/dashboard/support.js +13 -20
- package/templates/delivery-change-note/DeliveryChangeNote.dc.html +2 -1
- package/templates/delivery-change-note/ds-base.js +33 -1
- package/templates/delivery-change-note/support.js +13 -20
- package/templates/delivery-kickoff/DeliveryKickoff.dc.html +3 -2
- package/templates/delivery-kickoff/ds-base.js +33 -1
- package/templates/delivery-kickoff/support.js +13 -20
- package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +6 -5
- package/templates/delivery-qbr-deck/ds-base.js +33 -1
- package/templates/delivery-qbr-deck/support.js +13 -20
- package/templates/delivery-runbook/DeliveryRunbook.dc.html +3 -2
- package/templates/delivery-runbook/ds-base.js +33 -1
- package/templates/delivery-runbook/support.js +13 -20
- package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +3 -2
- package/templates/delivery-status-email/ds-base.js +33 -1
- package/templates/delivery-status-email/support.js +13 -20
- package/templates/doc-style-guide/DocStyleGuide.dc.html +67 -64
- package/templates/doc-style-guide/ds-base.js +33 -1
- package/templates/doc-style-guide/support.js +13 -20
- package/templates/doc-suite-index/DocSuiteIndex.dc.html +46 -45
- package/templates/doc-suite-index/ds-base.js +33 -1
- package/templates/doc-suite-index/support.js +13 -20
- package/templates/doc-templates/DocTemplates.dc.html +42 -41
- package/templates/doc-templates/ds-base.js +33 -1
- package/templates/doc-templates/support.js +13 -20
- package/templates/email/Email.dc.html +3 -2
- package/templates/email/ds-base.js +33 -1
- package/templates/email/support.js +13 -20
- package/templates/finance-dunning-email/FinanceDunningEmail.dc.html +4 -3
- package/templates/finance-dunning-email/ds-base.js +33 -1
- package/templates/finance-dunning-email/support.js +13 -20
- package/templates/finance-expense-report/FinanceExpenseReport.dc.html +4 -3
- package/templates/finance-expense-report/ds-base.js +33 -1
- package/templates/finance-expense-report/support.js +13 -20
- package/templates/finance-invoice/FinanceInvoice.dc.html +4 -3
- package/templates/finance-invoice/ds-base.js +33 -1
- package/templates/finance-invoice/support.js +13 -20
- package/templates/finance-quote/FinanceQuote.dc.html +4 -3
- package/templates/finance-quote/ds-base.js +33 -1
- package/templates/finance-quote/support.js +13 -20
- package/templates/hr-announcement/HrAnnouncement.dc.html +5 -4
- package/templates/hr-announcement/ds-base.js +33 -1
- package/templates/hr-announcement/support.js +13 -20
- package/templates/hr-interview-kit/HrInterviewKit.dc.html +4 -3
- package/templates/hr-interview-kit/ds-base.js +33 -1
- package/templates/hr-interview-kit/support.js +13 -20
- package/templates/hr-offboarding/HrOffboarding.dc.html +2 -1
- package/templates/hr-offboarding/ds-base.js +33 -1
- package/templates/hr-offboarding/support.js +13 -20
- package/templates/hr-performance-review/HrPerformanceReview.dc.html +2 -1
- package/templates/hr-performance-review/ds-base.js +33 -1
- package/templates/hr-performance-review/support.js +13 -20
- package/templates/hr-pip/HrPip.dc.html +2 -1
- package/templates/hr-pip/ds-base.js +33 -1
- package/templates/hr-pip/support.js +13 -20
- package/templates/kitchen-sink.html +9 -4
- package/templates/legal-msa/LegalMsa.dc.html +2 -1
- package/templates/legal-msa/ds-base.js +33 -1
- package/templates/legal-msa/support.js +13 -20
- package/templates/legal-sow/LegalSow.dc.html +2 -1
- package/templates/legal-sow/ds-base.js +33 -1
- package/templates/legal-sow/support.js +13 -20
- package/templates/marketing-campaign-brief/MarketingCampaignBrief.dc.html +3 -2
- package/templates/marketing-campaign-brief/ds-base.js +33 -1
- package/templates/marketing-campaign-brief/support.js +13 -20
- package/templates/marketing-case-study/MarketingCaseStudy.dc.html +5 -4
- package/templates/marketing-case-study/ds-base.js +33 -1
- package/templates/marketing-case-study/support.js +13 -20
- package/templates/marketing-launch/MarketingLaunch.dc.html +6 -5
- package/templates/marketing-launch/ds-base.js +33 -1
- package/templates/marketing-launch/support.js +13 -20
- package/templates/marketing-newsletter/MarketingNewsletter.dc.html +13 -12
- package/templates/marketing-newsletter/ds-base.js +33 -1
- package/templates/marketing-newsletter/support.js +13 -20
- package/templates/marketing-page/MarketingPage.dc.html +17 -12
- package/templates/marketing-page/ds-base.js +33 -1
- package/templates/marketing-page/support.js +13 -20
- package/templates/marketing-press-release/MarketingPressRelease.dc.html +2 -1
- package/templates/marketing-press-release/ds-base.js +33 -1
- package/templates/marketing-press-release/support.js +13 -20
- package/templates/marketing-social-kit/MarketingSocialKit.dc.html +5 -4
- package/templates/marketing-social-kit/ds-base.js +33 -1
- package/templates/marketing-social-kit/support.js +13 -20
- package/templates/sales-one-pager/SalesOnePager.dc.html +5 -4
- package/templates/sales-one-pager/ds-base.js +33 -1
- package/templates/sales-one-pager/support.js +13 -20
- package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +7 -6
- package/templates/sales-proposal-deck/ds-base.js +33 -1
- package/templates/sales-proposal-deck/support.js +13 -20
- package/templates/settings/Settings.dc.html +5 -1
- package/templates/settings/ds-base.js +33 -1
- package/templates/settings/support.js +13 -20
- package/templates/slide-deck/SlideDeck.dc.html +5 -4
- package/templates/slide-deck/ds-base.js +33 -1
- package/templates/slide-deck/support.js +13 -20
- package/templates/team-meeting-agenda/TeamMeetingAgenda.dc.html +2 -1
- package/templates/team-meeting-agenda/ds-base.js +33 -1
- package/templates/team-meeting-agenda/support.js +13 -20
- package/templates/tech-incident-report/TechIncidentReport.dc.html +3 -2
- package/templates/tech-incident-report/ds-base.js +33 -1
- package/templates/tech-incident-report/support.js +13 -20
- package/templates/tech-release-notes/TechReleaseNotes.dc.html +6 -5
- package/templates/tech-release-notes/ds-base.js +33 -1
- package/templates/tech-release-notes/support.js +13 -20
- package/templates/tech-retro/TechRetro.dc.html +4 -3
- package/templates/tech-retro/ds-base.js +33 -1
- package/templates/tech-retro/support.js +13 -20
- package/templates/tech-rfc/TechRfc.dc.html +3 -2
- package/templates/tech-rfc/ds-base.js +33 -1
- package/templates/tech-rfc/support.js +13 -20
- package/templates/vn-appointment-transfer/VnAppointmentTransfer.dc.html +36 -35
- package/templates/vn-appointment-transfer/ds-base.js +33 -1
- package/templates/vn-appointment-transfer/support.js +13 -20
- package/templates/vn-certificate-of-employment/VnCertificateOfEmployment.dc.html +27 -26
- package/templates/vn-certificate-of-employment/ds-base.js +33 -1
- package/templates/vn-certificate-of-employment/support.js +13 -20
- package/templates/vn-code-of-conduct/VnCodeOfConduct.dc.html +44 -43
- package/templates/vn-code-of-conduct/ds-base.js +33 -1
- package/templates/vn-code-of-conduct/support.js +13 -20
- package/templates/vn-compensation-regulation/VnCompensationRegulation.dc.html +53 -52
- package/templates/vn-compensation-regulation/ds-base.js +33 -1
- package/templates/vn-compensation-regulation/support.js +13 -20
- package/templates/vn-contract-amendment/VnContractAmendment.dc.html +41 -40
- package/templates/vn-contract-amendment/ds-base.js +33 -1
- package/templates/vn-contract-amendment/support.js +13 -20
- package/templates/vn-contractor-agreement/VnContractorAgreement.dc.html +50 -49
- package/templates/vn-contractor-agreement/ds-base.js +33 -1
- package/templates/vn-contractor-agreement/support.js +13 -20
- package/templates/vn-data-protection-policy/VnDataProtectionPolicy.dc.html +54 -53
- package/templates/vn-data-protection-policy/ds-base.js +33 -1
- package/templates/vn-data-protection-policy/support.js +13 -20
- package/templates/vn-disciplinary-case-file/VnDisciplinaryCaseFile.dc.html +72 -71
- package/templates/vn-disciplinary-case-file/ds-base.js +33 -1
- package/templates/vn-disciplinary-case-file/support.js +13 -20
- package/templates/vn-disciplinary-schedule/VnDisciplinarySchedule.dc.html +21 -20
- package/templates/vn-disciplinary-schedule/ds-base.js +33 -1
- package/templates/vn-disciplinary-schedule/support.js +13 -20
- package/templates/vn-employee-request/VnEmployeeRequest.dc.html +54 -53
- package/templates/vn-employee-request/ds-base.js +33 -1
- package/templates/vn-employee-request/support.js +13 -20
- package/templates/vn-exit-handover/VnExitHandover.dc.html +122 -121
- package/templates/vn-exit-handover/ds-base.js +33 -1
- package/templates/vn-exit-handover/support.js +13 -20
- package/templates/vn-foreign-employee-pack/VnForeignEmployeePack.dc.html +31 -30
- package/templates/vn-foreign-employee-pack/ds-base.js +33 -1
- package/templates/vn-foreign-employee-pack/support.js +13 -20
- package/templates/vn-grassroots-democracy/VnGrassrootsDemocracy.dc.html +54 -53
- package/templates/vn-grassroots-democracy/ds-base.js +33 -1
- package/templates/vn-grassroots-democracy/support.js +13 -20
- package/templates/vn-infosec-policy/VnInfosecPolicy.dc.html +50 -49
- package/templates/vn-infosec-policy/ds-base.js +33 -1
- package/templates/vn-infosec-policy/support.js +13 -20
- package/templates/vn-internal-labor-regulations/VnInternalLaborRegulations.dc.html +84 -83
- package/templates/vn-internal-labor-regulations/ds-base.js +33 -1
- package/templates/vn-internal-labor-regulations/support.js +13 -20
- package/templates/vn-internship-agreement/VnInternshipAgreement.dc.html +44 -43
- package/templates/vn-internship-agreement/ds-base.js +33 -1
- package/templates/vn-internship-agreement/support.js +13 -20
- package/templates/vn-job-description/VnJobDescription.dc.html +28 -27
- package/templates/vn-job-description/ds-base.js +33 -1
- package/templates/vn-job-description/support.js +13 -20
- package/templates/vn-labor-contract/VnLaborContract.dc.html +109 -108
- package/templates/vn-labor-contract/ds-base.js +33 -1
- package/templates/vn-labor-contract/support.js +13 -20
- package/templates/vn-labour-management-book/VnLabourManagementBook.dc.html +32 -31
- package/templates/vn-labour-management-book/ds-base.js +33 -1
- package/templates/vn-labour-management-book/support.js +13 -20
- package/templates/vn-mutual-nda/VnMutualNda.dc.html +45 -44
- package/templates/vn-mutual-nda/ds-base.js +33 -1
- package/templates/vn-mutual-nda/support.js +13 -20
- package/templates/vn-ndnca-ip/VnNdncaIp.dc.html +73 -72
- package/templates/vn-ndnca-ip/ds-base.js +33 -1
- package/templates/vn-ndnca-ip/support.js +13 -20
- package/templates/vn-offer-letter/VnOfferLetter.dc.html +32 -31
- package/templates/vn-offer-letter/ds-base.js +33 -1
- package/templates/vn-offer-letter/support.js +13 -20
- package/templates/vn-onboarding-checklist/VnOnboardingChecklist.dc.html +16 -15
- package/templates/vn-onboarding-checklist/ds-base.js +33 -1
- package/templates/vn-onboarding-checklist/support.js +13 -20
- package/templates/vn-pdpl-consent/VnPdplConsent.dc.html +43 -42
- package/templates/vn-pdpl-consent/ds-base.js +33 -1
- package/templates/vn-pdpl-consent/support.js +13 -20
- package/templates/vn-performance-evaluation-regulation/VnPerformanceEvaluationRegulation.dc.html +65 -64
- package/templates/vn-performance-evaluation-regulation/ds-base.js +33 -1
- package/templates/vn-performance-evaluation-regulation/support.js +13 -20
- package/templates/vn-performance-review-form/VnPerformanceReviewForm.dc.html +49 -48
- package/templates/vn-performance-review-form/ds-base.js +33 -1
- package/templates/vn-performance-review-form/support.js +13 -20
- package/templates/vn-phantom-stock/VnPhantomStock.dc.html +41 -40
- package/templates/vn-phantom-stock/ds-base.js +33 -1
- package/templates/vn-phantom-stock/support.js +13 -20
- package/templates/vn-probation-contract/VnProbationContract.dc.html +56 -55
- package/templates/vn-probation-contract/ds-base.js +33 -1
- package/templates/vn-probation-contract/support.js +13 -20
- package/templates/vn-receipt-acknowledgement/VnReceiptAcknowledgement.dc.html +28 -27
- package/templates/vn-receipt-acknowledgement/ds-base.js +33 -1
- package/templates/vn-receipt-acknowledgement/support.js +13 -20
- package/templates/vn-remote-work-policy/VnRemoteWorkPolicy.dc.html +44 -43
- package/templates/vn-remote-work-policy/ds-base.js +33 -1
- package/templates/vn-remote-work-policy/support.js +13 -20
- package/templates/vn-resignation-letter/VnResignationLetter.dc.html +20 -19
- package/templates/vn-resignation-letter/ds-base.js +33 -1
- package/templates/vn-resignation-letter/support.js +13 -20
- package/templates/vn-salary-scale/VnSalaryScale.dc.html +39 -38
- package/templates/vn-salary-scale/ds-base.js +33 -1
- package/templates/vn-salary-scale/support.js +13 -20
- package/templates/vn-sow-appendix/VnSowAppendix.dc.html +21 -20
- package/templates/vn-sow-appendix/ds-base.js +33 -1
- package/templates/vn-sow-appendix/support.js +13 -20
- package/templates/vn-termination-decision/VnTerminationDecision.dc.html +25 -24
- package/templates/vn-termination-decision/ds-base.js +33 -1
- package/templates/vn-termination-decision/support.js +13 -20
- package/templates/vn-total-rewards-appendix/VnTotalRewardsAppendix.dc.html +63 -62
- package/templates/vn-total-rewards-appendix/ds-base.js +33 -1
- package/templates/vn-total-rewards-appendix/support.js +13 -20
- package/templates/vn-training-commitment/VnTrainingCommitment.dc.html +39 -38
- package/templates/vn-training-commitment/ds-base.js +33 -1
- package/templates/vn-training-commitment/support.js +13 -20
- package/templates/vn-travel-expense-policy/VnTravelExpensePolicy.dc.html +50 -49
- package/templates/vn-travel-expense-policy/ds-base.js +33 -1
- package/templates/vn-travel-expense-policy/support.js +13 -20
- package/tokens/colors.css +19 -1
- package/tokens/component-tokens.css +1 -0
- package/tokens/elements.css +35 -2
- package/tokens/elevation.css +8 -2
- package/tokens/native/CSTokens.kt +35 -1
- package/tokens/native/CSTokens.swift +35 -1
- package/tokens/native/cs_tokens.dart +35 -1
- package/tokens/provenance.json +12 -12
- package/tokens/spacing.css +2 -0
- package/tokens/tokens.dtcg.json +111 -3
- package/tokens/tokens.js +46 -6
- package/tokens/tokens.json +45 -5
- package/tokens/typography.css +2 -0
- package/ui_kits/deck/index.html +4 -0
- package/ui_kits/status-hub/StatusHub.jsx +30 -4
- package/ui_kits/status-hub/index.html +3 -3
- package/ui_kits/status-hub/login.html +4 -0
- package/ui_kits/status-hub/project.html +4 -0
- package/ui_kits/status-hub/settings.html +35 -13
- package/ui_kits/status-hub/status.css +5 -1
- package/ui_kits/website/Website.jsx +25 -3
- package/ui_kits/website/careers.html +4 -0
- package/ui_kits/website/chat.html +5 -3
- package/ui_kits/website/index.html +3 -3
- package/ui_kits/website/site.css +2 -2
- package/ui_kits/website/work.html +4 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
2
|
+
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<title>HR Suite · Giấy xác nhận quá trình công tác — Certificate of Employment · CyberSkill</title>
|
|
4
5
|
<meta charset="utf-8">
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
7
|
<meta name="omelette-owns-print" content="1">
|
|
@@ -13,59 +14,59 @@
|
|
|
13
14
|
<script src="./ds-base.js"></script>
|
|
14
15
|
<style>@page{size:A4;margin:23mm 20mm 20mm 20mm}@media print{html,body{background:#fff!important}.cs-desk{background:#fff!important;padding:0!important;min-height:0!important}.cs-sheet{box-shadow:none!important;border:none!important;max-width:none!important;border-radius:0!important;padding:0!important}.cs-avoid{break-inside:avoid}}</style>
|
|
15
16
|
</helmet>
|
|
16
|
-
<div lang="vi" data-cs-element="{{ elAttr }}" data-cs-variant="{{ vaAttr }}" class="cs-desk" style="background:#efe6d8;min-height:100vh;padding:40px 16px;font-family:var(--cs-font-family-ui);color
|
|
17
|
+
<div lang="vi" data-cs-element="{{ elAttr }}" data-cs-variant="{{ vaAttr }}" class="cs-desk" style="background:#efe6d8;min-height:100vh;padding:40px 16px;font-family:var(--cs-font-family-ui);color:var(--cs-doc-ink)">
|
|
17
18
|
<div class="cs-sheet" style="max-width:794px;margin:0 auto;background:#fff;border:1px solid var(--cs-color-border-default);border-radius:12px;box-shadow:var(--cs-shadow-md);padding:56px 60px;text-align:left">
|
|
18
19
|
<div style="display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--cs-color-text-muted);padding-bottom:6px;border-bottom:1px solid var(--cs-color-border-default);margin-bottom:14px">
|
|
19
20
|
<x-import component-from-global-scope="CyberSkillDS.Logo" size="18" hint-size="18px,18px"></x-import>
|
|
20
|
-
<b style="color:var(--cs-color-brand-umber)">CyberSkill</b><span>· Giấy xác nhận quá trình công tác</span><span style="margin-left:auto;font-family:var(--cs-font-family-mono)">Số/No. <span style="background
|
|
21
|
+
<b style="color:var(--cs-color-brand-umber)">CyberSkill</b><span>· Giấy xác nhận quá trình công tác</span><span style="margin-left:auto;font-family:var(--cs-font-family-mono)">Số/No. <span style="background:var(--cs-doc-fill);padding:0 3px">.....</span>/2026/GXN-CYBERSKILL</span>
|
|
21
22
|
</div>
|
|
22
23
|
<div class="cs-avoid" style="display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin-bottom:18px">
|
|
23
|
-
<div><div style="font-weight:800;font-size:11.5px;line-height:1.45">CÔNG TY CỔ PHẦN TƯ VẤN VÀ PHÁT TRIỂN GIẢI PHÁP PHẦN MỀM CYBERSKILL</div><div style="font-size:10px;color
|
|
24
|
-
<div style="text-align:center"><div style="font-weight:800;font-size:11.5px;line-height:1.5">CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM</div><div style="font-weight:700;font-size:11px">Độc lập – Tự do – Hạnh phúc</div><div style="letter-spacing:0.1em;font-size:10px;margin:1px 0">———————————</div><div style="font-size:9.5px;color
|
|
24
|
+
<div><div style="font-weight:800;font-size:11.5px;line-height:1.45">CÔNG TY CỔ PHẦN TƯ VẤN VÀ PHÁT TRIỂN GIẢI PHÁP PHẦN MỀM CYBERSKILL</div><div style="font-size:10px;color:var(--cs-doc-slate);font-style:italic;line-height:1.45;margin-top:2px">CYBERSKILL SOFTWARE SOLUTIONS CONSULTANCY AND DEVELOPMENT JOINT STOCK COMPANY</div><div style="font-size:10.5px;margin-top:4px">Hiện Thực Hoá Ý Chí · <span style="color:var(--cs-doc-slate);font-style:italic">Turn Your Will Into Real</span></div></div>
|
|
25
|
+
<div style="text-align:center"><div style="font-weight:800;font-size:11.5px;line-height:1.5">CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM</div><div style="font-weight:700;font-size:11px">Độc lập – Tự do – Hạnh phúc</div><div style="letter-spacing:0.1em;font-size:10px;margin:1px 0">———————————</div><div style="font-size:9.5px;color:var(--cs-doc-slate);font-style:italic;line-height:1.4">The Socialist Republic of Vietnam · Independence – Freedom – Happiness</div></div>
|
|
25
26
|
</div>
|
|
26
27
|
<div class="cs-avoid" style="text-align:center;margin-bottom:14px">
|
|
27
28
|
<h1 style="font-size:23px;font-weight:800;color:var(--cs-color-brand-umber);letter-spacing:-0.01em;margin:0 0 3px;line-height:1.25">GIẤY XÁC NHẬN QUÁ TRÌNH CÔNG TÁC</h1>
|
|
28
|
-
<div style="font-size:13.5px;color
|
|
29
|
-
<div style="font-size:12.5px;margin-top:8px">Số / No.: <span style="background
|
|
30
|
-
<div style="font-size:12px;margin-top:2px">Phiên bản / Version 1.0 · Hiệu lực từ / Effective from: <span style="background
|
|
29
|
+
<div style="font-size:13.5px;color:var(--cs-doc-slate);font-style:italic">Certificate of Employment</div>
|
|
30
|
+
<div style="font-size:12.5px;margin-top:8px">Số / No.: <span style="background:var(--cs-doc-fill);padding:0 3px">......</span>/2026/GXN-CYBERSKILL</div>
|
|
31
|
+
<div style="font-size:12px;margin-top:2px">Phiên bản / Version 1.0 · Hiệu lực từ / Effective from: <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span></div>
|
|
31
32
|
<div style="color:var(--cs-accent);font-size:13px;letter-spacing:0.5em;margin-top:10px">◆ ◆ ◆</div>
|
|
32
33
|
</div>
|
|
33
34
|
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Công ty Cổ phần Tư vấn và Phát triển Giải pháp Phần mềm CyberSkill xác nhận:</p>
|
|
34
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
35
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 12px">CyberSkill Software Solutions Consultancy and Development Joint Stock Company certifies that:</p>
|
|
35
36
|
|
|
36
37
|
<table class="cs-avoid" style="width:100%;border-collapse:collapse;font-size:12.5px;margin:0 0 16px">
|
|
37
|
-
<thead><tr style="background:var(--cs-color-brand-umber);color
|
|
38
|
+
<thead><tr style="background:var(--cs-color-brand-umber);color:var(--cs-color-text-inverse,#fff)"><th style="text-align:left;padding:6px 10px;font-size:10px;width:230px">Nội dung <i style="font-weight:400">Item</i></th><th style="text-align:left;padding:6px 10px;font-size:10px">Xác nhận <i style="font-weight:400">Confirmed</i></th></tr></thead>
|
|
38
39
|
<tbody>
|
|
39
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Họ và tên<div style="color
|
|
40
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Ngày sinh<div style="color
|
|
41
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Số CCCD<div style="color
|
|
42
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Chức danh khi nghỉ việc<div style="color
|
|
43
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Bộ phận<div style="color
|
|
44
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Thời gian làm việc<div style="color
|
|
45
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Loại hợp đồng lao động<div style="color
|
|
46
|
-
<tr><td style="padding:6px 10px">Đã hoàn tất bàn giao và thanh toán<div style="color
|
|
40
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Họ và tên<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Full name</div></td><td style="padding:6px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></td></tr>
|
|
41
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Ngày sinh<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Date of birth</div></td><td style="padding:6px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">...... / ...... / ......</span></td></tr>
|
|
42
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Số CCCD<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Citizen ID no.</div></td><td style="padding:6px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></td></tr>
|
|
43
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Chức danh khi nghỉ việc<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Position on leaving</div></td><td style="padding:6px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></td></tr>
|
|
44
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Bộ phận<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Department</div></td><td style="padding:6px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></td></tr>
|
|
45
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Thời gian làm việc<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Period of service</div></td><td style="padding:6px 10px">Từ <span style="background:var(--cs-doc-fill);padding:0 3px">.../.../...</span> đến <span style="background:var(--cs-doc-fill);padding:0 3px">.../.../...</span><div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">From <span style="background:var(--cs-doc-fill);padding:0 2px">.../.../...</span> to <span style="background:var(--cs-doc-fill);padding:0 2px">.../.../...</span></div></td></tr>
|
|
46
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 10px">Loại hợp đồng lao động<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Type of labor contract</div></td><td style="padding:6px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></td></tr>
|
|
47
|
+
<tr><td style="padding:6px 10px">Đã hoàn tất bàn giao và thanh toán<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Handover and settlement completed</div></td><td style="padding:6px 10px">☐ Có ☐ Chưa<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">☐ Yes ☐ Not yet</div></td></tr>
|
|
47
48
|
</tbody>
|
|
48
49
|
</table>
|
|
49
50
|
|
|
50
51
|
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Giấy xác nhận này được cấp theo yêu cầu của người lao động, phù hợp với khoản 3 Điều 48 Bộ luật Lao động, và chỉ xác nhận các nội dung nêu trên.</p>
|
|
51
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
52
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 12px">This certificate is issued at the employee's request, in accordance with Article 48.3 of the Labor Code, and confirms only the matters set out above.</p>
|
|
52
53
|
<div class="cs-avoid" style="background:#FBF4E9;border:1px solid var(--cs-color-border-default);border-radius:8px;padding:9px 13px;margin-bottom:12px">
|
|
53
54
|
<p style="font-size:12px;line-height:1.45;margin:0 0 1px"><b>Ghi chú soạn thảo:</b> Giấy xác nhận này là TRUNG LẬP: không nêu lý do chấm dứt, không nêu đánh giá hiệu suất, không nêu kỷ luật. Đây là chuẩn mực và cũng là cách an toàn nhất về pháp lý.</p>
|
|
54
|
-
<p style="font-size:11px;line-height:1.4;color
|
|
55
|
+
<p style="font-size:11px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0"><b>Drafting note:</b> This certificate is NEUTRAL: it states no reason for leaving, no performance assessment and no discipline. That is both the professional standard and the legally safest course.</p>
|
|
55
56
|
</div>
|
|
56
57
|
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Công ty cũng sẵn sàng cung cấp bản sao các tài liệu liên quan đến quá trình làm việc khi người lao động yêu cầu, và chịu chi phí sao, gửi tài liệu, theo khoản 3 Điều 48 Bộ luật Lao động.</p>
|
|
57
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
58
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 18px">The Company will also provide copies of documents relating to the employment on request, and bears the cost of copying and sending them, under Article 48.3 of the Labor Code.</p>
|
|
58
59
|
|
|
59
60
|
<div class="cs-avoid">
|
|
60
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thành phố Hồ Chí Minh, ngày <span style="background
|
|
61
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
61
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thành phố Hồ Chí Minh, ngày <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> tháng <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> năm <span style="background:var(--cs-doc-fill);padding:0 3px">......</span></p>
|
|
62
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 14px">Ho Chi Minh City, <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span></p>
|
|
62
63
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:44px">
|
|
63
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">NGƯỜI LAO ĐỘNG (đã nhận)</div><div style="font-size:11px;color
|
|
64
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">TỔNG GIÁM ĐỐC</div><div style="font-size:11px;color
|
|
64
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">NGƯỜI LAO ĐỘNG (đã nhận)</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">The Employee (received)</div><div style="font-size:10.5px;margin-top:1px">(Ký, ghi rõ họ tên / <i style="color:var(--cs-doc-slate)">Sign and state full name</i>)</div><div style="height:60px"></div><div style="border-top:1px solid var(--cs-doc-ink);width:70%;margin:0 auto"></div></div>
|
|
65
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">TỔNG GIÁM ĐỐC</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">Chief Executive Officer</div><div style="font-size:10.5px;margin-top:1px">(Ký, ghi rõ họ tên và đóng dấu / <i style="color:var(--cs-doc-slate)">Sign, full name, and affix seal</i>)</div><div style="height:60px"></div><div style="border-top:1px solid var(--cs-doc-ink);width:70%;margin:0 auto"></div></div>
|
|
65
66
|
</div>
|
|
66
67
|
</div>
|
|
67
68
|
|
|
68
|
-
<div style="border-top:1px solid var(--cs-color-border-default);padding-top:8px;margin-top:20px;display:flex;gap:10px;font-size:10.5px;color:var(--cs-color-text-muted);flex-wrap:wrap">Hiện Thực Hoá Ý Chí · <i style="color
|
|
69
|
+
<div style="border-top:1px solid var(--cs-color-border-default);padding-top:8px;margin-top:20px;display:flex;gap:10px;font-size:10.5px;color:var(--cs-color-text-muted);flex-wrap:wrap">Hiện Thực Hoá Ý Chí · <i style="color:var(--cs-doc-slate)">Turn Your Will Into Real</i><span>·</span>MST: 0316475200<span>·</span>info@cyberskill.world<span>·</span>(+84) 906 878 091<span style="margin-left:auto">Trang / Page 1</span></div>
|
|
69
70
|
</div>
|
|
70
71
|
</div>
|
|
71
72
|
</x-dc>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Loads this design system into the template. In a consuming project, point
|
|
2
2
|
// base at the bound DS folder relative to this file (e.g. '_ds/<folder>' at
|
|
3
3
|
// the project root, '../_ds/<folder>' one level down) — one line to edit.
|
|
4
|
+
// Artifact head standard (UX-002 / B1): ensure <html lang> + <title> from @template.
|
|
4
5
|
(() => {
|
|
5
6
|
const base = '../..';
|
|
6
|
-
for (const p of ['styles.css']) {
|
|
7
|
+
for (const p of ['dist/styles.min.css']) {
|
|
7
8
|
const l = document.createElement('link');
|
|
8
9
|
l.rel = 'stylesheet'; l.href = base + '/' + p;
|
|
9
10
|
document.head.appendChild(l);
|
|
@@ -20,4 +21,35 @@
|
|
|
20
21
|
};
|
|
21
22
|
s.onerror = () => console.error('ds-base.js: failed to load ' + s.src + ' — if this is a consuming project, point the base line in ds-base.js at the bound _ds/<folder> tree relative to this page (e.g. _ds/<folder> at the project root, ../_ds/<folder> one level down); in a fresh design system this can just mean the bundle is not compiled yet');
|
|
22
23
|
document.head.appendChild(s);
|
|
24
|
+
|
|
25
|
+
const syncLang = () => {
|
|
26
|
+
try {
|
|
27
|
+
const a = document.querySelector('[lang]');
|
|
28
|
+
const v = a && a.getAttribute('lang');
|
|
29
|
+
// Ignore unresolved DC holes like {{ langAttr }}
|
|
30
|
+
if (v && v.indexOf('{{') === -1) document.documentElement.setAttribute('lang', v);
|
|
31
|
+
else if (!document.documentElement.getAttribute('lang')) document.documentElement.setAttribute('lang', 'en');
|
|
32
|
+
} catch (e) { /* authoring host may sandbox */ }
|
|
33
|
+
};
|
|
34
|
+
const ensureHead = () => {
|
|
35
|
+
try {
|
|
36
|
+
if (!document.title || !document.title.trim()) {
|
|
37
|
+
const src = document.documentElement.innerHTML;
|
|
38
|
+
const m = src.match(/@template\s+name="([^"]+)"/);
|
|
39
|
+
if (m) document.title = m[1] + ' · CyberSkill';
|
|
40
|
+
}
|
|
41
|
+
syncLang();
|
|
42
|
+
const obs = new MutationObserver(syncLang);
|
|
43
|
+
obs.observe(document.body || document.documentElement, {
|
|
44
|
+
attributes: true,
|
|
45
|
+
attributeFilter: ['lang'],
|
|
46
|
+
subtree: true,
|
|
47
|
+
});
|
|
48
|
+
} catch (e) { /* authoring host may sandbox */ }
|
|
49
|
+
};
|
|
50
|
+
if (document.readyState === 'loading') {
|
|
51
|
+
document.addEventListener('DOMContentLoaded', ensureHead);
|
|
52
|
+
} else {
|
|
53
|
+
ensureHead();
|
|
54
|
+
}
|
|
23
55
|
})();
|
|
@@ -1070,16 +1070,15 @@
|
|
|
1070
1070
|
}
|
|
1071
1071
|
|
|
1072
1072
|
// src/cdn.ts
|
|
1073
|
-
var
|
|
1074
|
-
var
|
|
1075
|
-
var
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
function cdnScriptFor(url, sri) {
|
|
1073
|
+
var REACT_LOCAL = "../../_vendor/react/react.production.min.js";
|
|
1074
|
+
var REACT_DOM_LOCAL = "../../_vendor/react/react-dom.production.min.js";
|
|
1075
|
+
var BABEL_LOCAL = "../../_vendor/babel/babel.min.js";
|
|
1076
|
+
// Product surfaces are offline-first (UX-026 / D4): no third-party script origins.
|
|
1077
|
+
// Host editors may still remap via window.__resources[localPath].
|
|
1078
|
+
function localScriptFor(path) {
|
|
1080
1079
|
const res = window.__resources;
|
|
1081
|
-
const v = res ? res[
|
|
1082
|
-
return typeof v === "string" && v ?
|
|
1080
|
+
const v = res ? res[path] : void 0;
|
|
1081
|
+
return typeof v === "string" && v ? v : path;
|
|
1083
1082
|
}
|
|
1084
1083
|
|
|
1085
1084
|
// src/external.ts
|
|
@@ -1106,16 +1105,12 @@
|
|
|
1106
1105
|
function ensureBabel() {
|
|
1107
1106
|
if (window.Babel) return Promise.resolve();
|
|
1108
1107
|
if (babelLoading) return babelLoading;
|
|
1109
|
-
const
|
|
1108
|
+
const src = localScriptFor(BABEL_LOCAL);
|
|
1110
1109
|
babelLoading = new Promise((res, rej) => {
|
|
1111
1110
|
const s = document.createElement("script");
|
|
1112
|
-
s.src =
|
|
1113
|
-
if (babel.integrity) {
|
|
1114
|
-
s.integrity = babel.integrity;
|
|
1115
|
-
s.crossOrigin = "anonymous";
|
|
1116
|
-
}
|
|
1111
|
+
s.src = src;
|
|
1117
1112
|
s.onload = () => res();
|
|
1118
|
-
s.onerror = rej;
|
|
1113
|
+
s.onerror = () => rej(new Error("failed to load local Babel: " + src));
|
|
1119
1114
|
document.head.appendChild(s);
|
|
1120
1115
|
});
|
|
1121
1116
|
return babelLoading;
|
|
@@ -1768,11 +1763,9 @@
|
|
|
1768
1763
|
function loadReactUmd() {
|
|
1769
1764
|
const w = window;
|
|
1770
1765
|
if (w.React && w.ReactDOM) return Promise.resolve();
|
|
1771
|
-
const react = cdnScriptFor(REACT_URL, REACT_SRI);
|
|
1772
|
-
const reactDom = cdnScriptFor(REACT_DOM_URL, REACT_DOM_SRI);
|
|
1773
1766
|
return Promise.all([
|
|
1774
|
-
loadScript(
|
|
1775
|
-
loadScript(
|
|
1767
|
+
loadScript(localScriptFor(REACT_LOCAL)),
|
|
1768
|
+
loadScript(localScriptFor(REACT_DOM_LOCAL))
|
|
1776
1769
|
]).then(() => void 0);
|
|
1777
1770
|
}
|
|
1778
1771
|
function init() {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
2
|
+
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<title>HR Suite · Bộ Quy tắc Ứng xử — Code of Conduct · CyberSkill</title>
|
|
4
5
|
<meta charset="utf-8">
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
7
|
<meta name="omelette-owns-print" content="1">
|
|
@@ -13,80 +14,80 @@
|
|
|
13
14
|
<script src="./ds-base.js"></script>
|
|
14
15
|
<style>@page{size:A4;margin:23mm 20mm 20mm 20mm}@media print{html,body{background:#fff!important}.cs-desk{background:#fff!important;padding:0!important;min-height:0!important}.cs-sheet{box-shadow:none!important;border:none!important;max-width:none!important;border-radius:0!important;padding:0!important}.cs-avoid{break-inside:avoid}}</style>
|
|
15
16
|
</helmet>
|
|
16
|
-
<div lang="vi" data-cs-element="{{ elAttr }}" data-cs-variant="{{ vaAttr }}" class="cs-desk" style="background:#efe6d8;min-height:100vh;padding:40px 16px;font-family:var(--cs-font-family-ui);color
|
|
17
|
+
<div lang="vi" data-cs-element="{{ elAttr }}" data-cs-variant="{{ vaAttr }}" class="cs-desk" style="background:#efe6d8;min-height:100vh;padding:40px 16px;font-family:var(--cs-font-family-ui);color:var(--cs-doc-ink)">
|
|
17
18
|
<div class="cs-sheet" style="max-width:794px;margin:0 auto;background:#fff;border:1px solid var(--cs-color-border-default);border-radius:12px;box-shadow:var(--cs-shadow-md);padding:56px 60px;text-align:left">
|
|
18
19
|
<div style="display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--cs-color-text-muted);padding-bottom:6px;border-bottom:1px solid var(--cs-color-border-default);margin-bottom:14px">
|
|
19
20
|
<x-import component-from-global-scope="CyberSkillDS.Logo" size="18" hint-size="18px,18px"></x-import>
|
|
20
|
-
<b style="color:var(--cs-color-brand-umber)">CyberSkill</b><span>· Bộ Quy tắc Ứng xử</span><span style="margin-left:auto;font-family:var(--cs-font-family-mono)">Số/No. <span style="background
|
|
21
|
+
<b style="color:var(--cs-color-brand-umber)">CyberSkill</b><span>· Bộ Quy tắc Ứng xử</span><span style="margin-left:auto;font-family:var(--cs-font-family-mono)">Số/No. <span style="background:var(--cs-doc-fill);padding:0 3px">.....</span>/2026/QTUX-CYBERSKILL</span>
|
|
21
22
|
</div>
|
|
22
23
|
<div class="cs-avoid" style="display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin-bottom:18px">
|
|
23
|
-
<div><div style="font-weight:800;font-size:11.5px;line-height:1.45">CÔNG TY CỔ PHẦN TƯ VẤN VÀ PHÁT TRIỂN GIẢI PHÁP PHẦN MỀM CYBERSKILL</div><div style="font-size:10px;color
|
|
24
|
-
<div style="text-align:center"><div style="font-weight:800;font-size:11.5px;line-height:1.5">CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM</div><div style="font-weight:700;font-size:11px">Độc lập – Tự do – Hạnh phúc</div><div style="letter-spacing:0.1em;font-size:10px;margin:1px 0">———————————</div><div style="font-size:9.5px;color
|
|
24
|
+
<div><div style="font-weight:800;font-size:11.5px;line-height:1.45">CÔNG TY CỔ PHẦN TƯ VẤN VÀ PHÁT TRIỂN GIẢI PHÁP PHẦN MỀM CYBERSKILL</div><div style="font-size:10px;color:var(--cs-doc-slate);font-style:italic;line-height:1.45;margin-top:2px">CYBERSKILL SOFTWARE SOLUTIONS CONSULTANCY AND DEVELOPMENT JOINT STOCK COMPANY</div><div style="font-size:10.5px;margin-top:4px">Hiện Thực Hoá Ý Chí · <span style="color:var(--cs-doc-slate);font-style:italic">Turn Your Will Into Real</span></div></div>
|
|
25
|
+
<div style="text-align:center"><div style="font-weight:800;font-size:11.5px;line-height:1.5">CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM</div><div style="font-weight:700;font-size:11px">Độc lập – Tự do – Hạnh phúc</div><div style="letter-spacing:0.1em;font-size:10px;margin:1px 0">———————————</div><div style="font-size:9.5px;color:var(--cs-doc-slate);font-style:italic;line-height:1.4">The Socialist Republic of Vietnam · Independence – Freedom – Happiness</div></div>
|
|
25
26
|
</div>
|
|
26
27
|
<div class="cs-avoid" style="text-align:center;margin-bottom:14px">
|
|
27
28
|
<h1 style="font-size:26px;font-weight:800;color:var(--cs-color-brand-umber);letter-spacing:-0.01em;margin:0 0 3px;line-height:1.25">BỘ QUY TẮC ỨNG XỬ</h1>
|
|
28
|
-
<div style="font-size:14px;color
|
|
29
|
-
<div style="font-size:12.5px;margin-top:8px">Số / No.: <span style="background
|
|
30
|
-
<div style="font-size:12px;margin-top:2px">Phiên bản / Version 1.0 · Hiệu lực từ / Effective from: <span style="background
|
|
29
|
+
<div style="font-size:14px;color:var(--cs-doc-slate);font-style:italic">Code of Conduct</div>
|
|
30
|
+
<div style="font-size:12.5px;margin-top:8px">Số / No.: <span style="background:var(--cs-doc-fill);padding:0 3px">......</span>/2026/QTUX-CYBERSKILL</div>
|
|
31
|
+
<div style="font-size:12px;margin-top:2px">Phiên bản / Version 1.0 · Hiệu lực từ / Effective from: <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span></div>
|
|
31
32
|
<div style="color:var(--cs-accent);font-size:13px;letter-spacing:0.5em;margin-top:10px">◆ ◆ ◆</div>
|
|
32
33
|
</div>
|
|
33
34
|
<p style="font-size:13.5px;line-height:1.5;margin:0 0 1px">Bộ Quy tắc này thể hiện bốn giá trị của CyberSkill: ấm áp, thẳng thắn, trung thực và tôn trọng. Bộ Quy tắc áp dụng cho toàn thể nhân sự.</p>
|
|
34
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
35
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 8px">This Code expresses CyberSkill's four values: warm, direct, honest and respectful. It applies to everyone at the Company.</p>
|
|
35
36
|
<div class="cs-avoid" style="background:#FBF4E9;border:1px solid var(--cs-color-border-default);border-radius:8px;padding:9px 13px;margin-bottom:16px">
|
|
36
37
|
<p style="font-size:12px;line-height:1.45;margin:0 0 1px"><b>Ghi chú soạn thảo:</b> Bộ Quy tắc là tài liệu văn hóa. Chỉ những hành vi được dẫn chiếu trong Nội quy lao động và Bảng xử lý kỷ luật mới là căn cứ xử lý kỷ luật.</p>
|
|
37
|
-
<p style="font-size:11px;line-height:1.4;color
|
|
38
|
+
<p style="font-size:11px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0"><b>Drafting note:</b> This Code is a culture document. Only conduct referenced in the Internal Labor Regulations and the Disciplinary Schedule founds labor discipline.</p>
|
|
38
39
|
</div>
|
|
39
40
|
|
|
40
41
|
<div style="display:grid;gap:13px">
|
|
41
|
-
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 1 · CÁCH CHÚNG TA LÀM VIỆC VỚI NHAU <span style="font-weight:400;font-size:11px;color
|
|
42
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">a) Nói thẳng, nói sớm, nói với người liên quan trước khi nói với người khác.</p><p style="font-size:12px;line-height:1.4;color
|
|
43
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">b) Phản đối ý tưởng, không công kích con người.</p><p style="font-size:12px;line-height:1.4;color
|
|
44
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">c) Thừa nhận sai sót sớm. Che giấu sai sót gây thiệt hại lớn hơn chính sai sót đó.</p><p style="font-size:12px;line-height:1.4;color
|
|
45
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">d) Không phân biệt đối xử về giới tính, dân tộc, tôn giáo, tuổi tác, tình trạng hôn nhân, khuyết tật hay bất kỳ đặc điểm cá nhân nào.</p><p style="font-size:12px;line-height:1.4;color
|
|
46
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">e) Nghiêm cấm quấy rối tình dục dưới mọi hình thức. Trình tự xử lý theo Điều 5 Nội quy lao động.</p><p style="font-size:12px;line-height:1.4;color
|
|
42
|
+
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 1 · CÁCH CHÚNG TA LÀM VIỆC VỚI NHAU <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 1 · How we work with each other</span></h2>
|
|
43
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">a) Nói thẳng, nói sớm, nói với người liên quan trước khi nói với người khác.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">a) Say it directly, say it early, and say it to the person concerned before saying it to anyone else.</p>
|
|
44
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">b) Phản đối ý tưởng, không công kích con người.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">b) Argue with the idea, never attack the person.</p>
|
|
45
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">c) Thừa nhận sai sót sớm. Che giấu sai sót gây thiệt hại lớn hơn chính sai sót đó.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">c) Admit a mistake early. Concealing a mistake does more damage than the mistake.</p>
|
|
46
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">d) Không phân biệt đối xử về giới tính, dân tộc, tôn giáo, tuổi tác, tình trạng hôn nhân, khuyết tật hay bất kỳ đặc điểm cá nhân nào.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">d) No discrimination on grounds of gender, ethnicity, religion, age, marital status, disability or any personal characteristic.</p>
|
|
47
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">e) Nghiêm cấm quấy rối tình dục dưới mọi hình thức. Trình tự xử lý theo Điều 5 Nội quy lao động.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">e) Sexual harassment in any form is prohibited. The procedure is in Article 5 of the Internal Labor Regulations.</p></div>
|
|
47
48
|
|
|
48
|
-
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 6px">ĐIỀU 2 · QUÀ TẶNG VÀ TIẾP KHÁCH <span style="font-weight:400;font-size:11px;color
|
|
49
|
+
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 6px">ĐIỀU 2 · QUÀ TẶNG VÀ TIẾP KHÁCH <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 2 · Gifts and hospitality</span></h2>
|
|
49
50
|
<table style="width:100%;border-collapse:collapse;font-size:12px">
|
|
50
|
-
<thead><tr style="background:var(--cs-color-brand-umber);color
|
|
51
|
+
<thead><tr style="background:var(--cs-color-brand-umber);color:var(--cs-color-text-inverse,#fff)"><th style="text-align:left;padding:5px 9px;font-size:10px;width:220px">Tình huống <i style="font-weight:400">Situation</i></th><th style="text-align:left;padding:5px 9px;font-size:10px">Quy định <i style="font-weight:400">Rule</i></th></tr></thead>
|
|
51
52
|
<tbody>
|
|
52
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-weight:600">Quà tặng giá trị dưới 500.000 VNĐ<div style="color
|
|
53
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-weight:600">Quà tặng giá trị từ 500.000 VNĐ trở lên<div style="color
|
|
54
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-weight:600">Tiền mặt, phiếu quà tặng quy đổi được thành tiền<div style="color
|
|
55
|
-
<tr><td style="padding:6px 9px;font-weight:600">Tiếp khách (ăn uống, sự kiện)<div style="color
|
|
53
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-weight:600">Quà tặng giá trị dưới 500.000 VNĐ<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">A gift worth less than VND 500,000</div></td><td style="padding:6px 9px">Được phép nhận, không cần khai báo.<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">May be accepted, no declaration needed.</div></td></tr>
|
|
54
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-weight:600">Quà tặng giá trị từ 500.000 VNĐ trở lên<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">A gift worth VND 500,000 or more</div></td><td style="padding:6px 9px">Phải khai báo với Tổng Giám đốc trong 05 ngày làm việc. Tổng Giám đốc quyết định giữ, trả lại hoặc chuyển thành quà chung của Công ty.<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">Must be declared to the CEO within 05 working days. The CEO decides whether it is kept, returned, or shared across the Company.</div></td></tr>
|
|
55
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-weight:600">Tiền mặt, phiếu quà tặng quy đổi được thành tiền<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">Cash, or a voucher convertible to cash</div></td><td style="padding:6px 9px">Nghiêm cấm nhận, ở bất kỳ giá trị nào.<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">Never accepted, at any value.</div></td></tr>
|
|
56
|
+
<tr><td style="padding:6px 9px;font-weight:600">Tiếp khách (ăn uống, sự kiện)<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">Hospitality (meals, events)</div></td><td style="padding:6px 9px">Được phép nếu hợp lý, có mục đích công việc, và không nhằm gây ảnh hưởng đến một quyết định đang chờ.<div style="color:var(--cs-doc-slate);font-style:italic;font-size:10.5px">Permitted where it is reasonable, has a business purpose, and is not aimed at influencing a pending decision.</div></td></tr>
|
|
56
57
|
</tbody>
|
|
57
58
|
</table></div>
|
|
58
59
|
|
|
59
|
-
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 3 · XUNG ĐỘT LỢI ÍCH <span style="font-weight:400;font-size:11px;color
|
|
60
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 3px;font-weight:600">Xung đột lợi ích không phải là hành vi sai trái. Không khai báo mới là hành vi sai trái. <span style="font-weight:400;color
|
|
61
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">a) Làm việc tự do bên ngoài (freelance) được phép, với ba điều kiện: không phải cho khách hàng hoặc đối thủ của CyberSkill; không sử dụng thời gian, thiết bị hoặc tài sản của Công ty; và đã thông báo cho Tổng Giám đốc bằng văn bản trước khi bắt đầu.</p><p style="font-size:12px;line-height:1.4;color
|
|
62
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">b) Sở hữu hoặc góp vốn vào một doanh nghiệp là khách hàng, nhà cung cấp hoặc đối thủ của Công ty phải được khai báo.</p><p style="font-size:12px;line-height:1.4;color
|
|
63
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">c) Quan hệ tình cảm giữa hai người lao động được phép, nhưng phải khai báo, và không ai được quản lý hoặc đánh giá người kia.</p><p style="font-size:12px;line-height:1.4;color
|
|
64
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">d) Tuyển dụng người thân trong gia đình phải được Tổng Giám đốc phê duyệt trước.</p><p style="font-size:12px;line-height:1.4;color
|
|
60
|
+
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 3 · XUNG ĐỘT LỢI ÍCH <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 3 · Conflicts of interest</span></h2>
|
|
61
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 3px;font-weight:600">Xung đột lợi ích không phải là hành vi sai trái. Không khai báo mới là hành vi sai trái. <span style="font-weight:400;color:var(--cs-doc-slate);font-style:italic">A conflict of interest is not misconduct. Failing to declare one is.</span></p>
|
|
62
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">a) Làm việc tự do bên ngoài (freelance) được phép, với ba điều kiện: không phải cho khách hàng hoặc đối thủ của CyberSkill; không sử dụng thời gian, thiết bị hoặc tài sản của Công ty; và đã thông báo cho Tổng Giám đốc bằng văn bản trước khi bắt đầu.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">a) Freelance work outside is permitted on three conditions: it is not for a CyberSkill client or competitor; it uses no Company time, equipment or property; and it is notified to the CEO in writing before it starts.</p>
|
|
63
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">b) Sở hữu hoặc góp vốn vào một doanh nghiệp là khách hàng, nhà cung cấp hoặc đối thủ của Công ty phải được khai báo.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">b) Owning or investing in a business that is a client, supplier or competitor of the Company must be declared.</p>
|
|
64
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">c) Quan hệ tình cảm giữa hai người lao động được phép, nhưng phải khai báo, và không ai được quản lý hoặc đánh giá người kia.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">c) A romantic relationship between two employees is permitted, but must be declared, and neither may manage or evaluate the other.</p>
|
|
65
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">d) Tuyển dụng người thân trong gia đình phải được Tổng Giám đốc phê duyệt trước.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">d) Hiring a family member requires the CEO's prior approval.</p></div>
|
|
65
66
|
|
|
66
|
-
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 4 · PHÁT NGÔN CÔNG KHAI <span style="font-weight:400;font-size:11px;color
|
|
67
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">a) Công ty khuyến khích nhân sự viết blog, nói tại hội thảo và chia sẻ kiến thức kỹ thuật.</p><p style="font-size:12px;line-height:1.4;color
|
|
68
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">b) Không nêu tên khách hàng, không trình bày mã nguồn hoặc dữ liệu của khách hàng, khi chưa có chấp thuận bằng văn bản của khách hàng đó.</p><p style="font-size:12px;line-height:1.4;color
|
|
69
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">c) Khi phát ngôn với tư cách cá nhân về chủ đề liên quan đến ngành, nói rõ đó là quan điểm cá nhân, không phải quan điểm của CyberSkill.</p><p style="font-size:12px;line-height:1.4;color
|
|
70
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">d) Chỉ Tổng Giám đốc hoặc người được ủy quyền mới phát ngôn nhân danh Công ty với báo chí.</p><p style="font-size:12px;line-height:1.4;color
|
|
67
|
+
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 4 · PHÁT NGÔN CÔNG KHAI <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 4 · Speaking publicly</span></h2>
|
|
68
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">a) Công ty khuyến khích nhân sự viết blog, nói tại hội thảo và chia sẻ kiến thức kỹ thuật.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">a) The Company encourages staff to blog, speak at conferences and share technical knowledge.</p>
|
|
69
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">b) Không nêu tên khách hàng, không trình bày mã nguồn hoặc dữ liệu của khách hàng, khi chưa có chấp thuận bằng văn bản của khách hàng đó.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">b) Never name a client, and never show client code or client data, without that client's written consent.</p>
|
|
70
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">c) Khi phát ngôn với tư cách cá nhân về chủ đề liên quan đến ngành, nói rõ đó là quan điểm cá nhân, không phải quan điểm của CyberSkill.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">c) When speaking personally on an industry topic, make clear it is a personal view, not CyberSkill's.</p>
|
|
71
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">d) Chỉ Tổng Giám đốc hoặc người được ủy quyền mới phát ngôn nhân danh Công ty với báo chí.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">d) Only the CEO, or a person authorized by the CEO, speaks for the Company to the press.</p></div>
|
|
71
72
|
|
|
72
|
-
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 5 · CHỐNG THAM NHŨNG VÀ HỐI LỘ <span style="font-weight:400;font-size:11px;color
|
|
73
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Nghiêm cấm đưa hoặc nhận bất kỳ khoản lợi ích nào nhằm giành được hợp đồng, tác động đến quyết định của cơ quan nhà nước, hoặc gây ảnh hưởng không chính đáng đến một quyết định kinh doanh. Quy định này áp dụng cả với hành vi thực hiện thông qua bên trung gian.</p><p style="font-size:12px;line-height:1.4;color
|
|
73
|
+
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 5 · CHỐNG THAM NHŨNG VÀ HỐI LỘ <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 5 · Anti-bribery and corruption</span></h2>
|
|
74
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Nghiêm cấm đưa hoặc nhận bất kỳ khoản lợi ích nào nhằm giành được hợp đồng, tác động đến quyết định của cơ quan nhà nước, hoặc gây ảnh hưởng không chính đáng đến một quyết định kinh doanh. Quy định này áp dụng cả với hành vi thực hiện thông qua bên trung gian.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">Offering or accepting any benefit in order to win a contract, to influence a decision of a state body, or to improperly influence a business decision, is prohibited. This applies equally to anything done through an intermediary.</p></div>
|
|
74
75
|
|
|
75
|
-
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 6 · LÊN TIẾNG <span style="font-weight:400;font-size:11px;color
|
|
76
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Người phát hiện hành vi vi phạm Bộ Quy tắc này, vi phạm pháp luật, hoặc rủi ro nghiêm trọng cho khách hàng, phải báo cáo cho Tổng Giám đốc, hoặc qua thư điện tử <span style="background
|
|
77
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Công ty cam kết: người báo cáo trung thực sẽ không bị trả đũa dưới bất kỳ hình thức nào. Hành vi trả đũa là vi phạm kỷ luật độc lập. Báo cáo sai sự thật với dụng ý xấu cũng là vi phạm kỷ luật.</p><p style="font-size:12px;line-height:1.4;color
|
|
76
|
+
<div class="cs-avoid"><h2 style="font-size:12.5px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 5px">ĐIỀU 6 · LÊN TIẾNG <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 6 · Speaking up</span></h2>
|
|
77
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Người phát hiện hành vi vi phạm Bộ Quy tắc này, vi phạm pháp luật, hoặc rủi ro nghiêm trọng cho khách hàng, phải báo cáo cho Tổng Giám đốc, hoặc qua thư điện tử <span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 3px">Anyone who becomes aware of a breach of this Code, a breach of the law, or a serious risk to a client, must report it to the CEO, or by email to <span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></p>
|
|
78
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Công ty cam kết: người báo cáo trung thực sẽ không bị trả đũa dưới bất kỳ hình thức nào. Hành vi trả đũa là vi phạm kỷ luật độc lập. Báo cáo sai sự thật với dụng ý xấu cũng là vi phạm kỷ luật.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">The Company's commitment: an honest reporter will not be retaliated against in any way. Retaliation is a separate disciplinary breach. A knowingly false report made in bad faith is also a disciplinary breach.</p></div>
|
|
78
79
|
</div>
|
|
79
80
|
|
|
80
81
|
<div class="cs-avoid" style="margin-top:18px">
|
|
81
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thành phố Hồ Chí Minh, ngày <span style="background
|
|
82
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
82
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thành phố Hồ Chí Minh, ngày <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> tháng <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> năm <span style="background:var(--cs-doc-fill);padding:0 3px">......</span></p>
|
|
83
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 14px">Ho Chi Minh City, <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span> / <span style="background:var(--cs-doc-fill);padding:0 3px">......</span></p>
|
|
83
84
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:44px">
|
|
84
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">ĐẠI DIỆN TẬP THỂ NGƯỜI LAO ĐỘNG</div><div style="font-size:11px;color
|
|
85
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">NGƯỜI SỬ DỤNG LAO ĐỘNG</div><div style="font-size:11px;color
|
|
85
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">ĐẠI DIỆN TẬP THỂ NGƯỜI LAO ĐỘNG</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">Employee Representative</div><div style="font-size:10.5px;margin-top:1px">(Ký, ghi rõ họ tên / <i style="color:var(--cs-doc-slate)">Sign and state full name</i>)</div><div style="height:60px"></div><div style="border-top:1px solid var(--cs-doc-ink);width:70%;margin:0 auto"></div></div>
|
|
86
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">NGƯỜI SỬ DỤNG LAO ĐỘNG</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">The Employer</div><div style="font-size:10.5px;margin-top:1px">(Ký, ghi rõ họ tên và đóng dấu / <i style="color:var(--cs-doc-slate)">Sign, state full name, and affix seal</i>)</div><div style="height:60px"></div><div style="border-top:1px solid var(--cs-doc-ink);width:70%;margin:0 auto"></div></div>
|
|
86
87
|
</div>
|
|
87
88
|
</div>
|
|
88
89
|
|
|
89
|
-
<div style="border-top:1px solid var(--cs-color-border-default);padding-top:8px;margin-top:20px;display:flex;gap:10px;font-size:10.5px;color:var(--cs-color-text-muted);flex-wrap:wrap">Hiện Thực Hoá Ý Chí · <i style="color
|
|
90
|
+
<div style="border-top:1px solid var(--cs-color-border-default);padding-top:8px;margin-top:20px;display:flex;gap:10px;font-size:10.5px;color:var(--cs-color-text-muted);flex-wrap:wrap">Hiện Thực Hoá Ý Chí · <i style="color:var(--cs-doc-slate)">Turn Your Will Into Real</i><span>·</span>MST: 0316475200<span>·</span>info@cyberskill.world<span>·</span>(+84) 906 878 091<span style="margin-left:auto">Trang / Page 1</span></div>
|
|
90
91
|
</div>
|
|
91
92
|
</div>
|
|
92
93
|
</x-dc>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Loads this design system into the template. In a consuming project, point
|
|
2
2
|
// base at the bound DS folder relative to this file (e.g. '_ds/<folder>' at
|
|
3
3
|
// the project root, '../_ds/<folder>' one level down) — one line to edit.
|
|
4
|
+
// Artifact head standard (UX-002 / B1): ensure <html lang> + <title> from @template.
|
|
4
5
|
(() => {
|
|
5
6
|
const base = '../..';
|
|
6
|
-
for (const p of ['styles.css']) {
|
|
7
|
+
for (const p of ['dist/styles.min.css']) {
|
|
7
8
|
const l = document.createElement('link');
|
|
8
9
|
l.rel = 'stylesheet'; l.href = base + '/' + p;
|
|
9
10
|
document.head.appendChild(l);
|
|
@@ -20,4 +21,35 @@
|
|
|
20
21
|
};
|
|
21
22
|
s.onerror = () => console.error('ds-base.js: failed to load ' + s.src + ' — if this is a consuming project, point the base line in ds-base.js at the bound _ds/<folder> tree relative to this page (e.g. _ds/<folder> at the project root, ../_ds/<folder> one level down); in a fresh design system this can just mean the bundle is not compiled yet');
|
|
22
23
|
document.head.appendChild(s);
|
|
24
|
+
|
|
25
|
+
const syncLang = () => {
|
|
26
|
+
try {
|
|
27
|
+
const a = document.querySelector('[lang]');
|
|
28
|
+
const v = a && a.getAttribute('lang');
|
|
29
|
+
// Ignore unresolved DC holes like {{ langAttr }}
|
|
30
|
+
if (v && v.indexOf('{{') === -1) document.documentElement.setAttribute('lang', v);
|
|
31
|
+
else if (!document.documentElement.getAttribute('lang')) document.documentElement.setAttribute('lang', 'en');
|
|
32
|
+
} catch (e) { /* authoring host may sandbox */ }
|
|
33
|
+
};
|
|
34
|
+
const ensureHead = () => {
|
|
35
|
+
try {
|
|
36
|
+
if (!document.title || !document.title.trim()) {
|
|
37
|
+
const src = document.documentElement.innerHTML;
|
|
38
|
+
const m = src.match(/@template\s+name="([^"]+)"/);
|
|
39
|
+
if (m) document.title = m[1] + ' · CyberSkill';
|
|
40
|
+
}
|
|
41
|
+
syncLang();
|
|
42
|
+
const obs = new MutationObserver(syncLang);
|
|
43
|
+
obs.observe(document.body || document.documentElement, {
|
|
44
|
+
attributes: true,
|
|
45
|
+
attributeFilter: ['lang'],
|
|
46
|
+
subtree: true,
|
|
47
|
+
});
|
|
48
|
+
} catch (e) { /* authoring host may sandbox */ }
|
|
49
|
+
};
|
|
50
|
+
if (document.readyState === 'loading') {
|
|
51
|
+
document.addEventListener('DOMContentLoaded', ensureHead);
|
|
52
|
+
} else {
|
|
53
|
+
ensureHead();
|
|
54
|
+
}
|
|
23
55
|
})();
|
|
@@ -1070,16 +1070,15 @@
|
|
|
1070
1070
|
}
|
|
1071
1071
|
|
|
1072
1072
|
// src/cdn.ts
|
|
1073
|
-
var
|
|
1074
|
-
var
|
|
1075
|
-
var
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
function cdnScriptFor(url, sri) {
|
|
1073
|
+
var REACT_LOCAL = "../../_vendor/react/react.production.min.js";
|
|
1074
|
+
var REACT_DOM_LOCAL = "../../_vendor/react/react-dom.production.min.js";
|
|
1075
|
+
var BABEL_LOCAL = "../../_vendor/babel/babel.min.js";
|
|
1076
|
+
// Product surfaces are offline-first (UX-026 / D4): no third-party script origins.
|
|
1077
|
+
// Host editors may still remap via window.__resources[localPath].
|
|
1078
|
+
function localScriptFor(path) {
|
|
1080
1079
|
const res = window.__resources;
|
|
1081
|
-
const v = res ? res[
|
|
1082
|
-
return typeof v === "string" && v ?
|
|
1080
|
+
const v = res ? res[path] : void 0;
|
|
1081
|
+
return typeof v === "string" && v ? v : path;
|
|
1083
1082
|
}
|
|
1084
1083
|
|
|
1085
1084
|
// src/external.ts
|
|
@@ -1106,16 +1105,12 @@
|
|
|
1106
1105
|
function ensureBabel() {
|
|
1107
1106
|
if (window.Babel) return Promise.resolve();
|
|
1108
1107
|
if (babelLoading) return babelLoading;
|
|
1109
|
-
const
|
|
1108
|
+
const src = localScriptFor(BABEL_LOCAL);
|
|
1110
1109
|
babelLoading = new Promise((res, rej) => {
|
|
1111
1110
|
const s = document.createElement("script");
|
|
1112
|
-
s.src =
|
|
1113
|
-
if (babel.integrity) {
|
|
1114
|
-
s.integrity = babel.integrity;
|
|
1115
|
-
s.crossOrigin = "anonymous";
|
|
1116
|
-
}
|
|
1111
|
+
s.src = src;
|
|
1117
1112
|
s.onload = () => res();
|
|
1118
|
-
s.onerror = rej;
|
|
1113
|
+
s.onerror = () => rej(new Error("failed to load local Babel: " + src));
|
|
1119
1114
|
document.head.appendChild(s);
|
|
1120
1115
|
});
|
|
1121
1116
|
return babelLoading;
|
|
@@ -1768,11 +1763,9 @@
|
|
|
1768
1763
|
function loadReactUmd() {
|
|
1769
1764
|
const w = window;
|
|
1770
1765
|
if (w.React && w.ReactDOM) return Promise.resolve();
|
|
1771
|
-
const react = cdnScriptFor(REACT_URL, REACT_SRI);
|
|
1772
|
-
const reactDom = cdnScriptFor(REACT_DOM_URL, REACT_DOM_SRI);
|
|
1773
1766
|
return Promise.all([
|
|
1774
|
-
loadScript(
|
|
1775
|
-
loadScript(
|
|
1767
|
+
loadScript(localScriptFor(REACT_LOCAL)),
|
|
1768
|
+
loadScript(localScriptFor(REACT_DOM_LOCAL))
|
|
1776
1769
|
]).then(() => void 0);
|
|
1777
1770
|
}
|
|
1778
1771
|
function init() {
|