@cyberskill/design 2.0.0 → 2.1.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 +85 -85
- 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 +141 -141
- package/_esm/cs.mjs +2 -2
- package/base/collections.css +3 -2
- package/base/components.css +8 -7
- package/base/controls.css +14 -14
- package/base/data.css +3 -3
- package/base/feedback.css +2 -2
- package/base/forms.css +3 -2
- package/base/glass.css +2 -2
- package/base/interaction.css +6 -1
- package/base/navigation.css +2 -2
- package/base/reset.css +2 -0
- package/base/shell.css +5 -5
- 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 +1 -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 +1 -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 +85 -85
- 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 +35 -31
- 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 +4 -3
- 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 +3 -2
- package/styles/components/manifest.json +156 -148
- package/styles.layered.css +156 -149
- 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 +157 -157
- package/tokens/element-seeds.json +1 -1
- package/tokens/elements.css +48 -48
- 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 +233 -233
- package/tokens/native/CSModes.swift +233 -233
- package/tokens/native/CSTokens.kt +11 -11
- package/tokens/native/CSTokens.swift +11 -11
- package/tokens/native/cs_modes.dart +233 -233
- package/tokens/native/cs_tokens.dart +11 -11
- package/tokens/native/mode-provenance.json +11 -11
- package/tokens/provenance.json +6 -6
- package/tokens/theme-attributes.css +40 -40
- package/tokens/tokens.dtcg.json +187 -130
- package/tokens/tokens.js +87 -87
- package/tokens/tokens.json +86 -86
- package/tokens/typography.css +6 -6
- package/tokens/variables.css +131 -131
- 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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../components/_i18n/i18n.js", "../../../components/_i18n/strings.js"],
|
|
4
|
-
"sourcesContent": ["/* CyberSkill i18n — shared locale helper (v3 Batch 0 + TASK-IMP-026 locale spike).\n * Vietnamese-first: default 'vi'. A component resolves its language from an explicit\n * `lang` prop → nearest [lang] ancestor → document <html lang> → 'vi'.\n * Language axis values are BCP-47 primary subtags (en · vi · ja spike). Built-in UI\n * strings live in strings.js (EN + VI required; optional locales gated by bilingual-parity).\n * Import from a component: import { makeT, resolveLang, formatDate } from \"../_i18n/i18n.js\"; */\nimport React from \"react\";\nimport { useClientLayoutEffect } from \"../_utils/use-client-layout-effect.js\";\nimport { strings as STRINGS } from \"./strings.js\";\n\n/** Locales with known registry tables or formatting branches. Spike: ja (TASK-IMP-026).\n * camelCase so the bundle treats it as an unexposed helper (not a primary export). */\nexport const knownLocales = Object.freeze([\"vi\", \"en\", \"ja\"]);\n\n/**\n * Normalize a lang / BCP-47 / display label to a primary language subtag.\n * Returns null when empty so callers can fall through to Vietnamese-first default.\n */\nexport function primaryLang(tag) {\n if (tag == null) return null;\n const raw = String(tag).trim();\n if (!raw) return null;\n const lower = raw.toLowerCase().replace(/_/g, \"-\");\n if (lower === \"tiếng việt\" || lower === \"tieng viet\") return \"vi\";\n if (lower === \"english\") return \"en\";\n if (lower === \"日本語\" || lower === \"japanese\") return \"ja\";\n const primary = lower.split(\"-\")[0];\n return primary || null;\n}\n\nexport function resolveLang(propLang, el) {\n let l = primaryLang(propLang);\n if (!l && el && el.closest) {\n const a = el.closest(\"[lang]\");\n if (a) l = primaryLang(a.getAttribute(\"lang\"));\n }\n if (!l && typeof document !== \"undefined\") {\n l = primaryLang(document.documentElement.getAttribute(\"lang\"));\n }\n return l || \"vi\";\n}\n\nconst forbiddenMessageKeys = new Set([\"__proto__\", \"prototype\", \"constructor\"]);\nlet MessageContext;\n/** Internal lazy context; the provider carries immutable snapshots, never a global registry override. */\nexport function localeMessagesContext() {\n if (!MessageContext) MessageContext = React.createContext(null);\n return MessageContext;\n}\nfunction messageEntries(value, label) {\n if (!value || typeof value !== \"object\" || Array.isArray(value) || ![Object.prototype, null].includes(Object.getPrototypeOf(value))) throw new TypeError(label + \" must be a plain message record\");\n return Reflect.ownKeys(value).map(key => {\n if (typeof key !== \"string\" || !key.trim() || forbiddenMessageKeys.has(key)) throw new TypeError(\"Unsafe message key\");\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !Object.prototype.hasOwnProperty.call(descriptor, \"value\")) throw new TypeError(\"Message accessors are not supported\");\n return [key, descriptor.value];\n });\n}\n/** Snapshot caller dictionaries without invoking accessors or mutating caller/built-in data. */\nexport function snapshotLocaleMessages(messages) {\n const result = Object.create(null);\n for (const [namespace, locales] of messageEntries(messages, \"messages\")) {\n const normalized = Object.create(null);\n for (const [tag, values] of messageEntries(locales, namespace)) {\n const locale = primaryLang(tag);\n if (!locale || forbiddenMessageKeys.has(locale)) throw new TypeError(\"Unsafe message locale\");\n if (Object.prototype.hasOwnProperty.call(normalized, locale)) throw new TypeError(\"Message locale aliases collide in \" + namespace + \": \" + locale);\n const table = Object.create(null);\n for (const [key, value] of messageEntries(values, namespace + \".\" + tag)) {\n if (typeof value !== \"string\") throw new TypeError(\"Messages must be strings\");\n table[key] = value;\n }\n normalized[locale] = Object.freeze(table);\n }\n result[namespace] = Object.freeze(normalized);\n }\n return Object.freeze(result);\n}\nexport function tr(component, key, lang, messages = null) {\n const c = Object.prototype.hasOwnProperty.call(STRINGS, component) ? STRINGS[component] : {};\n const want = primaryLang(lang) || \"vi\";\n for (const locale of new Set([want, \"en\", \"vi\"])) {\n for (let layer = messages; layer; layer = layer.parent) {\n const table = layer.messages[component]?.[locale];\n if (table && Object.prototype.hasOwnProperty.call(table, key)) return table[key];\n }\n const table = c[locale];\n if (table && Object.prototype.hasOwnProperty.call(table, key) && table[key] != null) return table[key];\n }\n return key;\n}\n\n/** Pure binding; React consumers pass their scoped snapshot from useLang/useMessages. */\nexport function makeT(component, lang, messages = null) { return (key) => tr(component, key, lang, messages); }\n\n/** React hook: attach the returned ref to the component root; resolves language from an\n * explicit prop → nearest [lang] ancestor (e.g. a template's VN wrapper) → <html lang> → 'vi'.\n * Corrects to the ancestor value in a layout effect (before paint). */\nexport function useLang(propLang) {\n const messages = React.useContext(localeMessagesContext());\n const ref = React.useRef(null);\n const binding = React.useRef(null);\n const [lang, setLang] = React.useState(() => resolveLang(propLang, null));\n useClientLayoutEffect(() => {\n const el = ref.current;\n setLang(resolveLang(propLang, el));\n const ancestors = [];\n for (let node = el; node; node = node.parentElement) ancestors.push(node);\n const previous = binding.current;\n if (previous && previous.propLang === propLang && previous.ancestors.length === ancestors.length && previous.ancestors.every((node, i) => node === ancestors[i])) return;\n previous?.observer?.disconnect();\n binding.current = { propLang, ancestors, observer: null };\n // Use the same normalization as resolveLang: blank props inherit and\n // must keep observing the surrounding language scope.\n if (!el || primaryLang(propLang)) return;\n // Re-resolve when an ancestor [lang] changes (template Language axis / __dcSetProps).\n const obs = new MutationObserver(() => setLang(resolveLang(propLang, el)));\n for (const node of ancestors) {\n obs.observe(node, { attributes: true, attributeFilter: [\"lang\"] });\n }\n binding.current.observer = obs;\n }); // Recheck after every commit: a previously null ref may now be mounted.\n useClientLayoutEffect(() => () => {\n binding.current?.observer?.disconnect();\n binding.current = null;\n }, []);\n return [ref, lang, messages];\n}\n\nconst VI_MONTHS = [\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"];\n\n/** VN date = DD/MM/YYYY; EN = 02 Jul 2026; JA = 2026/07/02. */\nexport function formatDate(d, lang) {\n const dt = d instanceof Date ? d : new Date(d);\n if (isNaN(dt.getTime())) return \"\";\n const L = primaryLang(lang) || \"vi\";\n if (L === \"vi\") {\n const p = (n) => String(n).padStart(2, \"0\");\n return p(dt.getDate()) + \"/\" + p(dt.getMonth() + 1) + \"/\" + dt.getFullYear();\n }\n if (L === \"ja\") {\n return dt.toLocaleDateString(\"ja-JP\", { year: \"numeric\", month: \"2-digit\", day: \"2-digit\" });\n }\n return dt.toLocaleDateString(\"en-GB\", { day: \"2-digit\", month: \"short\", year: \"numeric\" });\n}\nexport function monthName(i, lang) {\n const L = primaryLang(lang) || \"vi\";\n if (L === \"vi\") return VI_MONTHS[i];\n if (L === \"ja\") return new Date(2000, i, 1).toLocaleDateString(\"ja-JP\", { month: \"long\" });\n return new Date(2000, i, 1).toLocaleDateString(\"en-US\", { month: \"long\" });\n}\nexport function formatNumber(n, lang) {\n if (n == null || isNaN(n)) return \"\";\n const L = primaryLang(lang) || \"vi\";\n const locale = L === \"vi\" ? \"vi-VN\" : L === \"ja\" ? \"ja-JP\" : \"en-US\";\n return new Intl.NumberFormat(locale).format(n);\n}\n\n/**\n * Format a money amount. Currency is independent of display language when options are used.\n *\n * Call shapes (FIND-025):\n * - Legacy: `formatCurrency(amount, \"en\"|\"vi\")` — preserves prior presentation\n * (EN→USD-style `$1,234,567`; VI→`1.234.567 ₫`).\n * - Preferred: `formatCurrency(amount, { currency, locale?, lang? })` —\n * `Intl.NumberFormat(locale, { style: \"currency\", currency })`.\n * `locale` defaults from `lang` (`vi`→`vi-VN`, `ja`→`ja-JP`, else `en-US`).\n */\nexport function formatCurrency(n, langOrOpts) {\n if (n == null || isNaN(n)) return \"\";\n const opts = langOrOpts && typeof langOrOpts === \"object\" ? langOrOpts : null;\n if (opts && opts.currency) {\n let locale = opts.locale;\n if (!locale) {\n const L = primaryLang(opts.lang) || \"en\";\n locale = L === \"vi\" ? \"vi-VN\" : L === \"ja\" ? \"ja-JP\" : \"en-US\";\n }\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: String(opts.currency).toUpperCase(),\n currencyDisplay: \"symbol\",\n }).format(Number(n));\n }\n const lang = typeof langOrOpts === \"string\" ? langOrOpts : (opts && opts.lang) || \"en\";\n const L = primaryLang(lang) || \"en\";\n return L === \"vi\"\n ? new Intl.NumberFormat(\"vi-VN\").format(n) + \"\\u00a0₫\"\n : \"$\" + new Intl.NumberFormat(\"en-US\").format(n);\n}\n", "/* CyberSkill — central string registry (v3 Batch 0/1/2 + TASK-IMP-026 locale spike).\n * Every component with BUILT-IN UI text (text the consumer does NOT pass as a prop)\n * registers its strings here. EN + VI are required. Optional spike locales (ja) may\n * add a third table with the same key set. _audit/bilingual-parity.html enforces:\n * • each component has both `en` and `vi`\n * • identical key sets across en/vi (no missing/extra keys)\n * • optional locales (ja, …) match en keys when present; no empty values\n * Batch 1 wires each component to read these via i18n.js `makeT()` + `useLang()`,\n * replacing hardcoded English. Export is lowercase so the DS compiler does NOT expose\n * it on the component namespace. See docs/decisions/locale-architecture.md. */\nexport const strings = {\n Chart: {\n en: { empty: \"Chart with no data\" },\n vi: { empty: \"Biểu đồ chưa có dữ liệu\" },\n },\n AIDisclosureBadge: {\n en: { label: \"AI assisted\", details: \"This content was generated or transformed with AI assistance.\", sources: \"Sources\" },\n vi: { label: \"Có AI hỗ trợ\", details: \"Nội dung này được tạo hoặc chuyển đổi với sự hỗ trợ của AI.\", sources: \"Nguồn\" },\n },\n CodeBlock: {\n en: { code: \"code\", copy: \"Copy\", copied: \"Copied ✓\" },\n vi: { code: \"mã\", copy: \"Sao chép\", copied: \"Đã sao chép ✓\" },\n },\n Pagination: {\n en: { label: \"Pagination\", prev: \"Previous page\", next: \"Next page\" },\n vi: { label: \"Phân trang\", prev: \"Trang trước\", next: \"Trang sau\" },\n ja: { label: \"ページネーション\", prev: \"前のページ\", next: \"次のページ\" },\n },\n Breadcrumb: {\n en: { label: \"Breadcrumb\" },\n vi: { label: \"Đường dẫn\" },\n ja: { label: \"パンくずリスト\" },\n },\n CommandPalette: {\n en: { placeholder: \"Type a command or search…\", empty: \"No results\", oneResult: \"{count} result\", results: \"{count} results\", aria: \"Command palette\", esc: \"Esc\" },\n vi: { placeholder: \"Nhập lệnh hoặc tìm kiếm…\", empty: \"Không có kết quả\", oneResult: \"{count} kết quả\", results: \"{count} kết quả\", aria: \"Bảng lệnh\", esc: \"Esc\" },\n },\n SearchField: {\n en: { placeholder: \"Search…\", clear: \"Clear search\" },\n vi: { placeholder: \"Tìm kiếm…\", clear: \"Xóa tìm kiếm\" },\n ja: { placeholder: \"検索…\", clear: \"検索をクリア\" },\n },\n NumberField: {\n en: { decrease: \"Decrease\", increase: \"Increase\", value: \"Value\" },\n vi: { decrease: \"Giảm\", increase: \"Tăng\", value: \"Giá trị\" },\n },\n FileUpload: {\n en: { title: \"Drop files here or browse\", hint: \"PNG, JPG, or PDF up to 10MB\" },\n vi: { title: \"Kéo tệp vào đây hoặc chọn\", hint: \"PNG, JPG hoặc PDF, tối đa 10MB\" },\n },\n Dialog: {\n en: { close: \"Close\", confirm: \"Confirm\", cancel: \"Cancel\" },\n vi: { close: \"Đóng\", confirm: \"Xác nhận\", cancel: \"Hủy\" },\n ja: { close: \"閉じる\", confirm: \"確認\", cancel: \"キャンセル\" },\n },\n AlertDialog: {\n en: { confirm: \"Confirm\", cancel: \"Cancel\" },\n vi: { confirm: \"Xác nhận\", cancel: \"Hủy\" },\n },\n Drawer: {\n en: { close: \"Close\", panel: \"Side panel\" },\n vi: { close: \"Đóng\", panel: \"Bảng bên\" },\n },\n TreeTable: {\n en: { empty: \"No results\", expand: \"Expand\", collapse: \"Collapse\" },\n vi: { empty: \"Không có kết quả\", expand: \"Mở rộng\", collapse: \"Thu gọn\" },\n },\n DataTable: {\n en: {\n empty: \"No results\",\n loading: \"Loading table\",\n error: \"We couldn't load this table\",\n errorHint: \"Check your connection, then try again.\",\n },\n vi: {\n empty: \"Không có kết quả\",\n loading: \"Đang tải bảng\",\n error: \"Không tải được bảng này\",\n errorHint: \"Kiểm tra kết nối, rồi thử lại.\",\n },\n },\n ConfidenceMeter: {\n en: { label: \"Confidence\", low: \"Low\", medium: \"Medium\", high: \"High\" },\n vi: { label: \"Độ tin cậy\", low: \"Thấp\", medium: \"Trung bình\", high: \"Cao\" },\n },\n Spinner: {\n en: { label: \"Loading\" },\n vi: { label: \"Đang tải\" },\n },\n Tag: {\n en: { remove: \"Remove\" },\n vi: { remove: \"Gỡ\" },\n },\n Toast: {\n en: { notifications: \"Notifications\", dismiss: \"Close\" },\n vi: { notifications: \"Thông báo\", dismiss: \"Đóng\" },\n },\n TypingIndicator: {\n en: { label: \"Lumi is typing\" },\n vi: { label: \"Lumi đang nhập\" },\n },\n Editor: {\n en: { toolbar: \"Formatting\", bold: \"Bold\", italic: \"Italic\", list: \"Bullet list\", area: \"Rich text\" },\n vi: { toolbar: \"Định dạng\", bold: \"Đậm\", italic: \"Nghiêng\", list: \"Danh sách\", area: \"Văn bản\" },\n },\n Terminal: {\n en: { input: \"Terminal input\", title: \"cyberskill — zsh\" },\n vi: { input: \"Ô nhập lệnh\", title: \"cyberskill — zsh\" },\n },\n DataGrid: {\n en: { empty: \"No results\", selectAll: \"Select all rows\", selectRow: \"Select row\", pin: \"Pin this column\", pinNamed: \"Pin column {name}\" },\n vi: { empty: \"Không có kết quả\", selectAll: \"Chọn tất cả\", selectRow: \"Chọn dòng\", pin: \"Ghim cột này\", pinNamed: \"Ghim cột {name}\" },\n },\n Splitter: {\n en: { label: \"Resize panes\" },\n vi: { label: \"Đổi kích thước khung\" },\n },\n HotKeys: {\n en: { title: \"Keyboard shortcuts\", toggle: \"Toggle this sheet\" },\n vi: { title: \"Phím tắt\", toggle: \"Bật/tắt bảng này\" },\n },\n ColorPicker: {\n en: { label: \"Color\", hex: \"Hex value\" },\n vi: { label: \"Màu\", hex: \"Giá trị hex\" },\n },\n Tour: {\n en: { skip: \"Skip\", back: \"Back\", next: \"Next\", done: \"Done\" },\n vi: { skip: \"Bỏ qua\", back: \"Quay lại\", next: \"Tiếp\", done: \"Xong\" },\n },\n TreeSelect: {\n en: { placeholder: \"Select…\" },\n vi: { placeholder: \"Chọn…\" },\n },\n Cascader: {\n en: { placeholder: \"Select…\" },\n vi: { placeholder: \"Chọn…\" },\n },\n Transfer: {\n en: { source: \"Available\", target: \"Selected\", toTarget: \"Move to selected\", toSource: \"Move to available\" },\n vi: { source: \"Có sẵn\", target: \"Đã chọn\", toTarget: \"Chuyển sang đã chọn\", toSource: \"Chuyển về có sẵn\" },\n },\n Mentions: {\n en: { placeholder: \"Add a note — @ to mention\" },\n vi: { placeholder: \"Thêm ghi chú — gõ @ để nhắc tên\" },\n },\n Sortable: {\n en: { moveUp: \"Move up\", moveDown: \"Move down\" },\n vi: { moveUp: \"Di chuyển lên\", moveDown: \"Di chuyển xuống\" },\n },\n Form: {\n en: { summary: \"Please fix the following:\", required: \"required\", requiredField: \"Enter a value\", arrayContext: \"FormFieldArray must be used inside Form\", addRow: \"Add row\", back: \"Back\", finish: \"Finish\", next: \"Next\", step: \"Step\" },\n vi: { summary: \"Vui lòng sửa các mục sau:\", required: \"bắt buộc\", requiredField: \"Vui lòng nhập giá trị\", arrayContext: \"FormFieldArray phải được đặt bên trong Form\", addRow: \"Thêm dòng\", back: \"Quay lại\", finish: \"Hoàn tất\", next: \"Tiếp\", step: \"Bước\" },\n },\n BackTop: {\n en: { label: \"Back to top\" },\n vi: { label: \"Về đầu trang\" },\n },\n Carousel: {\n en: { prev: \"Previous slide\", next: \"Next slide\", slide: \"Slide\" },\n vi: { prev: \"Ảnh trước\", next: \"Ảnh sau\", slide: \"Ảnh\" },\n },\n Comment: {\n en: { reply: \"Reply\" },\n vi: { reply: \"Trả lời\" },\n },\n Image: {\n en: { preview: \"Preview image\", close: \"Close\" },\n vi: { preview: \"Xem ảnh\", close: \"Đóng\" },\n },\n Toolbar: {\n en: { more: \"More actions\" },\n vi: { more: \"Thao tác khác\" },\n },\n Popconfirm: {\n en: { ok: \"Confirm\", cancel: \"Cancel\" },\n vi: { ok: \"Xác nhận\", cancel: \"Hủy\" },\n },\n Result: {\n en: { success: \"Done\", error: \"We couldn't complete that\", warning: \"Please check\", info: \"Here's what happened\" },\n vi: { success: \"Hoàn tất\", error: \"Chúng tôi chưa hoàn tất được\", warning: \"Vui lòng kiểm tra\", info: \"Đây là điều đã xảy ra\" },\n },\n InlineEdit: {\n en: { edit: \"Edit\", empty: \"Add text\" },\n vi: { edit: \"Sửa\", empty: \"Thêm nội dung\" },\n },\n Calendar: {\n en: { prev: \"Previous month\", next: \"Next month\" },\n vi: { prev: \"Tháng trước\", next: \"Tháng sau\" },\n ja: { prev: \"前の月\", next: \"次の月\" },\n },\n DatePicker: {\n en: { placeholder: \"Select a date\" },\n vi: { placeholder: \"Chọn ngày\" },\n },\n TimePicker: {\n en: { label: \"Time\" },\n vi: { label: \"Giờ\" },\n },\n Combobox: {\n en: { placeholder: \"Select or type…\", label: \"Choose an option\", empty: \"No results\" },\n vi: { placeholder: \"Chọn hoặc nhập…\", label: \"Chọn mục\", empty: \"Không có kết quả\" },\n },\n InputGroup: {\n en: { clear: \"Clear\", show: \"Show password\", hide: \"Hide password\", input: \"Input\" },\n vi: { clear: \"Xóa\", show: \"Hiện mật khẩu\", hide: \"Ẩn mật khẩu\", input: \"Ô nhập\" },\n },\n TagInput: {\n en: { placeholder: \"Add a tag…\", remove: \"Remove\" },\n vi: { placeholder: \"Thêm thẻ…\", remove: \"Gỡ\" },\n },\n Rating: {\n en: { label: \"Rating\" },\n vi: { label: \"Đánh giá\" },\n },\n InputOTP: {\n en: { label: \"One-time code\" },\n vi: { label: \"Mã dùng một lần\" },\n },\n PromptInput: {\n en: { placeholder: \"Type your wish…\", send: \"Send\", hint: \"Lumi replies, then hands clear wishes to a human.\" },\n vi: { placeholder: \"Nhập điều ước của bạn…\", send: \"Gửi\", hint: \"Lumi trả lời, rồi chuyển điều ước rõ ràng cho con người.\" },\n },\n HumanReviewGate: {\n en: { aria: \"Human review gate\", risk: \"review required\", approve: \"Approve\", reject: \"Reject\", reviewer: \"Reviewer\" },\n vi: { aria: \"Cổng kiểm duyệt của con người\", risk: \"cần xem xét\", approve: \"Phê duyệt\", reject: \"Từ chối\", reviewer: \"Người duyệt\" },\n },\n\n Switch: {\n en: { label: \"Setting\" },\n vi: { label: \"Cài đặt\" },\n },\n Tabs: {\n en: { list: \"Tabs\" },\n vi: { list: \"Tab\" },\n },\n EmptyState: {\n en: { title: \"Nothing here yet\", action: \"Create your first item\" },\n vi: { title: \"Chưa có gì ở đây\", action: \"Tạo mục đầu tiên\" },\n },\n Alert: {\n en: { dismiss: \"Close\" },\n vi: { dismiss: \"Đóng\" },\n },\n Select: {\n en: { placeholder: \"Select…\" },\n vi: { placeholder: \"Chọn…\" },\n },\n Slider: {\n en: { label: \"Slider\" },\n vi: { label: \"Thanh trượt\" },\n },\n Steps: {\n en: { label: \"Steps\" },\n vi: { label: \"Các bước\" },\n },\n Toggle: {\n en: { label: \"Toggle\" },\n vi: { label: \"Nút bật tắt\" },\n },\n Menu: {\n en: { menu: \"Menu\" },\n vi: { menu: \"Trình đơn\" },\n },\n Popover: {\n en: { panel: \"Details\" },\n vi: { panel: \"Chi tiết\" },\n },\n Menubar: {\n en: { label: \"Application menu\" },\n vi: { label: \"Trình đơn ứng dụng\" },\n },\n ContextMenu: {\n en: { menu: \"Context menu\" },\n vi: { menu: \"Trình đơn ngữ cảnh\" },\n },\n Tooltip: {\n en: { label: \"Tooltip\" },\n vi: { label: \"Chú thích\" },\n },\n CitationList: {\n en: { sources: \"Sources\" },\n vi: { sources: \"Nguồn\" },\n },\n ProgressBar: {\n en: { label: \"Progress\" },\n vi: { label: \"Tiến độ\" },\n },\n ChatMessage: {\n en: { you: \"You\" },\n vi: { you: \"Bạn\" },\n },\n};\n\n// Built-in tables are immutable. Consumer overrides belong to scoped LocaleProvider snapshots.\nfor (const namespace of Object.values(strings)) {\n for (const table of Object.values(namespace)) Object.freeze(table);\n Object.freeze(namespace);\n}\nObject.freeze(strings);\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/* CyberSkill i18n — shared locale helper (v3 Batch 0 + TASK-IMP-026 locale spike).\n * Vietnamese-first: default 'vi'. A component resolves its language from an explicit\n * `lang` prop → nearest [lang] ancestor → document <html lang> → 'vi'.\n * Language axis values are BCP-47 primary subtags (en · vi · ja spike). Built-in UI\n * strings live in strings.js (EN + VI required; optional locales gated by bilingual-parity).\n * Import from a component: import { makeT, resolveLang, formatDate } from \"../_i18n/i18n.js\"; */\nimport React from \"react\";\nimport { useClientLayoutEffect } from \"../_utils/use-client-layout-effect.js\";\nimport { strings as STRINGS } from \"./strings.js\";\n\n/** Locales with known registry tables or formatting branches. Spike: ja (TASK-IMP-026).\n * camelCase so the bundle treats it as an unexposed helper (not a primary export). */\nexport const knownLocales = Object.freeze([\"vi\", \"en\", \"ja\"]);\n\n/**\n * Normalize a lang / BCP-47 / display label to a primary language subtag.\n * Returns null when empty so callers can fall through to Vietnamese-first default.\n */\nexport function primaryLang(tag) {\n if (tag == null) return null;\n const raw = String(tag).trim();\n if (!raw) return null;\n const lower = raw.toLowerCase().replace(/_/g, \"-\");\n if (lower === \"tiếng việt\" || lower === \"tieng viet\") return \"vi\";\n if (lower === \"english\") return \"en\";\n if (lower === \"日本語\" || lower === \"japanese\") return \"ja\";\n const primary = lower.split(\"-\")[0];\n return primary || null;\n}\n\nexport function resolveLang(propLang, el) {\n let l = primaryLang(propLang);\n if (!l && el && el.closest) {\n const a = el.closest(\"[lang]\");\n if (a) l = primaryLang(a.getAttribute(\"lang\"));\n }\n if (!l && typeof document !== \"undefined\") {\n l = primaryLang(document.documentElement.getAttribute(\"lang\"));\n }\n return l || \"vi\";\n}\n\nconst forbiddenMessageKeys = new Set([\"__proto__\", \"prototype\", \"constructor\"]);\nlet MessageContext;\n/** Internal lazy context; the provider carries immutable snapshots, never a global registry override. */\nexport function localeMessagesContext() {\n if (!MessageContext) MessageContext = React.createContext(null);\n return MessageContext;\n}\nfunction messageEntries(value, label) {\n if (!value || typeof value !== \"object\" || Array.isArray(value) || ![Object.prototype, null].includes(Object.getPrototypeOf(value))) throw new TypeError(label + \" must be a plain message record\");\n return Reflect.ownKeys(value).map(key => {\n if (typeof key !== \"string\" || !key.trim() || forbiddenMessageKeys.has(key)) throw new TypeError(\"Unsafe message key\");\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !Object.prototype.hasOwnProperty.call(descriptor, \"value\")) throw new TypeError(\"Message accessors are not supported\");\n return [key, descriptor.value];\n });\n}\n/** Snapshot caller dictionaries without invoking accessors or mutating caller/built-in data. */\nexport function snapshotLocaleMessages(messages) {\n const result = Object.create(null);\n for (const [namespace, locales] of messageEntries(messages, \"messages\")) {\n const normalized = Object.create(null);\n for (const [tag, values] of messageEntries(locales, namespace)) {\n const locale = primaryLang(tag);\n if (!locale || forbiddenMessageKeys.has(locale)) throw new TypeError(\"Unsafe message locale\");\n if (Object.prototype.hasOwnProperty.call(normalized, locale)) throw new TypeError(\"Message locale aliases collide in \" + namespace + \": \" + locale);\n const table = Object.create(null);\n for (const [key, value] of messageEntries(values, namespace + \".\" + tag)) {\n if (typeof value !== \"string\") throw new TypeError(\"Messages must be strings\");\n table[key] = value;\n }\n normalized[locale] = Object.freeze(table);\n }\n result[namespace] = Object.freeze(normalized);\n }\n return Object.freeze(result);\n}\nexport function tr(component, key, lang, messages = null) {\n const c = Object.prototype.hasOwnProperty.call(STRINGS, component) ? STRINGS[component] : {};\n const want = primaryLang(lang) || \"vi\";\n for (const locale of new Set([want, \"en\", \"vi\"])) {\n for (let layer = messages; layer; layer = layer.parent) {\n const table = layer.messages[component]?.[locale];\n if (table && Object.prototype.hasOwnProperty.call(table, key)) return table[key];\n }\n const table = c[locale];\n if (table && Object.prototype.hasOwnProperty.call(table, key) && table[key] != null) return table[key];\n }\n return key;\n}\n\n/** Pure binding; React consumers pass their scoped snapshot from useLang/useMessages. */\nexport function makeT(component, lang, messages = null) { return (key) => tr(component, key, lang, messages); }\n\n/** React hook: attach the returned ref to the component root; resolves language from an\n * explicit prop → nearest [lang] ancestor (e.g. a template's VN wrapper) → <html lang> → 'vi'.\n * Corrects to the ancestor value in a layout effect (before paint). */\nexport function useLang(propLang) {\n const messages = React.useContext(localeMessagesContext());\n const ref = React.useRef(null);\n const binding = React.useRef(null);\n const [lang, setLang] = React.useState(() => resolveLang(propLang, null));\n useClientLayoutEffect(() => {\n const el = ref.current;\n setLang(resolveLang(propLang, el));\n const ancestors = [];\n for (let node = el; node; node = node.parentElement) ancestors.push(node);\n const previous = binding.current;\n if (previous && previous.propLang === propLang && previous.ancestors.length === ancestors.length && previous.ancestors.every((node, i) => node === ancestors[i])) return;\n previous?.observer?.disconnect();\n binding.current = { propLang, ancestors, observer: null };\n // Use the same normalization as resolveLang: blank props inherit and\n // must keep observing the surrounding language scope.\n if (!el || primaryLang(propLang)) return;\n // Re-resolve when an ancestor [lang] changes (template Language axis / __dcSetProps).\n const obs = new MutationObserver(() => setLang(resolveLang(propLang, el)));\n for (const node of ancestors) {\n obs.observe(node, { attributes: true, attributeFilter: [\"lang\"] });\n }\n binding.current.observer = obs;\n }); // Recheck after every commit: a previously null ref may now be mounted.\n useClientLayoutEffect(() => () => {\n binding.current?.observer?.disconnect();\n binding.current = null;\n }, []);\n return [ref, lang, messages];\n}\n\nconst VI_MONTHS = [\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"];\n\n/** VN date = DD/MM/YYYY; EN = 02 Jul 2026; JA = 2026/07/02. */\nexport function formatDate(d, lang) {\n const dt = d instanceof Date ? d : new Date(d);\n if (isNaN(dt.getTime())) return \"\";\n const L = primaryLang(lang) || \"vi\";\n if (L === \"vi\") {\n const p = (n) => String(n).padStart(2, \"0\");\n return p(dt.getDate()) + \"/\" + p(dt.getMonth() + 1) + \"/\" + dt.getFullYear();\n }\n if (L === \"ja\") {\n return dt.toLocaleDateString(\"ja-JP\", { year: \"numeric\", month: \"2-digit\", day: \"2-digit\" });\n }\n return dt.toLocaleDateString(\"en-GB\", { day: \"2-digit\", month: \"short\", year: \"numeric\" });\n}\nexport function monthName(i, lang) {\n const L = primaryLang(lang) || \"vi\";\n if (L === \"vi\") return VI_MONTHS[i];\n if (L === \"ja\") return new Date(2000, i, 1).toLocaleDateString(\"ja-JP\", { month: \"long\" });\n return new Date(2000, i, 1).toLocaleDateString(\"en-US\", { month: \"long\" });\n}\nexport function formatNumber(n, lang) {\n if (n == null || isNaN(n)) return \"\";\n const L = primaryLang(lang) || \"vi\";\n const locale = L === \"vi\" ? \"vi-VN\" : L === \"ja\" ? \"ja-JP\" : \"en-US\";\n return new Intl.NumberFormat(locale).format(n);\n}\n\n/**\n * Format a money amount. Currency is independent of display language when options are used.\n *\n * Call shapes (FIND-025):\n * - Legacy: `formatCurrency(amount, \"en\"|\"vi\")` — preserves prior presentation\n * (EN→USD-style `$1,234,567`; VI→`1.234.567 ₫`).\n * - Preferred: `formatCurrency(amount, { currency, locale?, lang? })` —\n * `Intl.NumberFormat(locale, { style: \"currency\", currency })`.\n * `locale` defaults from `lang` (`vi`→`vi-VN`, `ja`→`ja-JP`, else `en-US`).\n */\nexport function formatCurrency(n, langOrOpts) {\n if (n == null || isNaN(n)) return \"\";\n const opts = langOrOpts && typeof langOrOpts === \"object\" ? langOrOpts : null;\n if (opts && opts.currency) {\n let locale = opts.locale;\n if (!locale) {\n const L = primaryLang(opts.lang) || \"en\";\n locale = L === \"vi\" ? \"vi-VN\" : L === \"ja\" ? \"ja-JP\" : \"en-US\";\n }\n return new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: String(opts.currency).toUpperCase(),\n currencyDisplay: \"symbol\",\n }).format(Number(n));\n }\n const lang = typeof langOrOpts === \"string\" ? langOrOpts : (opts && opts.lang) || \"en\";\n const L = primaryLang(lang) || \"en\";\n return L === \"vi\"\n ? new Intl.NumberFormat(\"vi-VN\").format(n) + \"\\u00a0₫\"\n : \"$\" + new Intl.NumberFormat(\"en-US\").format(n);\n}\n", "/* CyberSkill — central string registry (v3 Batch 0/1/2 + TASK-IMP-026 locale spike).\n * Every component with BUILT-IN UI text (text the consumer does NOT pass as a prop)\n * registers its strings here. EN + VI are required. Optional spike locales (ja) may\n * add a third table with the same key set. _audit/bilingual-parity.html enforces:\n * • each component has both `en` and `vi`\n * • identical key sets across en/vi (no missing/extra keys)\n * • optional locales (ja, …) match en keys when present; no empty values\n * Batch 1 wires each component to read these via i18n.js `makeT()` + `useLang()`,\n * replacing hardcoded English. Export is lowercase so the DS compiler does NOT expose\n * it on the component namespace. See docs/decisions/locale-architecture.md. */\nexport const strings = {\n Chart: {\n en: { empty: \"Chart with no data\" },\n vi: { empty: \"Biểu đồ chưa có dữ liệu\" },\n },\n AIDisclosureBadge: {\n en: { label: \"AI assisted\", details: \"This content was generated or transformed with AI assistance.\", sources: \"Sources\" },\n vi: { label: \"Có AI hỗ trợ\", details: \"Nội dung này được tạo hoặc chuyển đổi với sự hỗ trợ của AI.\", sources: \"Nguồn\" },\n },\n CodeBlock: {\n en: { code: \"code\", copy: \"Copy\", copied: \"Copied ✓\" },\n vi: { code: \"mã\", copy: \"Sao chép\", copied: \"Đã sao chép ✓\" },\n },\n Pagination: {\n en: { label: \"Pagination\", prev: \"Previous page\", next: \"Next page\" },\n vi: { label: \"Phân trang\", prev: \"Trang trước\", next: \"Trang sau\" },\n ja: { label: \"ページネーション\", prev: \"前のページ\", next: \"次のページ\" },\n },\n Breadcrumb: {\n en: { label: \"Breadcrumb\" },\n vi: { label: \"Đường dẫn\" },\n ja: { label: \"パンくずリスト\" },\n },\n CommandPalette: {\n en: { placeholder: \"Type a command or search…\", empty: \"No results\", oneResult: \"{count} result\", results: \"{count} results\", aria: \"Command palette\", esc: \"Esc\" },\n vi: { placeholder: \"Nhập lệnh hoặc tìm kiếm…\", empty: \"Không có kết quả\", oneResult: \"{count} kết quả\", results: \"{count} kết quả\", aria: \"Bảng lệnh\", esc: \"Esc\" },\n },\n SearchField: {\n en: { placeholder: \"Search…\", clear: \"Clear search\" },\n vi: { placeholder: \"Tìm kiếm…\", clear: \"Xóa tìm kiếm\" },\n ja: { placeholder: \"検索…\", clear: \"検索をクリア\" },\n },\n NumberField: {\n en: { decrease: \"Decrease\", increase: \"Increase\", value: \"Value\" },\n vi: { decrease: \"Giảm\", increase: \"Tăng\", value: \"Giá trị\" },\n },\n FileUpload: {\n en: { title: \"Drop files here or browse\", hint: \"PNG, JPG, or PDF up to 10MB\" },\n vi: { title: \"Kéo tệp vào đây hoặc chọn\", hint: \"PNG, JPG hoặc PDF, tối đa 10MB\" },\n },\n Dialog: {\n en: { close: \"Close\", confirm: \"Confirm\", cancel: \"Cancel\" },\n vi: { close: \"Đóng\", confirm: \"Xác nhận\", cancel: \"Hủy\" },\n ja: { close: \"閉じる\", confirm: \"確認\", cancel: \"キャンセル\" },\n },\n AlertDialog: {\n en: { confirm: \"Confirm\", cancel: \"Cancel\" },\n vi: { confirm: \"Xác nhận\", cancel: \"Hủy\" },\n },\n Drawer: {\n en: { close: \"Close\", panel: \"Side panel\" },\n vi: { close: \"Đóng\", panel: \"Bảng bên\" },\n },\n TreeTable: {\n en: { empty: \"No results\", expand: \"Expand\", collapse: \"Collapse\" },\n vi: { empty: \"Không có kết quả\", expand: \"Mở rộng\", collapse: \"Thu gọn\" },\n },\n DataTable: {\n en: {\n empty: \"No results\",\n loading: \"Loading table\",\n error: \"We couldn't load this table\",\n errorHint: \"Check your connection, then try again.\",\n },\n vi: {\n empty: \"Không có kết quả\",\n loading: \"Đang tải bảng\",\n error: \"Không tải được bảng này\",\n errorHint: \"Kiểm tra kết nối, rồi thử lại.\",\n },\n },\n ConfidenceMeter: {\n en: { label: \"Confidence\", low: \"Low\", medium: \"Medium\", high: \"High\" },\n vi: { label: \"Độ tin cậy\", low: \"Thấp\", medium: \"Trung bình\", high: \"Cao\" },\n },\n Spinner: {\n en: { label: \"Loading\" },\n vi: { label: \"Đang tải\" },\n },\n Tag: {\n en: { remove: \"Remove\" },\n vi: { remove: \"Gỡ\" },\n },\n Toast: {\n en: { notifications: \"Notifications\", dismiss: \"Close\" },\n vi: { notifications: \"Thông báo\", dismiss: \"Đóng\" },\n },\n TypingIndicator: {\n en: { label: \"Lumi is typing\" },\n vi: { label: \"Lumi đang nhập\" },\n },\n Editor: {\n en: { toolbar: \"Formatting\", bold: \"Bold\", italic: \"Italic\", list: \"Bullet list\", area: \"Rich text\" },\n vi: { toolbar: \"Định dạng\", bold: \"Đậm\", italic: \"Nghiêng\", list: \"Danh sách\", area: \"Văn bản\" },\n },\n Terminal: {\n en: { input: \"Terminal input\", title: \"cyberskill — zsh\" },\n vi: { input: \"Ô nhập lệnh\", title: \"cyberskill — zsh\" },\n },\n DataGrid: {\n en: { empty: \"No results\", selectAll: \"Select all rows\", selectRow: \"Select row\", pin: \"Pin this column\", pinNamed: \"Pin column {name}\" },\n vi: { empty: \"Không có kết quả\", selectAll: \"Chọn tất cả\", selectRow: \"Chọn dòng\", pin: \"Ghim cột này\", pinNamed: \"Ghim cột {name}\" },\n },\n Splitter: {\n en: { label: \"Resize panes\" },\n vi: { label: \"Đổi kích thước khung\" },\n },\n HotKeys: {\n en: { title: \"Keyboard shortcuts\", toggle: \"Toggle this sheet\" },\n vi: { title: \"Phím tắt\", toggle: \"Bật/tắt bảng này\" },\n },\n ColorPicker: {\n en: { label: \"Color\", hex: \"Hex value\" },\n vi: { label: \"Màu\", hex: \"Giá trị hex\" },\n },\n Tour: {\n en: { skip: \"Skip\", back: \"Back\", next: \"Next\", done: \"Done\" },\n vi: { skip: \"Bỏ qua\", back: \"Quay lại\", next: \"Tiếp\", done: \"Xong\" },\n },\n TreeSelect: {\n en: { placeholder: \"Select…\" },\n vi: { placeholder: \"Chọn…\" },\n },\n Cascader: {\n en: { placeholder: \"Select…\" },\n vi: { placeholder: \"Chọn…\" },\n },\n Transfer: {\n en: { source: \"Available\", target: \"Selected\", toTarget: \"Move to selected\", toSource: \"Move to available\" },\n vi: { source: \"Có sẵn\", target: \"Đã chọn\", toTarget: \"Chuyển sang đã chọn\", toSource: \"Chuyển về có sẵn\" },\n },\n Mentions: {\n en: { placeholder: \"Add a note — @ to mention\" },\n vi: { placeholder: \"Thêm ghi chú — gõ @ để nhắc tên\" },\n },\n Sortable: {\n en: { moveUp: \"Move up\", moveDown: \"Move down\" },\n vi: { moveUp: \"Di chuyển lên\", moveDown: \"Di chuyển xuống\" },\n },\n Form: {\n en: { summary: \"Please fix the following:\", required: \"required\", requiredField: \"Enter a value\", arrayContext: \"FormFieldArray must be used inside Form\", addRow: \"Add row\", back: \"Back\", finish: \"Finish\", next: \"Next\", step: \"Step\" },\n vi: { summary: \"Vui lòng sửa các mục sau:\", required: \"bắt buộc\", requiredField: \"Vui lòng nhập giá trị\", arrayContext: \"FormFieldArray phải được đặt bên trong Form\", addRow: \"Thêm dòng\", back: \"Quay lại\", finish: \"Hoàn tất\", next: \"Tiếp\", step: \"Bước\" },\n },\n BackTop: {\n en: { label: \"Back to top\" },\n vi: { label: \"Về đầu trang\" },\n },\n Carousel: {\n en: { prev: \"Previous slide\", next: \"Next slide\", slide: \"Slide\" },\n vi: { prev: \"Ảnh trước\", next: \"Ảnh sau\", slide: \"Ảnh\" },\n },\n Comment: {\n en: { reply: \"Reply\" },\n vi: { reply: \"Trả lời\" },\n },\n Image: {\n en: { preview: \"Preview image\", close: \"Close\" },\n vi: { preview: \"Xem ảnh\", close: \"Đóng\" },\n },\n Toolbar: {\n en: { more: \"More actions\" },\n vi: { more: \"Thao tác khác\" },\n },\n Popconfirm: {\n en: { ok: \"Confirm\", cancel: \"Cancel\" },\n vi: { ok: \"Xác nhận\", cancel: \"Hủy\" },\n },\n Result: {\n en: { success: \"Done\", error: \"We couldn't complete that\", warning: \"Please check\", info: \"Here's what happened\" },\n vi: { success: \"Hoàn tất\", error: \"Chưa thực hiện được thao tác này\", warning: \"Vui lòng kiểm tra\", info: \"Thông tin chi tiết\" },\n },\n InlineEdit: {\n en: { edit: \"Edit\", empty: \"Add text\" },\n vi: { edit: \"Sửa\", empty: \"Thêm nội dung\" },\n },\n Calendar: {\n en: { prev: \"Previous month\", next: \"Next month\" },\n vi: { prev: \"Tháng trước\", next: \"Tháng sau\" },\n ja: { prev: \"前の月\", next: \"次の月\" },\n },\n DatePicker: {\n en: { placeholder: \"Select a date\" },\n vi: { placeholder: \"Chọn ngày\" },\n },\n TimePicker: {\n en: { label: \"Time\" },\n vi: { label: \"Giờ\" },\n },\n Combobox: {\n en: { placeholder: \"Select or type…\", label: \"Choose an option\", empty: \"No results\" },\n vi: { placeholder: \"Chọn hoặc nhập…\", label: \"Chọn mục\", empty: \"Không có kết quả\" },\n },\n InputGroup: {\n en: { clear: \"Clear\", show: \"Show password\", hide: \"Hide password\", input: \"Input\" },\n vi: { clear: \"Xóa\", show: \"Hiện mật khẩu\", hide: \"Ẩn mật khẩu\", input: \"Ô nhập\" },\n },\n TagInput: {\n en: { placeholder: \"Add a tag…\", remove: \"Remove\" },\n vi: { placeholder: \"Thêm thẻ…\", remove: \"Gỡ\" },\n },\n Rating: {\n en: { label: \"Rating\" },\n vi: { label: \"Đánh giá\" },\n },\n InputOTP: {\n en: { label: \"One-time code\" },\n vi: { label: \"Mã dùng một lần\" },\n },\n PromptInput: {\n en: { placeholder: \"Type your wish…\", send: \"Send\", hint: \"Lumi replies, then hands clear wishes to a human.\" },\n vi: { placeholder: \"Nhập điều ước của bạn…\", send: \"Gửi\", hint: \"Lumi phản hồi trước, rồi chuyển điều ước rõ ràng đến đội ngũ.\" },\n },\n HumanReviewGate: {\n en: { aria: \"Human review gate\", risk: \"review required\", approve: \"Approve\", reject: \"Reject\", reviewer: \"Reviewer\" },\n vi: { aria: \"Bước duyệt của người phụ trách\", risk: \"cần xem xét\", approve: \"Phê duyệt\", reject: \"Từ chối\", reviewer: \"Người duyệt\" },\n },\n\n Switch: {\n en: { label: \"Setting\" },\n vi: { label: \"Cài đặt\" },\n },\n Tabs: {\n en: { list: \"Tabs\" },\n vi: { list: \"Tab\" },\n },\n EmptyState: {\n en: { title: \"Nothing here yet\", action: \"Create your first item\" },\n vi: { title: \"Chưa có gì ở đây\", action: \"Tạo mục đầu tiên\" },\n },\n Alert: {\n en: { dismiss: \"Close\" },\n vi: { dismiss: \"Đóng\" },\n },\n Select: {\n en: { placeholder: \"Select…\" },\n vi: { placeholder: \"Chọn…\" },\n },\n Slider: {\n en: { label: \"Slider\" },\n vi: { label: \"Thanh trượt\" },\n },\n Steps: {\n en: { label: \"Steps\" },\n vi: { label: \"Các bước\" },\n },\n Toggle: {\n en: { label: \"Toggle\" },\n vi: { label: \"Nút bật tắt\" },\n },\n Menu: {\n en: { menu: \"Menu\" },\n vi: { menu: \"Trình đơn\" },\n },\n Popover: {\n en: { panel: \"Details\" },\n vi: { panel: \"Chi tiết\" },\n },\n Menubar: {\n en: { label: \"Application menu\" },\n vi: { label: \"Trình đơn ứng dụng\" },\n },\n ContextMenu: {\n en: { menu: \"Context menu\" },\n vi: { menu: \"Trình đơn ngữ cảnh\" },\n },\n Tooltip: {\n en: { label: \"Tooltip\" },\n vi: { label: \"Chú thích\" },\n },\n CitationList: {\n en: { sources: \"Sources\" },\n vi: { sources: \"Nguồn\" },\n },\n ProgressBar: {\n en: { label: \"Progress\" },\n vi: { label: \"Tiến độ\" },\n },\n ChatMessage: {\n en: { you: \"You\" },\n vi: { you: \"Bạn\" },\n },\n};\n\n// Built-in tables are immutable. Consumer overrides belong to scoped LocaleProvider snapshots.\nfor (const namespace of Object.values(strings)) {\n for (const table of Object.values(namespace)) Object.freeze(table);\n Object.freeze(namespace);\n}\nObject.freeze(strings);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["table"]
|
|
7
7
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -26,4 +26,4 @@ EmptyState.displayName = "EmptyState";
|
|
|
26
26
|
export {
|
|
27
27
|
EmptyState
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-KAOUK33L.mjs.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
makeT,
|
|
7
7
|
useLang
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
9
9
|
import {
|
|
10
10
|
mergeTargetProps
|
|
11
11
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -48,4 +48,4 @@ ConfidenceMeter.displayName = "ConfidenceMeter";
|
|
|
48
48
|
export {
|
|
49
49
|
ConfidenceMeter
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-KWPNHP73.mjs.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
makeT,
|
|
11
11
|
useLang
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
13
13
|
import {
|
|
14
14
|
mergeTargetProps
|
|
15
15
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -64,4 +64,4 @@ Popover.displayName = "Popover";
|
|
|
64
64
|
export {
|
|
65
65
|
Popover
|
|
66
66
|
};
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-LCC4ZVVO.mjs.map
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import {
|
|
3
|
+
hasDismiss,
|
|
4
|
+
notifyClosed
|
|
5
|
+
} from "./chunk-65SIJBJX.mjs";
|
|
2
6
|
import {
|
|
3
7
|
overlayScopeContext,
|
|
4
8
|
useOverlayLayer
|
|
@@ -6,7 +10,7 @@ import {
|
|
|
6
10
|
import {
|
|
7
11
|
makeT,
|
|
8
12
|
useLang
|
|
9
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
10
14
|
import {
|
|
11
15
|
mergeTargetProps
|
|
12
16
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -33,11 +37,11 @@ var ToastStack = React.forwardRef(function ToastStack2({ children, lang, classNa
|
|
|
33
37
|
return /* @__PURE__ */ React.createElement("div", { ref: mergedNativeRef, ...mergeTargetProps({ "className": cx("cs-toast-stack", className) }, rootProps, ["role", "aria-label"]), role: "region", "aria-label": makeT("Toast", L, localeMessages)("notifications") }, children);
|
|
34
38
|
});
|
|
35
39
|
ToastStack.displayName = "ToastStack";
|
|
36
|
-
var Toast = React.forwardRef(function Toast2({ variant = "default", title, icon, onClose, lang, children, className, ...props }, forwardedRef) {
|
|
40
|
+
var Toast = React.forwardRef(function Toast2({ variant = "default", title, icon, onClose, onOpenChange, lang, children, className, ...props }, forwardedRef) {
|
|
37
41
|
const [ref, L, localeMessages] = useLang(lang);
|
|
38
42
|
const mergedNativeRef = useComposedRefs(ref, forwardedRef);
|
|
39
43
|
const { scope } = useOverlayLayer({ open: true, kind: "toast", panelRef: ref, restoreFocus: false });
|
|
40
|
-
return /* @__PURE__ */ React.createElement(overlayScopeContext.Provider, { value: scope }, /* @__PURE__ */ React.createElement("div", { ref: mergedNativeRef, className: cx("cs-toast", `cs-toast--${variant}`, className), role: "status", ...props }, /* @__PURE__ */ React.createElement("span", { className: "cs-toast__icon", "aria-hidden": "true" }, icon ?? /* @__PURE__ */ React.createElement(DefaultIcon, { variant })), /* @__PURE__ */ React.createElement("div", null, title || title === 0 ? /* @__PURE__ */ React.createElement("div", { className: "cs-toast__title" }, title) : null, children || children === 0 ? /* @__PURE__ */ React.createElement("div", { className: "cs-toast__body" }, children) : null), onClose ? /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-toast__close", "aria-label": makeT("Toast", L, localeMessages)("dismiss"), onClick: onClose }, /* @__PURE__ */ React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }, /* @__PURE__ */ React.createElement("path", { d: "M6 6l12 12M18 6L6 18" }))) : null));
|
|
44
|
+
return /* @__PURE__ */ React.createElement(overlayScopeContext.Provider, { value: scope }, /* @__PURE__ */ React.createElement("div", { ref: mergedNativeRef, className: cx("cs-toast", `cs-toast--${variant}`, className), role: "status", ...props }, /* @__PURE__ */ React.createElement("span", { className: "cs-toast__icon", "aria-hidden": "true" }, icon ?? /* @__PURE__ */ React.createElement(DefaultIcon, { variant })), /* @__PURE__ */ React.createElement("div", null, title || title === 0 ? /* @__PURE__ */ React.createElement("div", { className: "cs-toast__title" }, title) : null, children || children === 0 ? /* @__PURE__ */ React.createElement("div", { className: "cs-toast__body" }, children) : null), hasDismiss(onOpenChange, onClose) ? /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-toast__close", "aria-label": makeT("Toast", L, localeMessages)("dismiss"), onClick: () => notifyClosed(onOpenChange, onClose) }, /* @__PURE__ */ React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }, /* @__PURE__ */ React.createElement("path", { d: "M6 6l12 12M18 6L6 18" }))) : null));
|
|
41
45
|
});
|
|
42
46
|
Toast.displayName = "Toast";
|
|
43
47
|
|
|
@@ -45,4 +49,4 @@ export {
|
|
|
45
49
|
ToastStack,
|
|
46
50
|
Toast
|
|
47
51
|
};
|
|
48
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-LWRFPVX7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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\";\nimport { hasDismiss, notifyClosed } from \"../_utils/open-change.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, onOpenChange, 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 {hasDismiss(onOpenChange, onClose) ? (\n <button type=\"button\" className=\"cs-toast__close\" aria-label={makeT(\"Toast\", L, localeMessages)(\"dismiss\")} onClick={() => notifyClosed(onOpenChange, 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;AAOlB,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,cAAc,MAAM,UAAU,WAAW,GAAG,MAAM,GAAG,cAAc;AACnK,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,WAAW,cAAc,OAAO,IAC/B,oCAAC,YAAO,MAAK,UAAS,WAAU,mBAAkB,cAAY,MAAM,SAAS,GAAG,cAAc,EAAE,SAAS,GAAG,SAAS,MAAM,aAAa,cAAc,OAAO,KAC3J,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
|
+
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
makeT,
|
|
14
14
|
useLang
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
16
16
|
import {
|
|
17
17
|
fieldMessages,
|
|
18
18
|
mergeTargetProps,
|
|
@@ -84,4 +84,4 @@ TreeSelect.displayName = "TreeSelect";
|
|
|
84
84
|
export {
|
|
85
85
|
TreeSelect
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-MRXEJSQQ.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
cx
|
|
8
8
|
} from "./chunk-5LXHLKXS.mjs";
|
|
@@ -25,4 +25,4 @@ Breadcrumb.displayName = "Breadcrumb";
|
|
|
25
25
|
export {
|
|
26
26
|
Breadcrumb
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-NZKMM4FK.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
cx
|
|
8
8
|
} from "./chunk-5LXHLKXS.mjs";
|
|
@@ -41,4 +41,4 @@ Switch.displayName = "Switch";
|
|
|
41
41
|
export {
|
|
42
42
|
Switch
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
44
|
+
//# sourceMappingURL=chunk-OEWAQZYE.mjs.map
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import {
|
|
3
|
+
notifyClosed
|
|
4
|
+
} from "./chunk-65SIJBJX.mjs";
|
|
2
5
|
import {
|
|
3
6
|
overlayScopeContext,
|
|
4
7
|
useOverlayLayer
|
|
@@ -7,7 +10,7 @@ import {
|
|
|
7
10
|
formatNumber,
|
|
8
11
|
makeT,
|
|
9
12
|
useLang
|
|
10
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
11
14
|
import {
|
|
12
15
|
mergeTargetProps
|
|
13
16
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -20,13 +23,13 @@ import {
|
|
|
20
23
|
|
|
21
24
|
// components/navigation/CommandPalette.jsx
|
|
22
25
|
import React from "react";
|
|
23
|
-
var CommandPalette = React.forwardRef(function CommandPalette2({ controlRef, open, onClose, placeholder, groups = [], lang, className, rootProps }, forwardedRef) {
|
|
26
|
+
var CommandPalette = React.forwardRef(function CommandPalette2({ controlRef, open, onClose, onOpenChange, placeholder, groups = [], lang, className, rootProps }, forwardedRef) {
|
|
24
27
|
const mergedControlRef = useComposedRefs(controlRef);
|
|
25
28
|
const mergedNativeRef = useComposedRefs(forwardedRef);
|
|
26
29
|
const [q, setQ] = React.useState("");
|
|
27
30
|
const panel = React.useRef(null);
|
|
28
|
-
const closeRef = React.useRef(
|
|
29
|
-
closeRef.current = onClose;
|
|
31
|
+
const closeRef = React.useRef(null);
|
|
32
|
+
closeRef.current = () => notifyClosed(onOpenChange, onClose);
|
|
30
33
|
const { scope } = useOverlayLayer({
|
|
31
34
|
open: !!open,
|
|
32
35
|
kind: "modal",
|
|
@@ -57,7 +60,7 @@ var CommandPalette = React.forwardRef(function CommandPalette2({ controlRef, ope
|
|
|
57
60
|
panel.current = el;
|
|
58
61
|
},
|
|
59
62
|
className: "cs-cmdk-scrim",
|
|
60
|
-
onClick:
|
|
63
|
+
onClick: () => closeRef.current()
|
|
61
64
|
},
|
|
62
65
|
/* @__PURE__ */ React.createElement("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 }, /* @__PURE__ */ React.createElement("div", { className: "cs-cmdk__search" }, /* @__PURE__ */ React.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("circle", { cx: "11", cy: "11", r: "7" }), /* @__PURE__ */ React.createElement("path", { d: "M21 21l-4.3-4.3" })), /* @__PURE__ */ React.createElement("input", { "aria-label": ph, value: q, onChange: (e) => setQ(e.target.value), placeholder: ph, ref: mergedControlRef }), /* @__PURE__ */ React.createElement("span", { className: "cs-kbd" }, t("esc"))), /* @__PURE__ */ React.createElement("div", { className: "cs-cmdk__list" }, /* @__PURE__ */ React.createElement("div", { className: "cs-cmdk__status", role: "status", "aria-live": "polite", "aria-atomic": "true" }, resultStatus), filteredGroups.map((g, gi) => {
|
|
63
66
|
const items = g.items;
|
|
@@ -65,7 +68,7 @@ var CommandPalette = React.forwardRef(function CommandPalette2({ controlRef, ope
|
|
|
65
68
|
return /* @__PURE__ */ React.createElement(React.Fragment, { key: gi }, g.label || g.label === 0 ? /* @__PURE__ */ React.createElement("div", { className: "cs-cmdk__label" }, g.label) : null, items.map((it, ii) => /* @__PURE__ */ React.createElement("button", { key: ii, type: "button", className: "cs-cmdk__item", onClick: () => {
|
|
66
69
|
it.onSelect && it.onSelect();
|
|
67
70
|
setQ("");
|
|
68
|
-
|
|
71
|
+
closeRef.current();
|
|
69
72
|
} }, it.icon || it.icon === 0 ? /* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, it.icon) : null, /* @__PURE__ */ React.createElement("span", null, it.label), it.shortcut || it.shortcut === 0 ? /* @__PURE__ */ React.createElement("span", { className: "cs-kbd" }, it.shortcut) : null)));
|
|
70
73
|
})))
|
|
71
74
|
));
|
|
@@ -75,4 +78,4 @@ CommandPalette.displayName = "CommandPalette";
|
|
|
75
78
|
export {
|
|
76
79
|
CommandPalette
|
|
77
80
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-OILXJXVX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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\";\nimport { notifyClosed } from \"../_utils/open-change.js\";\n\n/** CyberSkill CommandPalette — ⌘K overlay with search + grouped actions. Controlled via open/onClose. */\nexport const CommandPalette = React.forwardRef(function CommandPalette({ controlRef, open, onClose, onOpenChange, 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(null);\n closeRef.current = () => notifyClosed(onOpenChange, 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={() => closeRef.current()}\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(\"\"); closeRef.current(); }}>\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
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
cx
|
|
8
8
|
} from "./chunk-5LXHLKXS.mjs";
|
|
@@ -23,4 +23,4 @@ Tag.displayName = "Tag";
|
|
|
23
23
|
export {
|
|
24
24
|
Tag
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-PBP2MKZH.mjs.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
makeT,
|
|
7
7
|
useLang
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
9
9
|
import {
|
|
10
10
|
fieldMessages,
|
|
11
11
|
mergeTargetProps,
|
|
@@ -97,4 +97,4 @@ InputOTP.displayName = "InputOTP";
|
|
|
97
97
|
export {
|
|
98
98
|
InputOTP
|
|
99
99
|
};
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
100
|
+
//# sourceMappingURL=chunk-PE6KC2U7.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -29,4 +29,4 @@ CitationList.displayName = "CitationList";
|
|
|
29
29
|
export {
|
|
30
30
|
CitationList
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-PFTKXY5Q.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -29,4 +29,4 @@ Steps.displayName = "Steps";
|
|
|
29
29
|
export {
|
|
30
30
|
Steps
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=chunk-
|
|
32
|
+
//# sourceMappingURL=chunk-PLN3ITUB.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
cx
|
|
8
8
|
} from "./chunk-5LXHLKXS.mjs";
|
|
@@ -23,4 +23,4 @@ Spinner.displayName = "Spinner";
|
|
|
23
23
|
export {
|
|
24
24
|
Spinner
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-QBPDNM7S.mjs.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
makeT,
|
|
11
11
|
useLang
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
13
13
|
import {
|
|
14
14
|
mergeTargetProps
|
|
15
15
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -56,4 +56,4 @@ Tooltip.displayName = "Tooltip";
|
|
|
56
56
|
export {
|
|
57
57
|
Tooltip
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-SIMVM4RV.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeIds
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -73,4 +73,4 @@ InputGroup.displayName = "InputGroup";
|
|
|
73
73
|
export {
|
|
74
74
|
InputGroup
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-TMXLSCAG.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -33,4 +33,4 @@ Result.displayName = "Result";
|
|
|
33
33
|
export {
|
|
34
34
|
Result
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
36
|
+
//# sourceMappingURL=chunk-TNQXCIBM.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -40,4 +40,4 @@ HumanReviewGate.displayName = "HumanReviewGate";
|
|
|
40
40
|
export {
|
|
41
41
|
HumanReviewGate
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-TWCJMLGG.mjs.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
makeT,
|
|
7
7
|
useLang
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
9
9
|
import {
|
|
10
10
|
fieldMessages,
|
|
11
11
|
mergeTargetProps,
|
|
@@ -96,4 +96,4 @@ Rating.displayName = "Rating";
|
|
|
96
96
|
export {
|
|
97
97
|
Rating
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-U7RKPGRO.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -82,4 +82,4 @@ Splitter.displayName = "Splitter";
|
|
|
82
82
|
export {
|
|
83
83
|
Splitter
|
|
84
84
|
};
|
|
85
|
-
//# sourceMappingURL=chunk-
|
|
85
|
+
//# sourceMappingURL=chunk-UWNMGKAN.mjs.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
makeT,
|
|
11
11
|
useLang
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
13
13
|
import {
|
|
14
14
|
mergeTargetProps
|
|
15
15
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -138,4 +138,4 @@ ContextMenu.displayName = "ContextMenu";
|
|
|
138
138
|
export {
|
|
139
139
|
ContextMenu
|
|
140
140
|
};
|
|
141
|
-
//# sourceMappingURL=chunk-
|
|
141
|
+
//# sourceMappingURL=chunk-VAPKJRQI.mjs.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
makeT,
|
|
4
4
|
useLang
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JZYRXWPD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
mergeTargetProps
|
|
8
8
|
} from "./chunk-RQFCRXMQ.mjs";
|
|
@@ -51,4 +51,4 @@ CodeBlock.displayName = "CodeBlock";
|
|
|
51
51
|
export {
|
|
52
52
|
CodeBlock
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-VUCJT2QJ.mjs.map
|