@cyberskill/design 2.0.0 → 2.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 +87 -87
- package/README.md +3 -3
- package/SECURITY.md +4 -4
- package/VERSION +1 -1
- package/_ds_bundle.js +2 -2
- package/_ds_bundle.js.map +1 -1
- package/_ds_manifest.json +143 -143
- package/_esm/cs.mjs +2 -2
- package/base/collections.css +5 -4
- package/base/components.css +8 -7
- package/base/controls.css +16 -16
- package/base/data.css +5 -5
- package/base/feedback.css +5 -3
- package/base/forms.css +3 -2
- package/base/glass.css +4 -4
- package/base/interaction.css +6 -1
- package/base/navigation.css +3 -3
- package/base/reset.css +2 -0
- package/base/shell.css +8 -8
- package/base/typography.css +4 -4
- package/components/_i18n/strings.js +3 -3
- package/components/_utils/open-change.js +18 -0
- package/components/ai/ai-conversation.card.html +2 -0
- package/components/ai/ai-lumi.card.html +2 -0
- package/components/ai/ai.card.html +2 -0
- package/components/api-discovery.json +94 -24
- package/components/api-index.json +528 -80
- package/components/brand/brand.card.html +2 -0
- package/components/button/buttons.card.html +2 -0
- package/components/contracts.json +23 -9
- package/components/data/collections.card.html +2 -0
- package/components/data/data.card.html +2 -0
- package/components/datatable/DataGrid.jsx +1 -1
- package/components/datatable/datatable.card.html +2 -0
- package/components/dialog/Dialog.d.ts +3 -0
- package/components/dialog/Dialog.jsx +7 -5
- package/components/dialog/Dialog.prompt.md +1 -0
- package/components/dialog/dialog.card.html +2 -0
- package/components/feedback/Alert.d.ts +5 -1
- package/components/feedback/Alert.jsx +4 -3
- package/components/feedback/Alert.prompt.md +2 -0
- package/components/feedback/Toast.d.ts +3 -0
- package/components/feedback/Toast.jsx +4 -3
- package/components/feedback/Toast.prompt.md +1 -0
- package/components/feedback/feedback-2.card.html +2 -0
- package/components/feedback/feedback.card.html +2 -0
- package/components/forms/forms-2.card.html +2 -0
- package/components/forms/forms.card.html +2 -0
- package/components/i18n/i18n.card.html +2 -1
- package/components/icon/icon.card.html +2 -0
- package/components/lifecycle.json +433 -55
- package/components/logo/logo.card.html +2 -0
- package/components/navigation/CommandPalette.d.ts +4 -1
- package/components/navigation/CommandPalette.jsx +6 -5
- package/components/navigation/CommandPalette.prompt.md +1 -0
- package/components/navigation/Menubar.jsx +2 -2
- package/components/navigation/navigation.card.html +2 -0
- package/components/navigation/shell.card.html +2 -0
- package/components/overlays/Drawer.d.ts +3 -0
- package/components/overlays/Drawer.jsx +6 -5
- package/components/overlays/Drawer.prompt.md +1 -0
- package/components/overlays/Tour.d.ts +3 -0
- package/components/overlays/Tour.jsx +8 -5
- package/components/overlays/Tour.prompt.md +1 -0
- package/components/overlays/alertdialog.card.html +2 -0
- package/components/overlays/overlays.card.html +2 -0
- package/components/prompt-api.json +17 -10
- package/components/scenarios.json +37 -37
- package/components/specifications.json +3403 -1401
- package/components/static-html-reference.json +36 -36
- package/components/textfield/textfield.card.html +2 -0
- package/dist/esm/_esm/react.mjs +69 -68
- package/dist/esm/build.json +526 -518
- package/dist/esm/chunks/{chunk-FEUTSZBN.mjs → chunk-2CCVFTPL.mjs} +2 -2
- package/dist/esm/chunks/{chunk-W5VR7GTL.mjs → chunk-2VVGZEOQ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-3RC4CDAE.mjs → chunk-3R5WJQCB.mjs} +2 -2
- package/dist/esm/chunks/{chunk-W6N22NMF.mjs → chunk-4FGB6VHN.mjs} +2 -2
- package/dist/esm/chunks/{chunk-JN57OITY.mjs → chunk-4RSFD6QC.mjs} +10 -7
- package/dist/esm/chunks/chunk-4RSFD6QC.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-YZR3C7V2.mjs → chunk-4TO35YGK.mjs} +2 -2
- package/dist/esm/chunks/{chunk-JSAPFO73.mjs → chunk-4YWKKULF.mjs} +2 -2
- package/dist/esm/chunks/{chunk-W2RF4NWB.mjs → chunk-5FQGNCKS.mjs} +2 -2
- package/dist/esm/chunks/chunk-65SIJBJX.mjs +22 -0
- package/dist/esm/chunks/chunk-65SIJBJX.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-SYCXNMYP.mjs → chunk-6ECKJ6RS.mjs} +2 -2
- package/dist/esm/chunks/{chunk-CH4W6RCG.mjs → chunk-6H7JYBPI.mjs} +10 -5
- package/dist/esm/chunks/chunk-6H7JYBPI.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-72AUOI37.mjs → chunk-6TZDNLHE.mjs} +2 -2
- package/dist/esm/chunks/{chunk-QGCPHFSI.mjs → chunk-72STPBL4.mjs} +2 -2
- package/dist/esm/chunks/{chunk-37AN57S5.mjs → chunk-7GSR2NGL.mjs} +3 -3
- package/dist/esm/chunks/{chunk-A3PGQW3X.mjs → chunk-AA5BSO3T.mjs} +2 -2
- package/dist/esm/chunks/{chunk-NH6M42ZI.mjs → chunk-ASGO2FW5.mjs} +2 -2
- package/dist/esm/chunks/{chunk-GP5ITSCH.mjs → chunk-C3NAMBA7.mjs} +2 -2
- package/dist/esm/chunks/{chunk-YA7Y7PEC.mjs → chunk-CKBL3UEA.mjs} +2 -2
- package/dist/esm/chunks/{chunk-H7EJ7TNP.mjs → chunk-CYZ22MB7.mjs} +2 -2
- package/dist/esm/chunks/{chunk-JRIWHAWW.mjs → chunk-D7A4ZCMJ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-A7RWM4XH.mjs → chunk-DANUZS4S.mjs} +2 -2
- package/dist/esm/chunks/{chunk-FAVSLU7E.mjs → chunk-DFBKBVSE.mjs} +2 -2
- package/dist/esm/chunks/{chunk-TNHQB6CI.mjs → chunk-DW4AWLA5.mjs} +2 -2
- package/dist/esm/chunks/{chunk-5R5KMLUR.mjs → chunk-DWJIX65T.mjs} +2 -2
- package/dist/esm/chunks/{chunk-YJNSQ5PJ.mjs → chunk-EITZT2U5.mjs} +2 -2
- package/dist/esm/chunks/{chunk-CSJHR2W2.mjs → chunk-EOCMQT4L.mjs} +2 -2
- package/dist/esm/chunks/{chunk-4QBKN42N.mjs → chunk-EXOOST5G.mjs} +2 -2
- package/dist/esm/chunks/{chunk-7HTAAMIY.mjs → chunk-FF5D53IP.mjs} +2 -2
- package/dist/esm/chunks/{chunk-JNK7QN24.mjs → chunk-FOEJO2YQ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-F3M5TQ76.mjs → chunk-GB6VWFOE.mjs} +11 -6
- package/dist/esm/chunks/chunk-GB6VWFOE.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-UFE32JPH.mjs → chunk-GHWOEHEX.mjs} +8 -4
- package/dist/esm/chunks/chunk-GHWOEHEX.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-HYQG5XND.mjs → chunk-GLPQBE2J.mjs} +2 -2
- package/dist/esm/chunks/{chunk-HUW6OY7C.mjs → chunk-GNEVR5Q4.mjs} +2 -2
- package/dist/esm/chunks/{chunk-SEYKDGXE.mjs → chunk-H4TKHAB3.mjs} +2 -2
- package/dist/esm/chunks/{chunk-ANWF2NX3.mjs → chunk-H6HQZ5RI.mjs} +3 -3
- package/dist/esm/chunks/{chunk-ANWF2NX3.mjs.map → chunk-H6HQZ5RI.mjs.map} +2 -2
- package/dist/esm/chunks/{chunk-OR5UTKW7.mjs → chunk-I3H7EAH5.mjs} +2 -2
- package/dist/esm/chunks/{chunk-P64YS5W2.mjs → chunk-I3PQVFX5.mjs} +2 -2
- package/dist/esm/chunks/{chunk-5MR3C2QG.mjs → chunk-IOEWPBAL.mjs} +2 -2
- package/dist/esm/chunks/{chunk-TN2MZXGS.mjs → chunk-JIHWIDMP.mjs} +2 -2
- package/dist/esm/chunks/{chunk-FXELBWXK.mjs → chunk-JTAYZ36C.mjs} +4 -3
- package/dist/esm/chunks/{chunk-FXELBWXK.mjs.map → chunk-JTAYZ36C.mjs.map} +2 -2
- package/dist/esm/chunks/{chunk-25AOTZAM.mjs → chunk-JZYRXWPD.mjs} +4 -4
- package/dist/esm/chunks/{chunk-25AOTZAM.mjs.map → chunk-JZYRXWPD.mjs.map} +2 -2
- package/dist/esm/chunks/{chunk-YX62AV33.mjs → chunk-KAOUK33L.mjs} +2 -2
- package/dist/esm/chunks/{chunk-UVJ5BBQG.mjs → chunk-KWPNHP73.mjs} +2 -2
- package/dist/esm/chunks/{chunk-BABSYWVB.mjs → chunk-LCC4ZVVO.mjs} +2 -2
- package/dist/esm/chunks/{chunk-GWBINWTF.mjs → chunk-LWRFPVX7.mjs} +8 -4
- package/dist/esm/chunks/chunk-LWRFPVX7.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-HVF4NT6P.mjs → chunk-MRXEJSQQ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-DIIXA7WD.mjs → chunk-NZKMM4FK.mjs} +2 -2
- package/dist/esm/chunks/{chunk-CLWTVJM3.mjs → chunk-OEWAQZYE.mjs} +2 -2
- package/dist/esm/chunks/{chunk-IH4I7JSB.mjs → chunk-OILXJXVX.mjs} +10 -7
- package/dist/esm/chunks/chunk-OILXJXVX.mjs.map +7 -0
- package/dist/esm/chunks/{chunk-OOZKMXYB.mjs → chunk-PBP2MKZH.mjs} +2 -2
- package/dist/esm/chunks/{chunk-JKKJHQVQ.mjs → chunk-PE6KC2U7.mjs} +2 -2
- package/dist/esm/chunks/{chunk-N5TM7UIY.mjs → chunk-PFTKXY5Q.mjs} +2 -2
- package/dist/esm/chunks/{chunk-R7QVE2JP.mjs → chunk-PLN3ITUB.mjs} +2 -2
- package/dist/esm/chunks/{chunk-NEMFYL4X.mjs → chunk-QBPDNM7S.mjs} +2 -2
- package/dist/esm/chunks/{chunk-JDI3UMJW.mjs → chunk-SIMVM4RV.mjs} +2 -2
- package/dist/esm/chunks/{chunk-WJF2Q2Y3.mjs → chunk-TMXLSCAG.mjs} +2 -2
- package/dist/esm/chunks/{chunk-TGYG7JP4.mjs → chunk-TNQXCIBM.mjs} +2 -2
- package/dist/esm/chunks/{chunk-DHTD5KM5.mjs → chunk-TWCJMLGG.mjs} +2 -2
- package/dist/esm/chunks/{chunk-EPFDMHPK.mjs → chunk-U7RKPGRO.mjs} +2 -2
- package/dist/esm/chunks/{chunk-NMIGE2IM.mjs → chunk-UWNMGKAN.mjs} +2 -2
- package/dist/esm/chunks/{chunk-KXFGO7N4.mjs → chunk-VAPKJRQI.mjs} +2 -2
- package/dist/esm/chunks/{chunk-XTBN55D3.mjs → chunk-VUCJT2QJ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-TVTBVHT2.mjs → chunk-WLANQTOU.mjs} +2 -2
- package/dist/esm/chunks/{chunk-3MCNCG2L.mjs → chunk-XZ5NWMO7.mjs} +2 -2
- package/dist/esm/chunks/{chunk-QPXQZBQC.mjs → chunk-YKU2KVAQ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-ZKFOGW4D.mjs → chunk-YLSFKG64.mjs} +2 -2
- package/dist/esm/chunks/{chunk-TO2T6EEB.mjs → chunk-YVSAUCWW.mjs} +3 -3
- package/dist/esm/chunks/{chunk-XN74VX5H.mjs → chunk-ZKBAIIAQ.mjs} +2 -2
- package/dist/esm/chunks/{chunk-7IJTTRPK.mjs → chunk-ZPLENPV2.mjs} +2 -2
- package/dist/esm/components/ai/AIDisclosureBadge.mjs +2 -2
- package/dist/esm/components/ai/ChatMessage.mjs +2 -2
- package/dist/esm/components/ai/CitationList.mjs +2 -2
- package/dist/esm/components/ai/ConfidenceMeter.mjs +2 -2
- package/dist/esm/components/ai/HumanReviewGate.mjs +2 -2
- package/dist/esm/components/ai/PromptInput.mjs +2 -2
- package/dist/esm/components/ai/TypingIndicator.mjs +2 -2
- package/dist/esm/components/data/Carousel.mjs +2 -2
- package/dist/esm/components/data/Chart.mjs +2 -2
- package/dist/esm/components/data/CodeBlock.mjs +2 -2
- package/dist/esm/components/data/Comment.mjs +2 -2
- package/dist/esm/components/data/Image.mjs +2 -2
- package/dist/esm/components/data/Sortable.mjs +2 -2
- package/dist/esm/components/data/Splitter.mjs +2 -2
- package/dist/esm/components/data/Terminal.mjs +2 -2
- package/dist/esm/components/data/Tooltip.mjs +2 -2
- package/dist/esm/components/datatable/DataGrid.mjs +2 -2
- package/dist/esm/components/datatable/DataTable.mjs +3 -3
- package/dist/esm/components/datatable/TreeTable.mjs +2 -2
- package/dist/esm/components/dialog/Dialog.mjs +3 -2
- package/dist/esm/components/feedback/Alert.mjs +3 -2
- package/dist/esm/components/feedback/EmptyState.mjs +2 -2
- package/dist/esm/components/feedback/ProgressBar.mjs +2 -2
- package/dist/esm/components/feedback/Result.mjs +2 -2
- package/dist/esm/components/feedback/Spinner.mjs +2 -2
- package/dist/esm/components/feedback/Tag.mjs +2 -2
- package/dist/esm/components/feedback/Toast.mjs +3 -2
- package/dist/esm/components/forms/Calendar.mjs +2 -2
- package/dist/esm/components/forms/Cascader.mjs +2 -2
- package/dist/esm/components/forms/ColorPicker.mjs +2 -2
- package/dist/esm/components/forms/Combobox.mjs +2 -2
- package/dist/esm/components/forms/DatePicker.mjs +3 -3
- package/dist/esm/components/forms/Editor.mjs +2 -2
- package/dist/esm/components/forms/FileUpload.mjs +2 -2
- package/dist/esm/components/forms/Form.mjs +2 -2
- package/dist/esm/components/forms/InlineEdit.mjs +2 -2
- package/dist/esm/components/forms/InputGroup.mjs +2 -2
- package/dist/esm/components/forms/InputOTP.mjs +2 -2
- package/dist/esm/components/forms/Mentions.mjs +2 -2
- package/dist/esm/components/forms/NumberField.mjs +2 -2
- package/dist/esm/components/forms/Rating.mjs +2 -2
- package/dist/esm/components/forms/SearchField.mjs +2 -2
- package/dist/esm/components/forms/Select.mjs +2 -2
- package/dist/esm/components/forms/Slider.mjs +2 -2
- package/dist/esm/components/forms/Switch.mjs +2 -2
- package/dist/esm/components/forms/TagInput.mjs +2 -2
- package/dist/esm/components/forms/TimePicker.mjs +2 -2
- package/dist/esm/components/forms/Toggle.mjs +2 -2
- package/dist/esm/components/forms/Transfer.mjs +2 -2
- package/dist/esm/components/forms/TreeSelect.mjs +2 -2
- package/dist/esm/components/i18n/LocaleProvider.mjs +2 -2
- package/dist/esm/components/navigation/BackTop.mjs +2 -2
- package/dist/esm/components/navigation/Breadcrumb.mjs +2 -2
- package/dist/esm/components/navigation/CommandPalette.mjs +3 -2
- package/dist/esm/components/navigation/HotKeys.mjs +2 -2
- package/dist/esm/components/navigation/Menu.mjs +2 -2
- package/dist/esm/components/navigation/Menubar.mjs +2 -2
- package/dist/esm/components/navigation/Pagination.mjs +2 -2
- package/dist/esm/components/navigation/Steps.mjs +2 -2
- package/dist/esm/components/navigation/Tabs.mjs +2 -2
- package/dist/esm/components/navigation/Toolbar.mjs +2 -2
- package/dist/esm/components/overlays/AlertDialog.mjs +2 -2
- package/dist/esm/components/overlays/ContextMenu.mjs +2 -2
- package/dist/esm/components/overlays/Drawer.mjs +3 -2
- package/dist/esm/components/overlays/Popconfirm.mjs +2 -2
- package/dist/esm/components/overlays/Popover.mjs +2 -2
- package/dist/esm/components/overlays/Tour.mjs +3 -2
- package/dist/styles.min.css +1 -1
- package/docs/ci-cd.md +1 -1
- package/docs/component-api.md +1 -1
- package/docs/consuming.md +1 -1
- package/docs/contrast-report.md +196 -1
- package/docs/conventions.md +1 -1
- package/docs/design-styles.md +1 -1
- package/docs/manual-at-matrix.md +2 -0
- package/docs/quality-gates.md +2 -1
- package/docs/reference-catalog.json +81 -81
- package/docs/release-notes.md +1 -1
- package/docs/static-html-reference.md +27 -27
- package/docs/template-inventory.json +162 -162
- package/docs/vi/ci-cd.md +1 -1
- package/docs/vi/component-api.md +1 -1
- package/docs/vi/consuming.md +1 -1
- package/docs/vi/contrast-report.md +196 -1
- package/docs/vi/conventions.md +1 -1
- package/docs/vi/decisions/component-specification-evidence.md +1 -1
- package/docs/vi/decisions/token-alias-compatibility.md +1 -1
- package/docs/vi/design-styles.md +1 -1
- package/docs/vi/entrypoints/DESIGN.md +87 -87
- package/docs/vi/entrypoints/README.md +3 -3
- package/docs/vi/manual-at-matrix.md +2 -0
- package/docs/vi/quality-gates.md +2 -1
- package/docs/vi/release-notes.md +1 -1
- package/docs/vi/static-html-reference.md +27 -27
- package/docs/viewer.html +9 -12
- package/guidelines/atomic-view.html +39 -34
- package/guidelines/brand-iconography.html +33 -32
- package/guidelines/brand-imagery.html +2 -1
- package/guidelines/brand-interaction.html +3 -2
- package/guidelines/brand-voice.html +2 -1
- package/guidelines/colors-anchors.html +2 -1
- package/guidelines/colors-semantic.html +2 -1
- package/guidelines/colors-surfaces.html +2 -1
- package/guidelines/colors-text.html +2 -1
- package/guidelines/documents.html +3 -2
- package/guidelines/elements-components.html +4 -3
- package/guidelines/elements-concept.html +3 -2
- package/guidelines/elements-geometry.html +4 -3
- package/guidelines/elements-variants.html +18 -17
- package/guidelines/guideline-language.js +1 -1
- package/guidelines/motion-interaction.html +2 -1
- package/guidelines/motion.html +12 -13
- package/guidelines/responsive-bilingual.html +7 -6
- package/guidelines/rtl-preview.html +2 -2
- package/guidelines/spacing-breakpoints.html +2 -1
- package/guidelines/spacing-radius.html +4 -3
- package/guidelines/spacing-scale.html +2 -1
- package/guidelines/surfaces-aurora.html +2 -1
- package/guidelines/surfaces-depth.html +3 -2
- package/guidelines/surfaces-glass.html +2 -1
- package/guidelines/surfaces-shadow.html +2 -1
- package/guidelines/type-families.html +2 -1
- package/guidelines/type-lineheight.html +2 -1
- package/guidelines/type-scale.html +2 -1
- package/guidelines/type-weights.html +2 -1
- package/package.json +4 -2
- package/styles/components/manifest.json +156 -148
- package/styles.layered.css +492 -485
- package/styles.layered.provenance.json +17 -17
- package/templates/_vendor/deck-stage.js +3 -3
- package/templates/_vendor/doc-export.js +1 -1
- package/templates/_vendor/support.js +1 -1
- package/templates/ai-cluster-demo.html +2 -1
- package/templates/app-shell/AppShell.dc.html +2 -1
- package/templates/app-shell/support.js +1 -1
- package/templates/article/Article.dc.html +2 -1
- package/templates/article/support.js +1 -1
- package/templates/auth/Auth.dc.html +2 -1
- package/templates/auth/support.js +1 -1
- package/templates/bod-deck/BodDeck.dc.html +1 -0
- package/templates/bod-deck/support.js +1 -1
- package/templates/bod-investor-update/BodInvestorUpdate.dc.html +1 -0
- package/templates/bod-investor-update/support.js +1 -1
- package/templates/bod-memo/support.js +1 -1
- package/templates/bod-minutes/BodMinutes.dc.html +1 -0
- package/templates/bod-minutes/support.js +1 -1
- package/templates/bod-report/BodReport.dc.html +1 -0
- package/templates/bod-report/support.js +1 -1
- package/templates/bod-resolution/BodResolution.dc.html +1 -0
- package/templates/bod-resolution/support.js +1 -1
- package/templates/culture-event-invite/CultureEventInvite.dc.html +1 -0
- package/templates/culture-event-invite/support.js +1 -1
- package/templates/dashboard/Dashboard.dc.html +2 -1
- package/templates/dashboard/support.js +1 -1
- package/templates/delivery-change-note/DeliveryChangeNote.dc.html +1 -0
- package/templates/delivery-change-note/support.js +1 -1
- package/templates/delivery-kickoff/DeliveryKickoff.dc.html +1 -0
- package/templates/delivery-kickoff/support.js +1 -1
- package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +3 -2
- package/templates/delivery-qbr-deck/support.js +1 -1
- package/templates/delivery-runbook/DeliveryRunbook.dc.html +1 -0
- package/templates/delivery-runbook/support.js +1 -1
- package/templates/delivery-status-email/support.js +1 -1
- package/templates/doc-style-guide/DocStyleGuide.dc.html +1 -0
- package/templates/doc-style-guide/support.js +1 -1
- package/templates/doc-suite-index/DocSuiteIndex.dc.html +1 -0
- package/templates/doc-suite-index/support.js +1 -1
- package/templates/doc-templates/support.js +1 -1
- package/templates/email/Email-VN-standalone.html +2 -1
- package/templates/email/support.js +1 -1
- package/templates/email-safe/email-announcement.html +2 -1
- package/templates/email-safe/email-dunning.html +2 -1
- package/templates/email-safe/email-investor.html +2 -1
- package/templates/email-safe/email-launch.html +2 -1
- package/templates/email-safe/email-newsletter.html +2 -1
- package/templates/email-safe/email-status.html +2 -1
- package/templates/email-safe/email-transactional.html +2 -1
- package/templates/finance-dunning-email/support.js +1 -1
- package/templates/finance-expense-report/support.js +1 -1
- package/templates/finance-invoice/support.js +1 -1
- package/templates/finance-quote/support.js +1 -1
- package/templates/hr-announcement/support.js +1 -1
- package/templates/hr-interview-kit/HrInterviewKit.dc.html +1 -0
- package/templates/hr-interview-kit/support.js +1 -1
- package/templates/hr-offboarding/HrOffboarding.dc.html +1 -0
- package/templates/hr-offboarding/support.js +1 -1
- package/templates/hr-performance-review/HrPerformanceReview.dc.html +1 -0
- package/templates/hr-performance-review/support.js +1 -1
- package/templates/hr-pip/HrPip.dc.html +1 -0
- package/templates/hr-pip/support.js +1 -1
- package/templates/image-slots-demo.html +11 -9
- package/templates/kitchen-sink.html +8 -4
- package/templates/legal-msa/LegalMsa.dc.html +1 -0
- package/templates/legal-msa/support.js +1 -1
- package/templates/legal-sow/support.js +1 -1
- package/templates/marketing-campaign-brief/MarketingCampaignBrief.dc.html +1 -0
- package/templates/marketing-campaign-brief/support.js +1 -1
- package/templates/marketing-case-study/MarketingCaseStudy.dc.html +1 -0
- package/templates/marketing-case-study/support.js +1 -1
- package/templates/marketing-launch/support.js +1 -1
- package/templates/marketing-newsletter/support.js +1 -1
- package/templates/marketing-page/MarketingPage.dc.html +6 -3
- package/templates/marketing-page/support.js +1 -1
- package/templates/marketing-press-release/MarketingPressRelease.dc.html +2 -1
- package/templates/marketing-press-release/support.js +1 -1
- package/templates/marketing-social-kit/MarketingSocialKit.dc.html +1 -0
- package/templates/marketing-social-kit/support.js +1 -1
- package/templates/playground.html +9 -7
- package/templates/sales-one-pager/SalesOnePager.dc.html +1 -0
- package/templates/sales-one-pager/support.js +1 -1
- package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +1 -0
- package/templates/sales-proposal-deck/support.js +1 -1
- package/templates/settings/Settings.dc.html +2 -1
- package/templates/settings/support.js +1 -1
- package/templates/slide-deck/SlideDeck.dc.html +1 -0
- package/templates/slide-deck/support.js +1 -1
- package/templates/team-meeting-agenda/TeamMeetingAgenda.dc.html +1 -0
- package/templates/team-meeting-agenda/support.js +1 -1
- package/templates/tech-incident-report/TechIncidentReport.dc.html +1 -0
- package/templates/tech-incident-report/support.js +1 -1
- package/templates/tech-release-notes/support.js +1 -1
- package/templates/tech-retro/TechRetro.dc.html +1 -0
- package/templates/tech-retro/support.js +1 -1
- package/templates/tech-rfc/TechRfc.dc.html +2 -1
- package/templates/tech-rfc/support.js +1 -1
- package/templates/vn-appointment-transfer/support.js +1 -1
- package/templates/vn-certificate-of-employment/support.js +1 -1
- package/templates/vn-code-of-conduct/support.js +1 -1
- package/templates/vn-compensation-regulation/support.js +1 -1
- package/templates/vn-contract-amendment/support.js +1 -1
- package/templates/vn-contractor-agreement/support.js +1 -1
- package/templates/vn-data-protection-policy/support.js +1 -1
- package/templates/vn-disciplinary-case-file/support.js +1 -1
- package/templates/vn-disciplinary-schedule/VnDisciplinarySchedule.dc.html +1 -0
- package/templates/vn-disciplinary-schedule/support.js +1 -1
- package/templates/vn-employee-request/support.js +1 -1
- package/templates/vn-exit-handover/support.js +1 -1
- package/templates/vn-foreign-employee-pack/VnForeignEmployeePack.dc.html +1 -0
- package/templates/vn-foreign-employee-pack/support.js +1 -1
- package/templates/vn-framework-agreement/support.js +1 -1
- package/templates/vn-grassroots-democracy/support.js +1 -1
- package/templates/vn-infosec-policy/support.js +1 -1
- package/templates/vn-internal-labor-regulations/support.js +1 -1
- package/templates/vn-internship-agreement/support.js +1 -1
- package/templates/vn-job-description/support.js +1 -1
- package/templates/vn-labor-contract/support.js +1 -1
- package/templates/vn-labour-management-book/VnLabourManagementBook.dc.html +1 -0
- package/templates/vn-labour-management-book/support.js +1 -1
- package/templates/vn-mutual-nda/support.js +1 -1
- package/templates/vn-ndnca-ip/support.js +1 -1
- package/templates/vn-offer-letter/support.js +1 -1
- package/templates/vn-onboarding-checklist/VnOnboardingChecklist.dc.html +1 -0
- package/templates/vn-onboarding-checklist/support.js +1 -1
- package/templates/vn-pdpl-consent/support.js +1 -1
- package/templates/vn-performance-evaluation-regulation/support.js +1 -1
- package/templates/vn-performance-review-form/support.js +1 -1
- package/templates/vn-phantom-stock/VnPhantomStock.dc.html +1 -0
- package/templates/vn-phantom-stock/support.js +1 -1
- package/templates/vn-probation-contract/support.js +1 -1
- package/templates/vn-receipt-acknowledgement/VnReceiptAcknowledgement.dc.html +1 -0
- package/templates/vn-receipt-acknowledgement/support.js +1 -1
- package/templates/vn-remote-work-policy/support.js +1 -1
- package/templates/vn-resignation-letter/support.js +1 -1
- package/templates/vn-salary-scale/VnSalaryScale.dc.html +1 -0
- package/templates/vn-salary-scale/support.js +1 -1
- package/templates/vn-sow-appendix/support.js +1 -1
- package/templates/vn-termination-decision/support.js +1 -1
- package/templates/vn-total-rewards-appendix/support.js +1 -1
- package/templates/vn-training-commitment/support.js +1 -1
- package/templates/vn-travel-expense-policy/support.js +1 -1
- package/tokens/base-inventory.json +22 -22
- package/tokens/component-tokens.css +38 -38
- package/tokens/declarations.json +490 -490
- package/tokens/element-seeds.json +41 -39
- package/tokens/elements.css +381 -381
- package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/index.json +2068 -2068
- package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
- package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
- package/tokens/native/CSModes.kt +658 -615
- package/tokens/native/CSModes.swift +658 -615
- package/tokens/native/CSTokens.kt +311 -311
- package/tokens/native/CSTokens.swift +311 -311
- package/tokens/native/cs_modes.dart +658 -615
- package/tokens/native/cs_tokens.dart +311 -311
- package/tokens/native/mode-provenance.json +12 -12
- package/tokens/provenance.json +6 -6
- package/tokens/theme-attributes.css +40 -40
- package/tokens/tokens.dtcg.json +451 -394
- package/tokens/tokens.js +242 -242
- package/tokens/tokens.json +241 -241
- package/tokens/typography.css +6 -6
- package/tokens/variables.css +464 -464
- package/tokens/viewer.html +15 -11
- package/ui_kits/deck/index.html +4 -2
- package/ui_kits/status-hub/StatusHub.jsx +7 -7
- package/ui_kits/status-hub/data.js +3 -3
- package/ui_kits/status-hub/index.html +1 -0
- package/ui_kits/status-hub/login.html +8 -6
- package/ui_kits/status-hub/project.html +7 -6
- package/ui_kits/status-hub/settings.html +9 -8
- package/ui_kits/status-hub/status.css +10 -8
- package/ui_kits/website/Website.jsx +3 -3
- package/ui_kits/website/careers.html +24 -7
- package/ui_kits/website/chat.html +5 -2
- package/ui_kits/website/index.html +1 -0
- package/ui_kits/website/site.css +30 -6
- package/ui_kits/website/work.html +12 -7
- package/components/_utils/use-viewport-panel.js +0 -30
- package/dist/esm/chunks/chunk-CH4W6RCG.mjs.map +0 -7
- package/dist/esm/chunks/chunk-F3M5TQ76.mjs.map +0 -7
- package/dist/esm/chunks/chunk-GWBINWTF.mjs.map +0 -7
- package/dist/esm/chunks/chunk-IH4I7JSB.mjs.map +0 -7
- package/dist/esm/chunks/chunk-JN57OITY.mjs.map +0 -7
- package/dist/esm/chunks/chunk-UFE32JPH.mjs.map +0 -7
- /package/dist/esm/chunks/{chunk-FEUTSZBN.mjs.map → chunk-2CCVFTPL.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-W5VR7GTL.mjs.map → chunk-2VVGZEOQ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-3RC4CDAE.mjs.map → chunk-3R5WJQCB.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-W6N22NMF.mjs.map → chunk-4FGB6VHN.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-YZR3C7V2.mjs.map → chunk-4TO35YGK.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-JSAPFO73.mjs.map → chunk-4YWKKULF.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-W2RF4NWB.mjs.map → chunk-5FQGNCKS.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-SYCXNMYP.mjs.map → chunk-6ECKJ6RS.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-72AUOI37.mjs.map → chunk-6TZDNLHE.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-QGCPHFSI.mjs.map → chunk-72STPBL4.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-37AN57S5.mjs.map → chunk-7GSR2NGL.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-A3PGQW3X.mjs.map → chunk-AA5BSO3T.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-NH6M42ZI.mjs.map → chunk-ASGO2FW5.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-GP5ITSCH.mjs.map → chunk-C3NAMBA7.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-YA7Y7PEC.mjs.map → chunk-CKBL3UEA.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-H7EJ7TNP.mjs.map → chunk-CYZ22MB7.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-JRIWHAWW.mjs.map → chunk-D7A4ZCMJ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-A7RWM4XH.mjs.map → chunk-DANUZS4S.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-FAVSLU7E.mjs.map → chunk-DFBKBVSE.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-TNHQB6CI.mjs.map → chunk-DW4AWLA5.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-5R5KMLUR.mjs.map → chunk-DWJIX65T.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-YJNSQ5PJ.mjs.map → chunk-EITZT2U5.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-CSJHR2W2.mjs.map → chunk-EOCMQT4L.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-4QBKN42N.mjs.map → chunk-EXOOST5G.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-7HTAAMIY.mjs.map → chunk-FF5D53IP.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-JNK7QN24.mjs.map → chunk-FOEJO2YQ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-HYQG5XND.mjs.map → chunk-GLPQBE2J.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-HUW6OY7C.mjs.map → chunk-GNEVR5Q4.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-SEYKDGXE.mjs.map → chunk-H4TKHAB3.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-OR5UTKW7.mjs.map → chunk-I3H7EAH5.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-P64YS5W2.mjs.map → chunk-I3PQVFX5.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-5MR3C2QG.mjs.map → chunk-IOEWPBAL.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-TN2MZXGS.mjs.map → chunk-JIHWIDMP.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-YX62AV33.mjs.map → chunk-KAOUK33L.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-UVJ5BBQG.mjs.map → chunk-KWPNHP73.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-BABSYWVB.mjs.map → chunk-LCC4ZVVO.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-HVF4NT6P.mjs.map → chunk-MRXEJSQQ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-DIIXA7WD.mjs.map → chunk-NZKMM4FK.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-CLWTVJM3.mjs.map → chunk-OEWAQZYE.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-OOZKMXYB.mjs.map → chunk-PBP2MKZH.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-JKKJHQVQ.mjs.map → chunk-PE6KC2U7.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-N5TM7UIY.mjs.map → chunk-PFTKXY5Q.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-R7QVE2JP.mjs.map → chunk-PLN3ITUB.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-NEMFYL4X.mjs.map → chunk-QBPDNM7S.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-JDI3UMJW.mjs.map → chunk-SIMVM4RV.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-WJF2Q2Y3.mjs.map → chunk-TMXLSCAG.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-TGYG7JP4.mjs.map → chunk-TNQXCIBM.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-DHTD5KM5.mjs.map → chunk-TWCJMLGG.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-EPFDMHPK.mjs.map → chunk-U7RKPGRO.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-NMIGE2IM.mjs.map → chunk-UWNMGKAN.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-KXFGO7N4.mjs.map → chunk-VAPKJRQI.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-XTBN55D3.mjs.map → chunk-VUCJT2QJ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-TVTBVHT2.mjs.map → chunk-WLANQTOU.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-3MCNCG2L.mjs.map → chunk-XZ5NWMO7.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-QPXQZBQC.mjs.map → chunk-YKU2KVAQ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-ZKFOGW4D.mjs.map → chunk-YLSFKG64.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-TO2T6EEB.mjs.map → chunk-YVSAUCWW.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-XN74VX5H.mjs.map → chunk-ZKBAIIAQ.mjs.map} +0 -0
- /package/dist/esm/chunks/{chunk-7IJTTRPK.mjs.map → chunk-ZPLENPV2.mjs.map} +0 -0
package/ui_kits/website/site.css
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* genie GLB over this base; here the base is the product. */
|
|
4
4
|
|
|
5
5
|
/* Tall sticky .hdr — WCAG 2.2 focus-not-obscured (UX-033). */
|
|
6
|
+
html, body { overflow-x: clip; }
|
|
6
7
|
.site {
|
|
7
8
|
--cs-scroll-padding-block-start: calc(var(--cs-space-16) + var(--cs-space-2));
|
|
8
9
|
font-family: var(--cs-font-family-ui);
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
|
|
24
25
|
/* header */
|
|
25
26
|
.hdr { position: sticky; top: 0; z-index: var(--cs-depth-nav); border-bottom: 1px solid var(--cs-glass-light-border); }
|
|
26
|
-
.hdr-in { display: flex; align-items: center; gap: var(--cs-space-6); padding: 12px
|
|
27
|
+
.hdr-in { display: flex; align-items: center; gap: var(--cs-space-6); padding-block: 12px; }
|
|
27
28
|
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 18px; letter-spacing: -.01em; color: var(--cs-color-brand-umber); }
|
|
28
29
|
.brand img { width: 34px; height: 34px; }
|
|
29
30
|
.nav { display: flex; gap: var(--cs-space-5); margin-left: var(--cs-space-4); }
|
|
@@ -36,20 +37,22 @@
|
|
|
36
37
|
|
|
37
38
|
/* hero */
|
|
38
39
|
.hero { position: relative; overflow: hidden; background: var(--cs-color-brand-umber); color: #fff; }
|
|
40
|
+
.hero :focus-visible, .band :focus-visible, .work-hero :focus-visible, .ft :focus-visible { outline-color: #FFFDF8; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
|
|
39
41
|
.hero::before { content: ""; position: absolute; inset: 0; background-image: url("../../assets/aurora-tho.webp"); background-size: cover; background-position: center; opacity: .5; }
|
|
40
42
|
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,17,8,.35), rgba(26,17,8,.82) 78%); }
|
|
41
|
-
.hero-in { position: relative; z-index: 1; display: grid; grid-template-columns: 1.35fr .65fr; gap: var(--cs-space-8); align-items: center; padding: 84px
|
|
43
|
+
.hero-in { position: relative; z-index: 1; display: grid; grid-template-columns: 1.35fr .65fr; gap: var(--cs-space-8); align-items: center; padding-block: 84px 96px; }
|
|
44
|
+
.hero-in > * { min-width: 0; }
|
|
42
45
|
.hero .eyebrow { color: var(--cs-color-brand-ochre); }
|
|
43
46
|
.hero h1 { font-size: clamp(40px, 6vw, 68px); font-weight: 800; letter-spacing: -.02em; line-height: 1.05; margin: 14px 0 6px; color: var(--cs-color-brand-ochre); }
|
|
44
47
|
.hero .vn { font-size: 20px; font-weight: 600; opacity: .9; margin-bottom: 18px; }
|
|
45
48
|
.hero .lead { font-size: 18px; line-height: 1.55; max-width: min(620px, var(--cs-prose-measure, 45rem)); opacity: .95; }
|
|
46
49
|
.wish { display: flex; gap: 10px; margin-top: 26px; max-width: 620px; flex-wrap: wrap; }
|
|
47
|
-
.wish input { flex: 1 1 300px; min-height: 52px; border-radius: var(--cs-radius-full); border: 1px solid rgba(255,
|
|
50
|
+
.wish input { flex: 1 1 300px; min-width: 0; min-height: 52px; border-radius: var(--cs-radius-full); border: 1px solid rgba(255,253,248,.85) !important; background: color-mix(in oklab, var(--cs-color-surface-page) 12%, transparent); backdrop-filter: blur(8px); color: #fff; padding: 0 22px; font: 400 15px/1 var(--cs-font-family-ui); }
|
|
48
51
|
.wish input::placeholder { color: rgba(255,255,255,.72); }
|
|
49
52
|
.wish input:focus { outline: 3px solid var(--cs-color-brand-ochre); outline-offset: 1px; }
|
|
50
|
-
.site a.btn-gold, .btn-gold { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border: 0; border-radius: var(--cs-radius-full); min-height: 52px; padding: 0 26px; font: 700 15px/1 var(--cs-font-family-ui); cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
|
|
53
|
+
.site a.btn-gold, .btn-gold { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border: 0; border-radius: var(--cs-radius-full); min-height: 52px; padding: 0 26px; font: 700 15px/1 var(--cs-font-family-ui); cursor: pointer; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
|
|
51
54
|
.btn-gold:hover { filter: brightness(1.06); }
|
|
52
|
-
.btn-ghost-light { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); border-radius: var(--cs-radius-full); min-height: 52px; padding: 0 22px; font: 700 15px/1 var(--cs-font-family-ui); cursor: pointer; }
|
|
55
|
+
.btn-ghost-light { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); border-radius: var(--cs-radius-full); min-height: 52px; padding: 0 22px; font: 700 15px/1 var(--cs-font-family-ui); cursor: pointer; white-space: nowrap; }
|
|
53
56
|
.btn-ghost-light:hover { background: rgba(255,255,255,.1); }
|
|
54
57
|
.hero-art { position: relative; justify-self: center; }
|
|
55
58
|
.hero-art img { width: 260px; filter: drop-shadow(0 24px 60px rgba(0,0,0,.5)); animation: float 6s var(--cs-ease-standard) infinite; }
|
|
@@ -110,7 +113,8 @@
|
|
|
110
113
|
.fab { position: fixed; right: 22px; bottom: 22px; z-index: var(--cs-depth-toast); background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border: 0; border-radius: var(--cs-radius-full); height: 56px; padding: 0 22px 0 18px; font: 700 15px/1 var(--cs-font-family-ui); cursor: pointer; display: inline-flex; align-items: center; gap: 10px; box-shadow: var(--cs-shadow-lg); }
|
|
111
114
|
.fab:hover { filter: brightness(1.06); }
|
|
112
115
|
.fab img { width: 30px; height: 30px; }
|
|
113
|
-
.chat { position: fixed; right: 22px; bottom: 22px; z-index: calc(var(--cs-depth-toast) + 1); width: min(380px, calc(
|
|
116
|
+
.chat { position: fixed; right: 22px; bottom: 22px; z-index: calc(var(--cs-depth-toast) + 1); width: min(380px, calc(100% - 44px)); border-radius: var(--cs-radius-lg); overflow: hidden; box-shadow: var(--cs-shadow-xl); display: flex; flex-direction: column; max-height: min(560px, 84vh); }
|
|
117
|
+
@media (prefers-reduced-transparency: reduce) { .wish input { backdrop-filter: none; -webkit-backdrop-filter: none; background: #2c1609; } }
|
|
114
118
|
.chat-h { background: var(--cs-color-brand-umber); color: #fff; padding: 14px 16px; display: flex; align-items: center; gap: 10px; }
|
|
115
119
|
.chat-h img { width: 30px; height: 30px; }
|
|
116
120
|
.chat-h b { font-size: 14px; }
|
|
@@ -132,6 +136,9 @@
|
|
|
132
136
|
.hero-in { grid-template-columns: 1fr; } .hero-art { display: none; }
|
|
133
137
|
.svc-grid, .steps, .contact-grid { grid-template-columns: 1fr; }
|
|
134
138
|
.nav { display: none; }
|
|
139
|
+
.hdr-in { gap: var(--cs-space-3); }
|
|
140
|
+
.hdr-side { gap: 6px; }
|
|
141
|
+
.mini { padding: 0 11px; font-size: 12px; }
|
|
135
142
|
}
|
|
136
143
|
/* G1 / TASK-IMP-025 — size from `.container` parent, not only viewport. */
|
|
137
144
|
@container cs (max-width: 768px) {
|
|
@@ -143,4 +150,21 @@
|
|
|
143
150
|
/* Keep native header controls reachable on narrow phones. */
|
|
144
151
|
@media (max-width: 360px) {
|
|
145
152
|
.hdr-in { flex-wrap: wrap; gap: var(--cs-space-3); }
|
|
153
|
+
.mini { white-space: normal; }
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
@media screen and (min-width: 361px) and (max-width: 768px), screen and (min-width: 1024px) {
|
|
157
|
+
.site :is(.nav a, .mini, .hero .vn, .svc li, .chips button, h3, .cs-field__label, .sent, .case-tags span) {
|
|
158
|
+
font-weight: 700;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@media screen and (min-width: 1024px) {
|
|
163
|
+
.hero-in { min-height: 740px; padding-block: 96px 136px; }
|
|
164
|
+
.hero-art img { width: 320px; }
|
|
165
|
+
.sec { padding: 168px 0; }
|
|
166
|
+
.svc-grid { grid-template-columns: 1.12fr 1fr 1fr; }
|
|
167
|
+
.svc { padding: 48px 28px; }
|
|
168
|
+
.step { padding-top: 36px; }
|
|
169
|
+
[id="careers"], .sec:has(.band) { background-color: var(--cs-color-surface-page); color: var(--cs-color-text-primary); }
|
|
146
170
|
}
|
|
@@ -4,32 +4,37 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="utf-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<meta name="description" content="cyberskill.world — work: Sample case-study grid, results band and contact-preview link" />
|
|
7
8
|
<title>CyberSkill · Work</title>
|
|
8
9
|
<link rel="icon" href="../../assets/favicon.svg" />
|
|
9
10
|
<link rel="stylesheet" href="../../styles.css" />
|
|
10
11
|
<link rel="stylesheet" href="site.css" />
|
|
11
12
|
<style>
|
|
13
|
+
/* hero: banner */
|
|
12
14
|
html, body { margin: 0; }
|
|
13
|
-
|
|
15
|
+
@media screen and (min-width: 1024px) {
|
|
16
|
+
.work-hero + .sec { padding-top: 84px; }
|
|
17
|
+
}
|
|
18
|
+
.work-hero { background: var(--cs-color-brand-umber); color: #fff; padding: 88px 0 60px; position: relative; overflow: hidden; }
|
|
14
19
|
.work-hero::before { content: ""; position: absolute; inset: 0; background-image: url("../../assets/aurora-tho.webp"); background-size: cover; background-position: center; opacity: .34; }
|
|
15
20
|
.work-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,17,8,.3), rgba(26,17,8,.75)); }
|
|
16
21
|
.work-hero .container { position: relative; z-index: 1; }
|
|
17
22
|
.work-hero h1 { font-size: clamp(36px, 5vw, 54px); font-weight: 800; letter-spacing: -.02em; color: var(--cs-color-brand-ochre); margin: 12px 0 6px; }
|
|
18
23
|
.work-hero p { font-size: 18px; opacity: .92; max-width: 620px; margin: 0; }
|
|
19
24
|
.case-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 22px; }
|
|
20
|
-
.case { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); overflow: hidden; background: var(--cs-color-surface-panel); box-shadow: var(--cs-shadow-
|
|
21
|
-
.case:hover { border-color: var(--cs-color-brand-ochre); box-shadow: var(--cs-shadow-
|
|
25
|
+
.case { border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); overflow: hidden; background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); box-shadow: var(--cs-shadow-xs); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard); }
|
|
26
|
+
.case:hover { border-color: var(--cs-color-brand-ochre); box-shadow: var(--cs-shadow-sm); }
|
|
22
27
|
.case-cap { height: 128px; display: flex; align-items: flex-end; padding: 16px 18px; font-family: var(--cs-font-family-mono); font-weight: 700; font-size: 22px; }
|
|
23
28
|
.case-cap.a { background: var(--cs-color-brand-umber); color: var(--cs-color-brand-ochre); }
|
|
24
29
|
.case-cap.b { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); }
|
|
25
30
|
.case-cap.c { background: #6E3B0E; color: #fff; }
|
|
26
31
|
.case-b { padding: 18px 20px 22px; }
|
|
27
|
-
.case-b h3 { margin: 0 0 6px; font-size: 20px; }
|
|
32
|
+
.case-b h2, .case-b h3 { margin: 0 0 6px; font-size: 20px; }
|
|
28
33
|
.case-b p { margin: 0 0 14px; color: var(--cs-color-text-muted); font-size: 14.5px; line-height: 1.5; }
|
|
29
34
|
.case-tags { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
30
35
|
.case-tags span { font-size: 12px; font-weight: 600; background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-full); padding: 4px 10px; color: var(--cs-color-text-primary); }
|
|
31
36
|
.results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
|
|
32
|
-
.results .n { font-size: 44px; font-weight: 800; letter-spacing: -.02em; color: var(--cs-color-text-primary); }
|
|
37
|
+
.results .n { font-size: 44px; font-weight: 800; letter-spacing: -.02em; color: var(--cs-color-text-primary); font-variant-numeric: tabular-nums; }
|
|
33
38
|
.results .l { color: var(--cs-color-text-muted); font-size: 14px; margin-top: 2px; }
|
|
34
39
|
@media (max-width: 760px) { .results { grid-template-columns: 1fr 1fr; } .nav { display: none; } }
|
|
35
40
|
/* G1 / TASK-IMP-025 — results band from `.container` width. */
|
|
@@ -46,14 +51,14 @@
|
|
|
46
51
|
<div class="container hdr-in">
|
|
47
52
|
<a class="brand" href="index.html"><img src="../../assets/logo-mark.svg" alt="" />CyberSkill</a>
|
|
48
53
|
<nav class="nav"><a href="index.html#services" data-vi="Dịch vụ">Services</a><a href="work.html" data-vi="Dự án">Work</a><a href="careers.html" data-vi="Tuyển dụng">Careers</a><a href="index.html#contact" data-vi="Liên hệ">Contact</a></nav>
|
|
49
|
-
<div class="hdr-side"><a class="mini" href="#" id="langToggle">Tiếng Việt</a><a class="mini" style="background:var(--cs-color-brand-umber);color:#fff;border-color:transparent" href="index.html#top" data-vi="Trò chuyện với Lumi">Talk to Lumi</a></div>
|
|
54
|
+
<div class="hdr-side"><a class="mini" href="#" id="langToggle" aria-label="Switch to Tiếng Việt" data-vi-aria-label="Chuyển sang English">Tiếng Việt</a><a class="mini" style="background:var(--cs-color-brand-umber);color:#fff;border-color:transparent" href="index.html#top" data-vi="Trò chuyện với Lumi">Talk to Lumi</a></div>
|
|
50
55
|
</div>
|
|
51
56
|
</header>
|
|
52
57
|
|
|
53
58
|
<main id="main" tabindex="-1">
|
|
54
59
|
<section class="work-hero">
|
|
55
60
|
<div class="container">
|
|
56
|
-
<div class="eyebrow" style="color:var(--cs-color-brand-ochre)" data-vi="Dự án minh họa">Sample work</div>
|
|
61
|
+
<div class="eyebrow" role="group" style="color:var(--cs-color-brand-ochre)" data-vi="Dự án minh họa">Sample work</div>
|
|
57
62
|
<h1 data-vi="Những điều ước minh họa">Sample wishes</h1>
|
|
58
63
|
<p data-vi="Nội dung minh họa giao diện. Xác minh dự án, kết quả và số liệu trước khi công bố.">Illustrative interface content. Verify projects, results and figures before publishing.</p>
|
|
59
64
|
</div>
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { useClientLayoutEffect } from './use-client-layout-effect.js';
|
|
2
|
-
|
|
3
|
-
// Constrain an anchored panel without transforms, which retain the original
|
|
4
|
-
// layout overflow even when their painted contents move into the viewport.
|
|
5
|
-
export function useViewportPanel(panelRef, enabled, identity = enabled) {
|
|
6
|
-
useClientLayoutEffect(() => {
|
|
7
|
-
if (!enabled || !panelRef.current) return;
|
|
8
|
-
const panel = panelRef.current;
|
|
9
|
-
const position = () => {
|
|
10
|
-
const width = document.documentElement.clientWidth;
|
|
11
|
-
panel.style.setProperty('--_cs-panel-max-inline-size', Math.max(0, width - 16) + 'px');
|
|
12
|
-
panel.style.setProperty('--_cs-panel-inline-offset', '0px');
|
|
13
|
-
const box = panel.getBoundingClientRect();
|
|
14
|
-
const left = Math.max(8, Math.min(box.left, width - 8 - box.width));
|
|
15
|
-
const sign = getComputedStyle(panel).direction === 'rtl' ? -1 : 1;
|
|
16
|
-
panel.style.setProperty('--_cs-panel-inline-offset', sign * (left - box.left) + 'px');
|
|
17
|
-
};
|
|
18
|
-
position();
|
|
19
|
-
const observer = new ResizeObserver(position);
|
|
20
|
-
observer.observe(panel);
|
|
21
|
-
if (panel.parentElement) observer.observe(panel.parentElement);
|
|
22
|
-
window.addEventListener('resize', position);
|
|
23
|
-
window.addEventListener('scroll', position, true);
|
|
24
|
-
return () => {
|
|
25
|
-
observer.disconnect();
|
|
26
|
-
window.removeEventListener('resize', position);
|
|
27
|
-
window.removeEventListener('scroll', position, true);
|
|
28
|
-
};
|
|
29
|
-
}, [panelRef, enabled, identity]);
|
|
30
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../components/overlays/Tour.jsx"],
|
|
4
|
-
"sourcesContent": ["import { useComposedRefs } from \"../_utils/refs.js\";\nimport { mergeTargetProps } from \"../_utils/field-association.js\";\nimport React from \"react\";\nimport { makeT, useLang } from \"../_i18n/i18n.js\";\nimport { useOverlayLayer, overlayScopeContext } from \"./OverlayManager.jsx\";\nimport { cx } from \"../_utils/cx.js\";\n\n/** CyberSkill Tour — spotlight walkthrough over target elements (by CSS selector). Controlled via open/onClose. */\nexport const Tour = React.forwardRef(function Tour({ steps = [], open, onClose, lang, className , rootProps }, forwardedRef) {\n const [storedIndex, setI] = React.useState(0);\n const i = Math.max(0, Math.min(storedIndex, steps.length - 1));\n if (storedIndex !== i) setI(i);\n const [rect, setRect] = React.useState(null);\n const [pop, setPop] = React.useState({ top: 80, left: 40 });\n const [ref, L, localeMessages] = useLang(lang);\n const t = makeT(\"Tour\", L, localeMessages);\n const panel = React.useRef(null);\n const mergedNativeRef = useComposedRefs(panel, forwardedRef);\n const titleId = React.useId();\n const backdrop = React.useRef(null);\n const { scope } = useOverlayLayer({ open: !!open && steps.length > 0, kind: \"modal\", trapFocus: true, panelRef: panel, backdropRef: backdrop, onEscape: onClose });\n React.useEffect(() => { if (open) setI(0); }, [open]);\n const target = steps[i]?.target;\n React.useEffect(() => {\n if (!open || !target) {\n setRect(null);\n setPop({ top: 80, left: 40 });\n return undefined;\n }\n let frame;\n let previous;\n const measure = () => {\n let el = null;\n try { el = document.querySelector(target); } catch (e) { el = null; }\n const r = el?.getBoundingClientRect();\n const next = r ? { x: r.left - 6, y: r.top - 6, w: r.width + 12, h: r.height + 12 } : null;\n const position = next ? {\n top: Math.min(window.innerHeight - 170, next.y + next.h + 12),\n left: Math.max(12, Math.min(window.innerWidth - 292, next.x)),\n } : { top: 80, left: 40 };\n const signature = JSON.stringify([next, position]);\n if (signature !== previous) {\n previous = signature;\n setRect(next);\n setPop(position);\n }\n // Layout shifts and transformed/replaced targets need not emit resize or scroll.\n frame = requestAnimationFrame(measure);\n };\n measure();\n return () => cancelAnimationFrame(frame);\n }, [open, target]);\n if (!open || !steps.length) return <span ref={ref} style={{ display: \"none\" }} />;\n const s = steps[i];\n const last = i === steps.length - 1;\n return (\n <overlayScopeContext.Provider value={scope}>\n <div ref={ref} {...mergeTargetProps({ \"className\": cx(\"cs-tour\", className) }, rootProps, [])}>\n <div ref={backdrop} className=\"cs-tour__scrim\" onClick={onClose} />\n {rect ? <div className=\"cs-tour__hole\" style={{ left: rect.x, top: rect.y, width: rect.w, height: rect.h }} /> : null}\n <div ref={mergedNativeRef} tabIndex={-1} className=\"cs-tour__pop\" role=\"dialog\" aria-modal=\"true\" aria-labelledby={titleId} style={{ left: pop.left, top: pop.top }}>\n <b id={titleId}>{s.title}</b>\n {(s.body || s.body === 0) ? <p>{s.body}</p> : null}\n <div className=\"cs-tour__bar\">\n <span className=\"cs-tour__count\">{(i + 1) + \" / \" + steps.length}</span>\n <span className=\"cs-tour__btns\">\n <button type=\"button\" className=\"cs-button cs-button--ghost cs-button--xs\" onClick={onClose}>{t(\"skip\")}</button>\n {i > 0 ? <button type=\"button\" className=\"cs-button cs-button--secondary cs-button--xs\" onClick={() => setI(i - 1)}>{t(\"back\")}</button> : null}\n <button type=\"button\" className=\"cs-button cs-button--primary cs-button--xs\" onClick={() => (last ? onClose && onClose() : setI(i + 1))}>{last ? t(\"done\") : t(\"next\")}</button>\n </span>\n </div>\n </div>\n </div>\n </overlayScopeContext.Provider>\n );\n});\nTour.displayName = \"Tour\";\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Tour"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../components/dialog/Dialog.jsx"],
|
|
4
|
-
"sourcesContent": ["import { useComposedRefs } from \"../_utils/refs.js\";\nimport React from \"react\";\nimport { makeT, useLang } from \"../_i18n/i18n.js\";\nimport { Icon } from \"../icon/Icon.jsx\";\nimport { cx } from \"../_utils/cx.js\";\nimport { overlaySurfaceClass, useOverlaySurface } from \"../_utils/use-overlay-surface.js\";\nimport { useOverlayLayer, overlayScopeContext } from \"../overlays/OverlayManager.jsx\";\n\n/**\n * CyberSkill Dialog — modal overlay + panel. aria-modal, labelled by title and\n * described by its body, scrim click closes. Body scroll is locked while open\n * via the overlay manager (nested-safe). Compose actions in the footer with Buttons.\n */\nexport const Dialog = React.forwardRef(function Dialog({\n open,\n title,\n children,\n actions,\n onClose,\n className,\n closeLabel,\n lang,\n ...props\n}, forwardedRef) {\n const baseId = React.useId();\n const titleId = baseId + \"-title\";\n const bodyId = children == null ? undefined : baseId + \"-body\";\n const [ref, L, localeMessages] = useLang(lang);\n const panel = React.useRef(null);\n const mergedNativeRef = useComposedRefs(panel, forwardedRef);\n const backdrop = React.useRef(null);\n const material = overlaySurfaceClass(className);\n const surface = useOverlaySurface(!!open, panel, material);\n const closeRef = React.useRef(onClose);\n closeRef.current = onClose;\n\n const { scope } = useOverlayLayer({\n open: !!open,\n kind: \"modal\",\n trapFocus: true,\n onEscape: () => closeRef.current && closeRef.current(),\n panelRef: panel,\n backdropRef: backdrop,\n });\n\n const cl = closeLabel != null ? closeLabel : makeT(\"Dialog\", L, localeMessages)(\"close\");\n if (!open) return null;\n return (\n <overlayScopeContext.Provider value={scope}>\n <div ref={ref} className=\"cs-dialog-layer\">\n <div ref={backdrop} className=\"cs-dialog__overlay\" onClick={onClose} aria-hidden=\"true\" />\n {material ? <div ref={surface} className={cx(\"cs-overlay-surface\", material)} aria-hidden=\"true\" /> : null}\n <section\n {...props}\n ref={mergedNativeRef}\n data-cs-overlay-material={material || undefined}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={Object.prototype.hasOwnProperty.call(props, \"aria-describedby\") ? (props[\"aria-describedby\"] || undefined) : bodyId}\n className={cx(\"cs-dialog\", className)}\n >\n <header className=\"cs-dialog__header\">\n <h2 id={titleId} className=\"cs-dialog__title\">{title}</h2>\n {onClose ? (\n <button type=\"button\" className=\"cs-button cs-button--ghost cs-button--sm\" onClick={onClose} aria-label={cl}>\n <Icon name=\"close\" size=\"sm\" />\n </button>\n ) : null}\n </header>\n <div id={bodyId} className=\"cs-dialog__body\">{children}</div>\n {(actions || actions === 0) ? <footer className=\"cs-dialog__actions\">{actions}</footer> : null}\n </section>\n </div>\n </overlayScopeContext.Provider>\n );\n});\nDialog.displayName = \"Dialog\";\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,WAAW;AAYX,IAAM,SAAS,MAAM,WAAW,SAASA,QAAO;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG,cAAc;AACf,QAAM,SAAS,MAAM,MAAM;AAC3B,QAAM,UAAU,SAAS;AACzB,QAAM,SAAS,YAAY,OAAO,SAAY,SAAS;AACvD,QAAM,CAAC,KAAK,GAAG,cAAc,IAAI,QAAQ,IAAI;AAC7C,QAAM,QAAQ,MAAM,OAAO,IAAI;AAC/B,QAAM,kBAAkB,gBAAgB,OAAO,YAAY;AAC3D,QAAM,WAAW,MAAM,OAAO,IAAI;AAClC,QAAM,WAAW,oBAAoB,SAAS;AAC9C,QAAM,UAAU,kBAAkB,CAAC,CAAC,MAAM,OAAO,QAAQ;AACzD,QAAM,WAAW,MAAM,OAAO,OAAO;AACrC,WAAS,UAAU;AAEnB,QAAM,EAAE,MAAM,IAAI,gBAAgB;AAAA,IAChC,MAAM,CAAC,CAAC;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU,MAAM,SAAS,WAAW,SAAS,QAAQ;AAAA,IACrD,UAAU;AAAA,IACV,aAAa;AAAA,EACf,CAAC;AAED,QAAM,KAAK,cAAc,OAAO,aAAa,MAAM,UAAU,GAAG,cAAc,EAAE,OAAO;AACvF,MAAI,CAAC,KAAM,QAAO;AAClB,SACE,oCAAC,oBAAoB,UAApB,EAA6B,OAAO,SACrC,oCAAC,SAAI,KAAU,WAAU,qBACvB,oCAAC,SAAI,KAAK,UAAU,WAAU,sBAAqB,SAAS,SAAS,eAAY,QAAO,GACvF,WAAW,oCAAC,SAAI,KAAK,SAAS,WAAW,GAAG,sBAAsB,QAAQ,GAAG,eAAY,QAAO,IAAK,MACtG;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,4BAA0B,YAAY;AAAA,MACtC,UAAU;AAAA,MACV,MAAK;AAAA,MACL,cAAW;AAAA,MACX,mBAAiB;AAAA,MACjB,oBAAkB,OAAO,UAAU,eAAe,KAAK,OAAO,kBAAkB,IAAK,MAAM,kBAAkB,KAAK,SAAa;AAAA,MAC/H,WAAW,GAAG,aAAa,SAAS;AAAA;AAAA,IAEpC,oCAAC,YAAO,WAAU,uBAChB,oCAAC,QAAG,IAAI,SAAS,WAAU,sBAAoB,KAAM,GACpD,UACC,oCAAC,YAAO,MAAK,UAAS,WAAU,4CAA2C,SAAS,SAAS,cAAY,MACvG,oCAAC,QAAK,MAAK,SAAQ,MAAK,MAAK,CAC/B,IACE,IACN;AAAA,IACA,oCAAC,SAAI,IAAI,QAAQ,WAAU,qBAAmB,QAAS;AAAA,IACrD,WAAW,YAAY,IAAK,oCAAC,YAAO,WAAU,wBAAsB,OAAQ,IAAY;AAAA,EAC5F,CACF,CACA;AAEJ,CAAC;AACD,OAAO,cAAc;",
|
|
6
|
-
"names": ["Dialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../components/feedback/Toast.jsx"],
|
|
4
|
-
"sourcesContent": ["import { useComposedRefs } from \"../_utils/refs.js\";\nimport { mergeTargetProps } from \"../_utils/field-association.js\";\nimport React from \"react\";\nimport { makeT, useLang } from \"../_i18n/i18n.js\";\nimport { useOverlayLayer, overlayScopeContext } from \"../overlays/OverlayManager.jsx\";\nimport { cx } from \"../_utils/cx.js\";\n\n/** Variant glyphs — aligned with Alert so status is never colour-alone (FIND-036). */\nconst PATHS = {\n default: \"M12 8h.01M11 12h1v4h1 M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z\",\n success: \"M4 12.5l5 5 11-11\",\n danger: \"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z M9 9l6 6 M15 9l-6 6\",\n};\nfunction DefaultIcon({ variant }) {\n return (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d={PATHS[variant] || PATHS.default} />\n </svg>\n );\n}\n\n/** Fixed-position stack for Toasts (bottom-right). */\nexport const ToastStack = React.forwardRef(function ToastStack({ children, lang, className , rootProps }, forwardedRef) {\n const [ref, L, localeMessages] = useLang(lang);\n const mergedNativeRef = useComposedRefs(ref, forwardedRef);\n return <div ref={mergedNativeRef} {...mergeTargetProps({ \"className\": cx(\"cs-toast-stack\", className) }, rootProps, [\"role\",\"aria-label\"])} role=\"region\" aria-label={makeT(\"Toast\", L, localeMessages)(\"notifications\")}>{children}</div>;\n});\nToastStack.displayName = \"ToastStack\";\n\n/** CyberSkill Toast — transient notification. variant: default | success | danger. */\nexport const Toast = React.forwardRef(function Toast({ variant = \"default\", title, icon, onClose, lang, children, className, ...props }, forwardedRef) {\n const [ref, L, localeMessages] = useLang(lang);\n const mergedNativeRef = useComposedRefs(ref, forwardedRef);\n const { scope } = useOverlayLayer({ open: true, kind: \"toast\", panelRef: ref, restoreFocus: false });\n return (\n <overlayScopeContext.Provider value={scope}>\n <div ref={mergedNativeRef} className={cx(\"cs-toast\", `cs-toast--${variant}`, className)} role=\"status\" {...props}>\n <span className=\"cs-toast__icon\" aria-hidden=\"true\">\n {icon ?? <DefaultIcon variant={variant} />}\n </span>\n <div>\n {(title || title === 0) ? <div className=\"cs-toast__title\">{title}</div> : null}\n {(children || children === 0) ? <div className=\"cs-toast__body\">{children}</div> : null}\n </div>\n {onClose ? (\n <button type=\"button\" className=\"cs-toast__close\" aria-label={makeT(\"Toast\", L, localeMessages)(\"dismiss\")} onClick={onClose}>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\"><path d=\"M6 6l12 12M18 6L6 18\" /></svg>\n </button>\n ) : null}\n </div>\n </overlayScopeContext.Provider>\n );\n});\nToast.displayName = \"Toast\";\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAMlB,IAAM,QAAQ;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AACA,SAAS,YAAY,EAAE,QAAQ,GAAG;AAChC,SACE,oCAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,UACzJ,oCAAC,UAAK,GAAG,MAAM,OAAO,KAAK,MAAM,SAAS,CAC5C;AAEJ;AAGO,IAAM,aAAa,MAAM,WAAW,SAASA,YAAW,EAAE,UAAU,MAAM,WAAY,UAAU,GAAG,cAAc;AACtH,QAAM,CAAC,KAAK,GAAG,cAAc,IAAI,QAAQ,IAAI;AAC7C,QAAM,kBAAkB,gBAAgB,KAAK,YAAY;AACzD,SAAO,oCAAC,SAAI,KAAK,iBAAkB,GAAG,iBAAiB,EAAE,aAAa,GAAG,kBAAkB,SAAS,EAAE,GAAG,WAAW,CAAC,QAAO,YAAY,CAAC,GAAG,MAAK,UAAS,cAAY,MAAM,SAAS,GAAG,cAAc,EAAE,eAAe,KAAI,QAAS;AACtO,CAAC;AACD,WAAW,cAAc;AAGlB,IAAM,QAAQ,MAAM,WAAW,SAASC,OAAM,EAAE,UAAU,WAAW,OAAO,MAAM,SAAS,MAAM,UAAU,WAAW,GAAG,MAAM,GAAG,cAAc;AACrJ,QAAM,CAAC,KAAK,GAAG,cAAc,IAAI,QAAQ,IAAI;AAC7C,QAAM,kBAAkB,gBAAgB,KAAK,YAAY;AACzD,QAAM,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,MAAM,MAAM,SAAS,UAAU,KAAK,cAAc,MAAM,CAAC;AACnG,SACE,oCAAC,oBAAoB,UAApB,EAA6B,OAAO,SACrC,oCAAC,SAAI,KAAK,iBAAiB,WAAW,GAAG,YAAY,aAAa,OAAO,IAAI,SAAS,GAAG,MAAK,UAAU,GAAG,SACzG,oCAAC,UAAK,WAAU,kBAAiB,eAAY,UAC1C,QAAQ,oCAAC,eAAY,SAAkB,CAC1C,GACA,oCAAC,aACG,SAAS,UAAU,IAAK,oCAAC,SAAI,WAAU,qBAAmB,KAAM,IAAS,MACzE,YAAY,aAAa,IAAK,oCAAC,SAAI,WAAU,oBAAkB,QAAS,IAAS,IACrF,GACC,UACC,oCAAC,YAAO,MAAK,UAAS,WAAU,mBAAkB,cAAY,MAAM,SAAS,GAAG,cAAc,EAAE,SAAS,GAAG,SAAS,WACnH,oCAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,WAAQ,oCAAC,UAAK,GAAE,wBAAuB,CAAE,CAC3J,IACE,IACN,CACA;AAEJ,CAAC;AACD,MAAM,cAAc;",
|
|
6
|
-
"names": ["ToastStack", "Toast"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../components/navigation/CommandPalette.jsx"],
|
|
4
|
-
"sourcesContent": ["import { useComposedRefs } from \"../_utils/refs.js\";\nimport { mergeTargetProps } from \"../_utils/field-association.js\";\nimport React from \"react\";\nimport { formatNumber, makeT, useLang } from \"../_i18n/i18n.js\";\nimport { cx } from \"../_utils/cx.js\";\nimport { useOverlayLayer, overlayScopeContext } from \"../overlays/OverlayManager.jsx\";\n\n/** CyberSkill CommandPalette — ⌘K overlay with search + grouped actions. Controlled via open/onClose. */\nexport const CommandPalette = React.forwardRef(function CommandPalette({ controlRef, open, onClose, placeholder, groups = [], lang, className , rootProps }, forwardedRef) {\n const mergedControlRef = useComposedRefs(controlRef);\n const mergedNativeRef = useComposedRefs(forwardedRef);\n const [q, setQ] = React.useState(\"\");\n const panel = React.useRef(null);\n const closeRef = React.useRef(onClose);\n closeRef.current = onClose;\n\n const { scope } = useOverlayLayer({\n open: !!open,\n kind: \"modal\",\n trapFocus: true,\n preferFocusSelector: \".cs-cmdk__search input\",\n onEscape: () => closeRef.current && closeRef.current(),\n panelRef: panel,\n });\n\n React.useEffect(() => {\n if (!open) setQ(\"\");\n }, [open]);\n\n const [ref, L, localeMessages] = useLang(lang);\n const t = makeT(\"CommandPalette\", L, localeMessages);\n const ph = placeholder != null ? placeholder : t(\"placeholder\");\n if (!open) return null;\n const needle = q.trim().toLowerCase();\n const filteredGroups = groups.map(g => ({\n ...g,\n items: (g.items || []).filter(it => !needle || String(it.label).toLowerCase().includes(needle)),\n }));\n const resultCount = filteredGroups.reduce((count, group) => count + group.items.length, 0);\n const resultStatus = resultCount === 0 ? t(\"empty\")\n : t(resultCount === 1 ? \"oneResult\" : \"results\").replace(\"{count}\", formatNumber(resultCount, L));\n return (\n <overlayScopeContext.Provider value={scope}>\n <div\n ref={(el) => {\n ref.current = el;\n panel.current = el;\n }}\n className=\"cs-cmdk-scrim\"\n onClick={onClose}\n >\n <div {...mergeTargetProps({ \"className\": cx(\"cs-cmdk\", className), \"onClick\": (e) => e.stopPropagation() }, rootProps, [\"role\",\"aria-modal\",\"aria-label\"])} role=\"dialog\" aria-modal=\"true\" aria-label={t(\"aria\")} ref={mergedNativeRef} >\n <div className=\"cs-cmdk__search\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"7\" /><path d=\"M21 21l-4.3-4.3\" /></svg>\n <input aria-label={ph} value={q} onChange={(e) => setQ(e.target.value)} placeholder={ph} ref={mergedControlRef} />\n <span className=\"cs-kbd\">{t(\"esc\")}</span>\n </div>\n <div className=\"cs-cmdk__list\">\n <div className=\"cs-cmdk__status\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">{resultStatus}</div>\n {filteredGroups.map((g, gi) => {\n const items = g.items;\n if (!items.length) return null;\n return (\n <React.Fragment key={gi}>\n {(g.label || g.label === 0) ? <div className=\"cs-cmdk__label\">{g.label}</div> : null}\n {items.map((it, ii) => (\n <button key={ii} type=\"button\" className=\"cs-cmdk__item\" onClick={() => { it.onSelect && it.onSelect(); setQ(\"\"); onClose && onClose(); }}>\n {(it.icon || it.icon === 0) ? <span aria-hidden=\"true\">{it.icon}</span> : null}\n <span>{it.label}</span>\n {(it.shortcut || it.shortcut === 0) ? <span className=\"cs-kbd\">{it.shortcut}</span> : null}\n </button>\n ))}\n </React.Fragment>\n );\n })}\n </div>\n </div>\n </div>\n </overlayScopeContext.Provider>\n );\n});\nCommandPalette.displayName = \"CommandPalette\";\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["CommandPalette"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../components/overlays/Drawer.jsx"],
|
|
4
|
-
"sourcesContent": ["import { useComposedRefs } from \"../_utils/refs.js\";\nimport { mergeTargetProps } from \"../_utils/field-association.js\";\nimport React from \"react\";\nimport { makeT, useLang } from \"../_i18n/i18n.js\";\nimport { useClientLayoutEffect } from \"../_utils/use-client-layout-effect.js\";\nimport { cx } from \"../_utils/cx.js\";\nimport { overlaySurfaceClass, useOverlaySurface } from \"../_utils/use-overlay-surface.js\";\nimport { useOverlayLayer, overlayScopeContext } from \"./OverlayManager.jsx\";\n\n/** CyberSkill Drawer — slide-in side panel with scrim. side: right (default) | left. */\nexport const Drawer = React.forwardRef(function Drawer({ open, onClose, title, side = \"right\", children, actions, lang, className, rootProps }, forwardedRef) {\n const [ref, L, localeMessages] = useLang(lang);\n const titleId = React.useId();\n const hasTitle = Boolean(title) || title === 0;\n const panel = React.useRef(null);\n const mergedNativeRef = useComposedRefs(panel, ref, forwardedRef);\n const body = React.useRef(null);\n const [bodyScrollable, setBodyScrollable] = React.useState(false);\n const backdrop = React.useRef(null);\n const material = overlaySurfaceClass(className);\n const surface = useOverlaySurface(!!open, panel, material);\n // Surface readiness must precede the first layout read; otherwise measuring\n // overflow can start an unready backdrop-filter transition in nested modals.\n useClientLayoutEffect(() => {\n const el = body.current;\n if (!open || !el) return;\n const measure = () => setBodyScrollable(el.scrollHeight > el.clientHeight + 1 || el.scrollWidth > el.clientWidth + 1);\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(el);\n for (const child of el.children) observer.observe(child);\n return () => observer.disconnect();\n }, [open, children]);\n const closeRef = React.useRef(onClose);\n closeRef.current = onClose;\n\n const { scope } = useOverlayLayer({\n open: !!open,\n kind: \"modal\",\n trapFocus: true,\n onEscape: () => closeRef.current && closeRef.current(),\n panelRef: panel,\n backdropRef: backdrop,\n });\n\n const t = makeT(\"Drawer\", L, localeMessages);\n if (!open) return null;\n return (\n <overlayScopeContext.Provider value={scope}>\n <>\n <div ref={backdrop} className=\"cs-drawer-scrim\" onClick={onClose} aria-hidden=\"true\" />\n {material ? <div ref={surface} className={cx(\"cs-overlay-surface\", material)} aria-hidden=\"true\" /> : null}\n <div\n {...mergeTargetProps({ className: cx(\"cs-drawer\", side === \"left\" && \"cs-drawer--left\", className) }, rootProps, [\"role\", \"tabIndex\", \"aria-modal\", \"aria-labelledby\", \"aria-label\", \"data-cs-overlay-material\"])}\n ref={mergedNativeRef}\n data-cs-overlay-material={material || undefined}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={hasTitle ? titleId : undefined}\n aria-label={hasTitle ? undefined : t(\"panel\")}\n >\n <div className=\"cs-drawer__header\">\n {hasTitle ? <h2 id={titleId} className=\"cs-drawer__title\">{title}</h2> : null}\n <button type=\"button\" className=\"cs-drawer__close\" aria-label={t(\"close\")} onClick={onClose}>\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\"><path d=\"M6 6l12 12M18 6L6 18\" /></svg>\n </button>\n </div>\n <div ref={body} className=\"cs-drawer__body\" tabIndex={bodyScrollable ? 0 : undefined}>{children}</div>\n {(actions || actions === 0) ? <div className=\"cs-drawer__footer\">{actions}</div> : null}\n </div>\n </>\n </overlayScopeContext.Provider>\n );\n});\nDrawer.displayName = \"Drawer\";\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Drawer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../components/feedback/Alert.jsx"],
|
|
4
|
-
"sourcesContent": ["import { useComposedRefs } from \"../_utils/refs.js\";\nimport React from \"react\";\nimport { makeT, useLang } from \"../_i18n/i18n.js\";\nimport { cx } from \"../_utils/cx.js\";\n\nconst PATHS = {\n info: \"M12 8h.01M11 12h1v4h1 M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z\",\n success: \"M4 12.5l5 5 11-11\",\n warning: \"M12 3l9 16H3z M12 10v4 M12 17h.01\",\n danger: \"M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z M9 9l6 6 M15 9l-6 6\",\n};\nfunction DefaultIcon({ variant }) {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.9\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d={PATHS[variant] || PATHS.info} />\n </svg>\n );\n}\n\n/** CyberSkill Alert — inline banner. variant: info | success | warning | danger. */\nexport const Alert = React.forwardRef(function Alert({ variant = \"info\", title, icon, children, onDismiss, lang, className, ...props }, forwardedRef) {\n const [ref, L, localeMessages] = useLang(lang);\n const mergedNativeRef = useComposedRefs(ref, forwardedRef);\n const t = makeT(\"Alert\", L, localeMessages);\n return (\n <div ref={mergedNativeRef} role=\"status\" className={cx(\"cs-alert\", `cs-alert--${variant}`, className)} {...props}>\n <span className=\"cs-alert__icon\">{icon ?? <DefaultIcon variant={variant} />}</span>\n <div>\n {(title || title === 0) ? <p className=\"cs-alert__title\">{title}</p> : null}\n {(children || children === 0) ? <div className=\"cs-alert__body\">{children}</div> : null}\n </div>\n {onDismiss ? (\n <button type=\"button\" className=\"cs-alert__dismiss\" aria-label={t(\"dismiss\")} onClick={onDismiss}>×</button>\n ) : null}\n </div>\n );\n});\nAlert.displayName = \"Alert\";\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AACA,OAAO,WAAW;AAIlB,IAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AACV;AACA,SAAS,YAAY,EAAE,QAAQ,GAAG;AAChC,SACE,oCAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,eAAY,UAC3J,oCAAC,UAAK,GAAG,MAAM,OAAO,KAAK,MAAM,MAAM,CACzC;AAEJ;AAGO,IAAM,QAAQ,MAAM,WAAW,SAASA,OAAM,EAAE,UAAU,QAAQ,OAAO,MAAM,UAAU,WAAW,MAAM,WAAW,GAAG,MAAM,GAAG,cAAc;AACpJ,QAAM,CAAC,KAAK,GAAG,cAAc,IAAI,QAAQ,IAAI;AAC7C,QAAM,kBAAkB,gBAAgB,KAAK,YAAY;AACzD,QAAM,IAAI,MAAM,SAAS,GAAG,cAAc;AAC1C,SACE,oCAAC,SAAI,KAAK,iBAAiB,MAAK,UAAS,WAAW,GAAG,YAAY,aAAa,OAAO,IAAI,SAAS,GAAI,GAAG,SACzG,oCAAC,UAAK,WAAU,oBAAkB,QAAQ,oCAAC,eAAY,SAAkB,CAAG,GAC5E,oCAAC,aACG,SAAS,UAAU,IAAK,oCAAC,OAAE,WAAU,qBAAmB,KAAM,IAAO,MACrE,YAAY,aAAa,IAAK,oCAAC,SAAI,WAAU,oBAAkB,QAAS,IAAS,IACrF,GACC,YACC,oCAAC,YAAO,MAAK,UAAS,WAAU,qBAAoB,cAAY,EAAE,SAAS,GAAG,SAAS,aAAW,GAAC,IACjG,IACN;AAEJ,CAAC;AACD,MAAM,cAAc;",
|
|
6
|
-
"names": ["Alert"]
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|