@cyberskill/design 1.1.1 → 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 +3 -3
- package/SKILL.md +3 -3
- 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/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 +20 -8
- package/docs/release-notes.md +2 -2
- package/docs/status/data/status-feed.json +1 -1
- package/docs/status/index.html +9 -5
- package/docs/status/status-legacy.html +12 -7
- package/docs/sync.md +1 -1
- package/docs/tasks/_state/commit-links.yaml +14 -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/conventions.md +2 -2
- package/docs/vi/decisions.md +4 -4
- package/docs/vi/quality-gates.md +21 -9
- package/docs/vi/release-notes.md +2 -2
- package/docs/vi/sync.md +1 -1
- package/guidelines/atomic-view.html +11 -7
- package/llms.txt +2 -2
- 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,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 · Sổ quản lý lao động — Labour Management Book · 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,75 +14,75 @@
|
|
|
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>· Sổ quản lý lao động</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>· Sổ quản lý lao động</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/SQL-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">SỔ QUẢN LÝ LAO ĐỘNG</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">Labour Management Book</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/SQL-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">Căn cứ Điều 12 Bộ luật Lao động số 45/2019/QH14 và Điều 3 Nghị định số 145/2020/NĐ-CP, Công ty lập và quản lý Sổ quản lý lao động tại trụ sở chính.</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">Pursuant to Article 12 of the Labor Code No. 45/2019/QH14 and Article 3 of Decree No. 145/2020/ND-CP, the Company creates and maintains this Labour Management Book at its head office.</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> Sổ phải được lập trong vòng 30 ngày kể từ ngày bắt đầu hoạt động, cập nhật trong vòng 15 ngày kể từ khi có thay đổi, và xuất trình khi cơ quan quản lý nhà nước về lao động yêu cầu. Có thể lập bằng bản giấy hoặc bản điện 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> The Book must be created within 30 days of starting operations, updated within 15 days of any change, and produced on request by the labour authority. It may be kept on paper or electronically.</p>
|
|
38
39
|
</div>
|
|
39
40
|
|
|
40
|
-
<h2 class="cs-avoid" style="font-size:13px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 8px">PHẦN A · THÔNG TIN NGƯỜI SỬ DỤNG LAO ĐỘNG <span style="font-weight:400;font-size:11.5px;color
|
|
41
|
+
<h2 class="cs-avoid" style="font-size:13px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 8px">PHẦN A · THÔNG TIN NGƯỜI SỬ DỤNG LAO ĐỘNG <span style="font-weight:400;font-size:11.5px;color:var(--cs-doc-slate);font-style:italic">Part A · Employer details</span></h2>
|
|
41
42
|
<table class="cs-avoid" style="width:100%;border-collapse:collapse;font-size:12.5px;margin:0 0 18px">
|
|
42
43
|
<tbody>
|
|
43
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;width:230px;vertical-align:top">Tên Công ty<div style="color
|
|
44
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Mã số thuế<div style="color
|
|
45
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Địa chỉ<div style="color
|
|
46
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Người đại diện theo pháp luật<div style="color
|
|
47
|
-
<tr><td style="padding:5px 10px;vertical-align:top">Ngày lập Sổ<div style="color
|
|
44
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;width:230px;vertical-align:top">Tên Công ty<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Company name</div></td><td style="padding:5px 10px">Công Ty Cổ Phần Tư Vấn Và Phát Triển Giải Pháp Phần Mềm CyberSkill</td></tr>
|
|
45
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Mã số thuế<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Tax code</div></td><td style="padding:5px 10px">0316475200</td></tr>
|
|
46
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Địa chỉ<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Address</div></td><td style="padding:5px 10px">Tầng 1, 207A Nguyễn Văn Thủ, Phường Tân Định, Thành phố Hồ Chí Minh</td></tr>
|
|
47
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Người đại diện theo pháp luật<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Legal representative</div></td><td style="padding:5px 10px">Ông Trịnh Thái Anh · Tổng Giám đốc</td></tr>
|
|
48
|
+
<tr><td style="padding:5px 10px;vertical-align:top">Ngày lập Sổ<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Book created on</div></td><td style="padding:5px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">...... / ...... / ......</span></td></tr>
|
|
48
49
|
</tbody>
|
|
49
50
|
</table>
|
|
50
51
|
|
|
51
|
-
<h2 class="cs-avoid" style="font-size:13px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 4px">PHẦN B · DANH SÁCH NGƯỜI LAO ĐỘNG <span style="font-weight:400;font-size:11.5px;color
|
|
52
|
+
<h2 class="cs-avoid" style="font-size:13px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 4px">PHẦN B · DANH SÁCH NGƯỜI LAO ĐỘNG <span style="font-weight:400;font-size:11.5px;color:var(--cs-doc-slate);font-style:italic">Part B · Register of employees</span></h2>
|
|
52
53
|
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Mỗi người lao động được ghi một dòng. Các trường dưới đây là bắt buộc theo Điều 3 Nghị định 145/2020/NĐ-CP.</p>
|
|
53
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
54
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 8px">One row per employee. The fields below are those required by Article 3 of Decree 145/2020/ND-CP.</p>
|
|
54
55
|
<table class="cs-avoid" style="width:100%;border-collapse:collapse;font-size:12px;margin:0 0 12px">
|
|
55
|
-
<thead><tr style="background:var(--cs-color-brand-umber);color
|
|
56
|
+
<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:38px">#</th><th style="text-align:left;padding:5px 9px;font-size:10px">Trường thông tin bắt buộc <i style="font-weight:400">Required field</i></th></tr></thead>
|
|
56
57
|
<tbody>
|
|
57
58
|
<sc-for list="{{ fields }}" as="f" hint-placeholder-count="13">
|
|
58
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-family:var(--cs-font-family-mono);color:var(--cs-color-text-muted)">{{ f.n }}</td><td style="padding:6px 9px"><span>{{ f.vi }}</span><div style="color
|
|
59
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:6px 9px;font-family:var(--cs-font-family-mono);color:var(--cs-color-text-muted)">{{ f.n }}</td><td style="padding:6px 9px"><span>{{ f.vi }}</span><div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">{{ f.en }}</div></td></tr>
|
|
59
60
|
</sc-for>
|
|
60
61
|
</tbody>
|
|
61
62
|
</table>
|
|
62
63
|
<div class="cs-avoid" style="background:#FBF4E9;border:1px solid var(--cs-color-border-default);border-radius:8px;padding:9px 13px;margin-bottom:18px">
|
|
63
64
|
<p style="font-size:12px;line-height:1.45;margin:0 0 1px"><b>Ghi chú soạn thảo:</b> Trên thực tế, giữ Sổ này dưới dạng bảng tính hoặc trong CyberOS, một dòng cho mỗi người lao động, với đúng 13 trường trên. Bản in chỉ cần khi cơ quan lao động yêu cầu xuất trình.</p>
|
|
64
|
-
<p style="font-size:11px;line-height:1.4;color
|
|
65
|
+
<p style="font-size:11px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0"><b>Drafting note:</b> In practice, keep this Book as a spreadsheet or inside CyberOS, one row per employee, with exactly the 13 fields above. A printed copy is only needed when the labour authority asks to see it.</p>
|
|
65
66
|
</div>
|
|
66
67
|
|
|
67
|
-
<h2 class="cs-avoid" style="font-size:13px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 8px">PHẦN C · QUẢN LÝ SỔ <span style="font-weight:400;font-size:11.5px;color
|
|
68
|
+
<h2 class="cs-avoid" style="font-size:13px;font-weight:800;color:var(--cs-color-brand-umber);margin:0 0 8px">PHẦN C · QUẢN LÝ SỔ <span style="font-weight:400;font-size:11.5px;color:var(--cs-doc-slate);font-style:italic">Part C · Maintaining the Book</span></h2>
|
|
68
69
|
<div style="display:grid;gap:5px;margin-bottom:16px">
|
|
69
|
-
<div><p style="font-size:13px;line-height:1.5;margin:0">a) Người chịu trách nhiệm cập nhật: <span style="background
|
|
70
|
-
<div><p style="font-size:13px;line-height:1.5;margin:0">b) Cập nhật trong vòng 15 ngày kể từ ngày phát sinh thay đổi.</p><p style="font-size:12px;line-height:1.4;color
|
|
71
|
-
<div><p style="font-size:13px;line-height:1.5;margin:0">c) Xuất trình khi cơ quan quản lý nhà nước về lao động yêu cầu.</p><p style="font-size:12px;line-height:1.4;color
|
|
72
|
-
<div><p style="font-size:13px;line-height:1.5;margin:0">d) Lưu giữ tối thiểu 05 năm sau khi người lao động chấm dứt hợp đồng.</p><p style="font-size:12px;line-height:1.4;color
|
|
70
|
+
<div><p style="font-size:13px;line-height:1.5;margin:0">a) Người chịu trách nhiệm cập nhậ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:1px 0 0">a) Person responsible for updating it: <span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></p></div>
|
|
71
|
+
<div><p style="font-size:13px;line-height:1.5;margin:0">b) Cập nhật trong vòng 15 ngày kể từ ngày phát sinh thay đổi.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:1px 0 0">b) Updated within 15 days of any change.</p></div>
|
|
72
|
+
<div><p style="font-size:13px;line-height:1.5;margin:0">c) Xuất trình khi cơ quan quản lý nhà nước về lao động yêu cầu.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:1px 0 0">c) Produced on request by the state labour authority.</p></div>
|
|
73
|
+
<div><p style="font-size:13px;line-height:1.5;margin:0">d) Lưu giữ tối thiểu 05 năm sau khi người lao động chấm dứt hợp đồng.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:1px 0 0">d) Retained for at least 05 years after an employee's contract ends.</p></div>
|
|
73
74
|
</div>
|
|
74
75
|
|
|
75
76
|
<div class="cs-avoid">
|
|
76
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thành phố Hồ Chí Minh, ngày <span style="background
|
|
77
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
77
|
+
<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>
|
|
78
|
+
<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>
|
|
78
79
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:44px">
|
|
79
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">NGƯỜI LẬP SỔ</div><div style="font-size:11px;color
|
|
80
|
-
<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
|
|
80
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">NGƯỜI LẬP SỔ</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">Prepared by</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>
|
|
81
|
+
<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>
|
|
81
82
|
</div>
|
|
82
83
|
</div>
|
|
83
84
|
|
|
84
|
-
<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
|
|
85
|
+
<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>
|
|
85
86
|
</div>
|
|
86
87
|
</div>
|
|
87
88
|
</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 · Thỏa thuận bảo mật song phương — Mutual NDA · 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,89 +14,89 @@
|
|
|
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>· Thỏa thuận bảo mật song phương</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>· Thỏa thuận bảo mật song phương</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/TTBM-SP-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>
|
|
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 style="font-size:10.5px;margin-top:4px">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></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">THỎA THUẬN BẢO MẬT SONG PHƯƠNG</h1>
|
|
28
|
-
<div style="font-size:13.5px;color
|
|
29
|
-
<div style="font-size:12px;margin-top:8px">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">Mutual Non-Disclosure Agreement</div>
|
|
30
|
+
<div style="font-size:12px;margin-top:8px">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>
|
|
30
31
|
<div style="color:var(--cs-accent);font-size:13px;letter-spacing:0.5em;margin-top:10px">◆ ◆ ◆</div>
|
|
31
32
|
</div>
|
|
32
33
|
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Căn cứ Bộ luật Dân sự số 91/2015/QH13 và Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15;</p>
|
|
33
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
34
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Hôm nay, ngày <span style="background
|
|
35
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
34
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 6px">Pursuant to the Civil Code No. 91/2015/QH13 and the Law on Personal Data Protection No. 91/2025/QH15;</p>
|
|
35
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Hôm nay, 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>, hai Bên gồm:</p>
|
|
36
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 12px">Today, <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>, the two Parties are:</p>
|
|
36
37
|
|
|
37
38
|
<div class="cs-avoid" style="margin-bottom:12px">
|
|
38
|
-
<div style="font-weight:800;font-size:12.5px;color:var(--cs-color-brand-umber);margin-bottom:4px">BÊN A · CYBERSKILL <span style="font-weight:400;color
|
|
39
|
+
<div style="font-weight:800;font-size:12.5px;color:var(--cs-color-brand-umber);margin-bottom:4px">BÊN A · CYBERSKILL <span style="font-weight:400;color:var(--cs-doc-slate);font-style:italic">Party A · CyberSkill</span></div>
|
|
39
40
|
<table style="width:100%;border-collapse:collapse;font-size:12.5px">
|
|
40
41
|
<tbody>
|
|
41
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;width:190px;vertical-align:top">Công ty<div style="color
|
|
42
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Mã số thuế / DUNS<div style="color
|
|
43
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Địa chỉ<div style="color
|
|
44
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Đại diện<div style="color
|
|
45
|
-
<tr><td style="padding:5px 10px;vertical-align:top">Điện thoại · Email<div style="color
|
|
42
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;width:190px;vertical-align:top">Công ty<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Company</div></td><td style="padding:5px 10px">Công Ty Cổ Phần Tư Vấn Và Phát Triển Giải Pháp Phần Mềm CyberSkill</td></tr>
|
|
43
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Mã số thuế / DUNS<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Tax code / DUNS</div></td><td style="padding:5px 10px">0316475200 / 673219568</td></tr>
|
|
44
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Địa chỉ<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Address</div></td><td style="padding:5px 10px">Tầng 1, 207A Nguyễn Văn Thủ, Phường Tân Định, Thành phố Hồ Chí Minh</td></tr>
|
|
45
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Đại diện<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Represented by</div></td><td style="padding:5px 10px">Ông Trịnh Thái Anh (Mr. Stephen) · Tổng Giám đốc / <span style="color:var(--cs-doc-slate);font-style:italic">CEO</span></td></tr>
|
|
46
|
+
<tr><td style="padding:5px 10px;vertical-align:top">Điện thoại · Email<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Tel · Email</div></td><td style="padding:5px 10px">(+84) 906 878 091 · info@cyberskill.world</td></tr>
|
|
46
47
|
</tbody>
|
|
47
48
|
</table>
|
|
48
49
|
</div>
|
|
49
50
|
<div class="cs-avoid" style="margin-bottom:12px">
|
|
50
|
-
<div style="font-weight:800;font-size:12.5px;color:var(--cs-color-brand-umber);margin-bottom:4px">BÊN B · ĐỐI TÁC <span style="font-weight:400;color
|
|
51
|
+
<div style="font-weight:800;font-size:12.5px;color:var(--cs-color-brand-umber);margin-bottom:4px">BÊN B · ĐỐI TÁC <span style="font-weight:400;color:var(--cs-doc-slate);font-style:italic">Party B · The Partner</span></div>
|
|
51
52
|
<table style="width:100%;border-collapse:collapse;font-size:12.5px">
|
|
52
53
|
<tbody>
|
|
53
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;width:190px;vertical-align:top">Tên tổ chức<div style="color
|
|
54
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Mã số thuế<div style="color
|
|
55
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Địa chỉ<div style="color
|
|
56
|
-
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Đại diện · Chức vụ<div style="color
|
|
57
|
-
<tr><td style="padding:5px 10px;vertical-align:top">Điện thoại · Email<div style="color
|
|
54
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;width:190px;vertical-align:top">Tên tổ chức<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Organization</div></td><td style="padding:5px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">..............................</span></td></tr>
|
|
55
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Mã số thuế<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Tax code</div></td><td style="padding:5px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">...............................</span></td></tr>
|
|
56
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Địa chỉ<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Address</div></td><td style="padding:5px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">............................................................</span></td></tr>
|
|
57
|
+
<tr style="border-bottom:1px solid var(--cs-color-border-default)"><td style="padding:5px 10px;vertical-align:top">Đại diện · Chức vụ<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Represented by · Position</div></td><td style="padding:5px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">.................. · ..................</span></td></tr>
|
|
58
|
+
<tr><td style="padding:5px 10px;vertical-align:top">Điện thoại · Email<div style="color:var(--cs-doc-slate);font-style:italic;font-size:11px">Tel · Email</div></td><td style="padding:5px 10px"><span style="background:var(--cs-doc-fill);padding:0 3px">...............................</span></td></tr>
|
|
58
59
|
</tbody>
|
|
59
60
|
</table>
|
|
60
61
|
</div>
|
|
61
62
|
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Hai Bên trao đổi thông tin cho mục đích hợp tác và thống nhất bảo mật như sau. Nghĩa vụ bảo mật áp dụng cho cả hai Bên (song phương).</p>
|
|
62
|
-
<p style="font-size:12px;line-height:1.4;color
|
|
63
|
+
<p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0 0 12px">The Parties exchange information for a potential collaboration and agree on confidentiality as follows. The obligations apply to both Parties (mutually).</p>
|
|
63
64
|
|
|
64
65
|
<div style="display:grid;gap:11px">
|
|
65
|
-
<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 · THÔNG TIN BẢO MẬT <span style="font-weight:400;font-size:11px;color
|
|
66
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Là mọi thông tin kỹ thuật, kinh doanh, tài chính, sản phẩm, khách hàng, mã nguồn, dữ liệu và tài liệu mà một Bên tiết lộ cho Bên kia, dù bằng văn bản, lời nói hay điện tử, được đánh dấu hoặc hợp lý được hiểu là bảo mật.</p><p style="font-size:12px;line-height:1.4;color
|
|
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 1 · THÔNG TIN BẢO MẬT <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 1 · Confidential information</span></h2>
|
|
67
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Là mọi thông tin kỹ thuật, kinh doanh, tài chính, sản phẩm, khách hàng, mã nguồn, dữ liệu và tài liệu mà một Bên tiết lộ cho Bên kia, dù bằng văn bản, lời nói hay điện tử, được đánh dấu hoặc hợp lý được hiểu là bảo mật.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">Any technical, business, financial, product, customer, source-code, data, and documentary information disclosed by one Party to the other, whether written, oral, or electronic, marked or reasonably understood to be confidential.</p></div>
|
|
67
68
|
|
|
68
|
-
<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 2 · NGHĨA VỤ BẢO MẬT <span style="font-weight:400;font-size:11px;color
|
|
69
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Bên nhận chỉ sử dụng thông tin cho mục đích hợp tác; không tiết lộ cho bên thứ ba nếu không có sự đồng ý bằng văn bản; áp dụng biện pháp bảo vệ ít nhất tương đương với thông tin bảo mật của mình.</p><p style="font-size:12px;line-height:1.4;color
|
|
69
|
+
<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 2 · NGHĨA VỤ BẢO MẬT <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 2 · Confidentiality obligations</span></h2>
|
|
70
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Bên nhận chỉ sử dụng thông tin cho mục đích hợp tác; không tiết lộ cho bên thứ ba nếu không có sự đồng ý bằng văn bản; áp dụng biện pháp bảo vệ ít nhất tương đương với thông tin bảo mật của mình.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">The receiving Party uses the information only for the collaboration; does not disclose it to third parties without written consent; and protects it with at least the same care as its own confidential information.</p></div>
|
|
70
71
|
|
|
71
|
-
<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 · LOẠI TRỪ <span style="font-weight:400;font-size:11px;color
|
|
72
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Không áp dụng với thông tin đã công khai không do lỗi của Bên nhận; đã biết hợp pháp trước khi nhận; nhận hợp pháp từ bên thứ ba; hoặc phải tiết lộ theo yêu cầu của cơ quan có thẩm quyền, có thông báo trước hợp lý.</p><p style="font-size:12px;line-height:1.4;color
|
|
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 3 · LOẠI TRỪ <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 3 · Exclusions</span></h2>
|
|
73
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Không áp dụng với thông tin đã công khai không do lỗi của Bên nhận; đã biết hợp pháp trước khi nhận; nhận hợp pháp từ bên thứ ba; hoặc phải tiết lộ theo yêu cầu của cơ quan có thẩm quyền, có thông báo trước hợp lý.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">Does not apply to information that is public through no fault of the receiving Party; lawfully known before receipt; lawfully received from a third party; or required to be disclosed by a competent authority, with reasonable prior notice.</p></div>
|
|
73
74
|
|
|
74
|
-
<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 · THỜI HẠN <span style="font-weight:400;font-size:11px;color
|
|
75
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Nghĩa vụ bảo mật có hiệu lực kể từ ngày ký và kéo dài 03 năm sau khi kết thúc trao đổi, trừ bí mật kinh doanh được bảo vệ đến khi không còn là bí mật.</p><p style="font-size:12px;line-height:1.4;color
|
|
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 4 · THỜI HẠN <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 4 · Term</span></h2>
|
|
76
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Nghĩa vụ bảo mật có hiệu lực kể từ ngày ký và kéo dài 03 năm sau khi kết thúc trao đổi, trừ bí mật kinh doanh được bảo vệ đến khi không còn là bí mật.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">The obligations take effect from signing and last 03 years after the exchange ends, except trade secrets, which are protected until they cease to be secret.</p></div>
|
|
76
77
|
|
|
77
|
-
<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 · BẢO VỆ DỮ LIỆU CÁ NHÂN <span style="font-weight:400;font-size:11px;color
|
|
78
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Nếu việc trao đổi bao gồm dữ liệu cá nhân, các Bên tuân thủ Nghị định 13/2023/NĐ-CP và pháp luật về bảo vệ dữ liệu cá nhân.</p><p style="font-size:12px;line-height:1.4;color
|
|
78
|
+
<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 · BẢO VỆ DỮ LIỆU CÁ NHÂN <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 5 · Personal data protection</span></h2>
|
|
79
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Nếu việc trao đổi bao gồm dữ liệu cá nhân, các Bên tuân thủ Nghị định 13/2023/NĐ-CP và pháp luật về bảo vệ dữ liệu cá nhân.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">If the exchange includes personal data, the Parties comply with Decree 13/2023/ND-CP and the personal data protection law.</p></div>
|
|
79
80
|
|
|
80
|
-
<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 · HOÀN TRẢ VÀ TIÊU HỦY <span style="font-weight:400;font-size:11px;color
|
|
81
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Khi kết thúc hoặc theo yêu cầu, Bên nhận hoàn trả hoặc tiêu hủy thông tin bảo mật và bản sao, trừ khi phải lưu giữ theo luật.</p><p style="font-size:12px;line-height:1.4;color
|
|
81
|
+
<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 · HOÀN TRẢ VÀ TIÊU HỦY <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 6 · Return and destruction</span></h2>
|
|
82
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Khi kết thúc hoặc theo yêu cầu, Bên nhận hoàn trả hoặc tiêu hủy thông tin bảo mật và bản sao, trừ khi phải lưu giữ theo luật.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">On termination or request, the receiving Party returns or destroys the confidential information and copies, except where retention is required by law.</p></div>
|
|
82
83
|
|
|
83
|
-
<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 7 · CHẾ TÀI <span style="font-weight:400;font-size:11px;color
|
|
84
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Bên vi phạm phải bồi thường thiệt hại thực tế phát sinh; Bên bị vi phạm có quyền yêu cầu áp dụng biện pháp ngăn chặn theo quy định của pháp luật.</p><p style="font-size:12px;line-height:1.4;color
|
|
84
|
+
<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 7 · CHẾ TÀI <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 7 · Remedies</span></h2>
|
|
85
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Bên vi phạm phải bồi thường thiệt hại thực tế phát sinh; Bên bị vi phạm có quyền yêu cầu áp dụng biện pháp ngăn chặn theo quy định của pháp luật.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">The breaching Party compensates actual damages; the aggrieved Party may seek injunctive measures as provided by law.</p></div>
|
|
85
86
|
|
|
86
|
-
<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 8 · LUẬT ÁP DỤNG VÀ TRANH CHẤP <span style="font-weight:400;font-size:11px;color
|
|
87
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Áp dụng pháp luật Việt Nam. Tranh chấp được giải quyết bằng thương lượng; nếu không thành, đưa ra Tòa án có thẩm quyền hoặc trọng tài theo thỏa thuận.</p><p style="font-size:12px;line-height:1.4;color
|
|
87
|
+
<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 8 · LUẬT ÁP DỤNG VÀ TRANH CHẤP <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 8 · Governing law and disputes</span></h2>
|
|
88
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Áp dụng pháp luật Việt Nam. Tranh chấp được giải quyết bằng thương lượng; nếu không thành, đưa ra Tòa án có thẩm quyền hoặc trọng tài theo thỏa thuận.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">Governed by the laws of Vietnam. Disputes are settled by negotiation; failing that, by the competent court or arbitration as agreed.</p></div>
|
|
88
89
|
|
|
89
|
-
<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 9 · ĐIỀU KHOẢN CHUNG <span style="font-weight:400;font-size:11px;color
|
|
90
|
-
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thỏa thuận được lập thành 02 bản có giá trị như nhau, mỗi Bên giữ 01 bản.</p><p style="font-size:12px;line-height:1.4;color
|
|
90
|
+
<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 9 · ĐIỀU KHOẢN CHUNG <span style="font-weight:400;font-size:11px;color:var(--cs-doc-slate);font-style:italic">Article 9 · General provisions</span></h2>
|
|
91
|
+
<p style="font-size:13px;line-height:1.5;margin:0 0 1px">Thỏa thuận được lập thành 02 bản có giá trị như nhau, mỗi Bên giữ 01 bản.</p><p style="font-size:12px;line-height:1.4;color:var(--cs-doc-slate);font-style:italic;margin:0">This Agreement is made in 02 copies of equal validity, one held by each Party.</p></div>
|
|
91
92
|
</div>
|
|
92
93
|
|
|
93
94
|
<div class="cs-avoid" style="display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:20px">
|
|
94
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">BÊN A · CYBERSKILL</div><div style="font-size:11px;color
|
|
95
|
-
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">BÊN B · ĐỐI TÁC</div><div style="font-size:11px;color
|
|
95
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">BÊN A · CYBERSKILL</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">Party A</div><div style="font-size:10.5px;margin-top:1px">(Ký, ghi rõ họ tên / <i style="color:var(--cs-doc-slate)">Sign, full name</i>)</div><div style="height:64px"></div><div style="border-top:1px solid var(--cs-doc-ink);width:70%;margin:0 auto"></div></div>
|
|
96
|
+
<div style="text-align:center"><div style="font-weight:700;font-size:12.5px">BÊN B · ĐỐI TÁC</div><div style="font-size:11px;color:var(--cs-doc-slate);font-style:italic">Party B</div><div style="font-size:10.5px;margin-top:1px">(Ký, ghi rõ họ tên / <i style="color:var(--cs-doc-slate)">Sign, full name</i>)</div><div style="height:64px"></div><div style="border-top:1px solid var(--cs-doc-ink);width:70%;margin:0 auto"></div></div>
|
|
96
97
|
</div>
|
|
97
98
|
|
|
98
|
-
<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
|
|
99
|
+
<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>
|
|
99
100
|
</div>
|
|
100
101
|
</div>
|
|
101
102
|
</x-dc>
|