@cyberskill/design 1.0.0 → 1.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 +10 -9
- package/README.md +31 -28
- package/SKILL.md +13 -9
- package/VERSION +1 -1
- package/_ds_bundle.js +660 -202
- package/_ds_manifest.json +1 -1
- package/_esm/cs.mjs +14 -8
- package/_esm/react.d.ts +216 -0
- package/_esm/react.mjs +114 -0
- package/base/collections.css +31 -0
- package/base/components.css +3 -0
- package/base/data.css +33 -0
- package/base/forms.css +8 -0
- package/base/interaction.css +1 -0
- package/base/typography.css +6 -0
- package/components/_i18n/strings.js +8 -4
- package/components/ai/ai-conversation.card.html +2 -2
- package/components/ai/ai-lumi.card.html +2 -2
- package/components/ai/ai.card.html +2 -2
- package/components/brand/brand.card.html +2 -2
- package/components/button/buttons.card.html +2 -2
- package/components/data/AspectRatio.d.ts +16 -0
- package/components/data/AspectRatio.figma.tsx +12 -0
- package/components/data/AspectRatio.jsx +16 -0
- package/components/data/AspectRatio.prompt.md +7 -0
- package/components/data/Collapsible.d.ts +21 -0
- package/components/data/Collapsible.figma.tsx +12 -0
- package/components/data/Collapsible.jsx +49 -0
- package/components/data/Collapsible.prompt.md +7 -0
- package/components/data/Image.d.ts +4 -0
- package/components/data/Image.prompt.md +2 -2
- package/components/data/Item.d.ts +26 -0
- package/components/data/Item.figma.tsx +12 -0
- package/components/data/Item.jsx +63 -0
- package/components/data/Item.prompt.md +10 -0
- package/components/data/ScrollArea.d.ts +16 -0
- package/components/data/ScrollArea.figma.tsx +12 -0
- package/components/data/ScrollArea.jsx +25 -0
- package/components/data/ScrollArea.prompt.md +7 -0
- package/components/data/collections.card.html +15 -4
- package/components/data/data.card.html +15 -4
- package/components/datatable/datatable.card.html +2 -2
- package/components/dialog/dialog.card.html +2 -2
- package/components/feedback/feedback-2.card.html +2 -2
- package/components/feedback/feedback.card.html +2 -2
- package/components/forms/Cascader.jsx +5 -3
- package/components/forms/Editor.prompt.md +1 -1
- package/components/forms/InputGroup.d.ts +4 -0
- package/components/forms/InputGroup.jsx +38 -8
- package/components/forms/InputGroup.prompt.md +3 -3
- package/components/forms/NativeSelect.d.ts +22 -0
- package/components/forms/NativeSelect.figma.tsx +12 -0
- package/components/forms/NativeSelect.jsx +56 -0
- package/components/forms/NativeSelect.prompt.md +10 -0
- package/components/forms/NumberField.d.ts +5 -0
- package/components/forms/NumberField.jsx +51 -7
- package/components/forms/NumberField.prompt.md +2 -2
- package/components/forms/SegmentedControl.jsx +1 -1
- package/components/forms/TagInput.d.ts +3 -0
- package/components/forms/TagInput.jsx +62 -20
- package/components/forms/TagInput.prompt.md +2 -2
- package/components/forms/forms-2.card.html +2 -2
- package/components/forms/forms.card.html +5 -4
- package/components/icon/Icon.prompt.md +1 -1
- package/components/icon/icon.card.html +2 -2
- package/components/logo/Logo.jsx +2 -1
- package/components/logo/logo.card.html +2 -2
- package/components/navigation/Menu.jsx +14 -1
- package/components/navigation/navigation.card.html +2 -2
- package/components/navigation/shell.card.html +2 -2
- package/components/overlays/AlertDialog.d.ts +29 -0
- package/components/overlays/AlertDialog.figma.tsx +12 -0
- package/components/overlays/AlertDialog.jsx +142 -0
- package/components/overlays/AlertDialog.prompt.md +12 -0
- package/components/overlays/Drawer.jsx +1 -1
- package/components/overlays/Popconfirm.jsx +14 -1
- package/components/overlays/Popover.jsx +14 -1
- package/components/overlays/alertdialog.card.html +42 -0
- package/components/overlays/overlays.card.html +2 -2
- package/components/textfield/textfield.card.html +2 -2
- package/docs/benchmark-rubric.md +46 -0
- package/docs/ci-cd.md +17 -11
- package/docs/consumer-grant.md +37 -0
- package/docs/consuming.md +45 -16
- package/docs/contrast-report.md +91 -103
- package/docs/conventions.md +12 -9
- package/docs/decisions.md +33 -10
- package/docs/deploy.md +1 -1
- package/docs/design-styles.md +26 -8
- package/docs/figma.md +3 -3
- package/docs/live-hub.md +5 -3
- package/docs/products.md +13 -11
- package/docs/quality-gates.md +35 -21
- package/docs/release-notes.md +13 -3
- package/docs/status/assets/favicon.svg +5 -0
- package/docs/status/assets/status-legacy.css +399 -0
- package/docs/status/assets/status-legacy.js +505 -0
- package/docs/status/assets/status.css +644 -0
- package/docs/status/assets/status.js +1308 -0
- package/docs/status/data/status-feed.json +1 -0
- package/docs/status/data/task/TASK-REL-001.js +1 -0
- package/docs/status/index.html +45 -0
- package/docs/status/roadmap.html +4 -0
- package/docs/status/status-legacy.html +121 -0
- package/docs/storybook.md +5 -4
- package/docs/sync.md +3 -2
- package/docs/tasks/BACKLOG.md +25 -0
- package/docs/tasks/release/TASK-REL-001-launch-1-1-0/spec.md +55 -0
- package/docs/template-schema-v2.md +15 -3
- package/docs/vi/benchmark-rubric.md +46 -0
- package/docs/vi/ci-cd.md +17 -11
- package/docs/vi/consumer-grant.md +37 -0
- package/docs/vi/consuming.md +45 -16
- package/docs/vi/contrast-report.md +94 -106
- package/docs/vi/conventions.md +12 -9
- package/docs/vi/decisions.md +33 -10
- package/docs/vi/deploy.md +1 -1
- package/docs/vi/design-styles.md +26 -8
- package/docs/vi/figma.md +3 -3
- package/docs/vi/live-hub.md +5 -3
- package/docs/vi/products.md +13 -11
- package/docs/vi/quality-gates.md +35 -21
- package/docs/vi/release-notes.md +18 -8
- package/docs/vi/storybook.md +5 -4
- package/docs/vi/sync.md +3 -2
- package/docs/vi/template-schema-v2.md +15 -3
- package/docs/viewer.html +2 -2
- package/fonts/spacegrotesk-var-latin-ext.woff2 +0 -0
- package/fonts/spacegrotesk-var-latin.woff2 +0 -0
- package/fonts/spacegrotesk-var-vietnamese.woff2 +0 -0
- package/guidelines/atomic-view.html +40 -27
- package/guidelines/elements-geometry.html +69 -0
- package/guidelines/elements-variants.html +17 -17
- package/guidelines/type-families.html +16 -10
- package/llms.txt +17 -11
- package/package.json +38 -16
- package/styles.css +1 -0
- package/templates/ai-cluster-demo.html +29 -14
- package/templates/app-shell/support.js +4 -4
- package/templates/article/content-schema.json +6 -0
- package/templates/article/support.js +4 -4
- package/templates/auth/support.js +4 -4
- package/templates/bod-deck/support.js +4 -4
- package/templates/bod-investor-update/support.js +4 -4
- package/templates/bod-memo/support.js +4 -4
- package/templates/bod-minutes/content-schema.json +12 -0
- package/templates/bod-minutes/support.js +4 -4
- package/templates/bod-report/support.js +4 -4
- package/templates/bod-resolution/support.js +4 -4
- package/templates/culture-event-invite/support.js +4 -4
- package/templates/dashboard/support.js +4 -4
- package/templates/delivery-change-note/support.js +4 -4
- package/templates/delivery-kickoff/support.js +4 -4
- package/templates/delivery-qbr-deck/support.js +4 -4
- package/templates/delivery-runbook/content-schema.json +6 -0
- package/templates/delivery-runbook/support.js +4 -4
- package/templates/delivery-status-email/support.js +4 -4
- package/templates/doc-style-guide/DocStyleGuide.dc.html +2 -2
- package/templates/doc-style-guide/support.js +4 -4
- package/templates/doc-suite-index/support.js +4 -4
- package/templates/doc-templates/DocTemplates.dc.html +1 -1
- package/templates/doc-templates/support.js +4 -4
- package/templates/email/support.js +4 -4
- package/templates/email-safe/README.md +17 -4
- package/templates/email-safe/email-launch.html +3 -3
- package/templates/email-safe/email-newsletter.html +1 -1
- package/templates/finance-dunning-email/support.js +4 -4
- package/templates/finance-expense-report/support.js +4 -4
- package/templates/finance-invoice/support.js +4 -4
- package/templates/finance-quote/support.js +4 -4
- package/templates/hr-announcement/support.js +4 -4
- package/templates/hr-interview-kit/content-schema.json +12 -0
- package/templates/hr-interview-kit/support.js +4 -4
- package/templates/hr-offboarding/content-schema.json +12 -0
- package/templates/hr-offboarding/support.js +4 -4
- package/templates/hr-performance-review/content-schema.json +12 -0
- package/templates/hr-performance-review/support.js +4 -4
- package/templates/hr-pip/content-schema.json +12 -0
- package/templates/hr-pip/support.js +4 -4
- package/templates/legal-msa/content-schema.json +16 -0
- package/templates/legal-msa/support.js +4 -4
- package/templates/legal-sow/support.js +4 -4
- package/templates/marketing-campaign-brief/support.js +4 -4
- package/templates/marketing-case-study/support.js +4 -4
- package/templates/marketing-launch/support.js +4 -4
- package/templates/marketing-newsletter/support.js +4 -4
- package/templates/marketing-page/content-schema.json +0 -1
- package/templates/marketing-page/support.js +4 -4
- package/templates/marketing-press-release/support.js +4 -4
- package/templates/marketing-social-kit/support.js +4 -4
- package/templates/playground.html +8 -4
- package/templates/sales-one-pager/support.js +4 -4
- package/templates/sales-proposal-deck/support.js +4 -4
- package/templates/settings/Settings.dc.html +26 -14
- package/templates/settings/content-schema.json +36 -0
- package/templates/settings/support.js +4 -4
- package/templates/slide-deck/support.js +4 -4
- package/templates/team-meeting-agenda/content-schema.json +16 -0
- package/templates/team-meeting-agenda/support.js +4 -4
- package/templates/tech-incident-report/support.js +4 -4
- package/templates/tech-release-notes/support.js +4 -4
- package/templates/tech-retro/content-schema.json +12 -0
- package/templates/tech-retro/support.js +4 -4
- package/templates/tech-rfc/content-schema.json +6 -0
- package/templates/tech-rfc/support.js +4 -4
- package/templates/vn-appointment-transfer/support.js +4 -4
- package/templates/vn-certificate-of-employment/support.js +4 -4
- package/templates/vn-code-of-conduct/support.js +4 -4
- package/templates/vn-compensation-regulation/support.js +4 -4
- package/templates/vn-contract-amendment/support.js +4 -4
- package/templates/vn-contractor-agreement/support.js +4 -4
- package/templates/vn-data-protection-policy/support.js +4 -4
- package/templates/vn-disciplinary-case-file/support.js +4 -4
- package/templates/vn-disciplinary-schedule/content-schema.json +15 -0
- package/templates/vn-disciplinary-schedule/support.js +4 -4
- package/templates/vn-employee-request/support.js +4 -4
- package/templates/vn-exit-handover/support.js +4 -4
- package/templates/vn-foreign-employee-pack/support.js +4 -4
- package/templates/vn-grassroots-democracy/support.js +4 -4
- package/templates/vn-infosec-policy/support.js +4 -4
- package/templates/vn-internal-labor-regulations/support.js +4 -4
- package/templates/vn-internship-agreement/support.js +4 -4
- package/templates/vn-job-description/support.js +4 -4
- package/templates/vn-labor-contract/support.js +4 -4
- package/templates/vn-labour-management-book/content-schema.json +15 -0
- package/templates/vn-labour-management-book/support.js +4 -4
- package/templates/vn-mutual-nda/support.js +4 -4
- package/templates/vn-ndnca-ip/support.js +4 -4
- package/templates/vn-offer-letter/support.js +4 -4
- package/templates/vn-onboarding-checklist/support.js +4 -4
- package/templates/vn-pdpl-consent/support.js +4 -4
- package/templates/vn-performance-evaluation-regulation/support.js +4 -4
- package/templates/vn-performance-review-form/support.js +4 -4
- package/templates/vn-phantom-stock/support.js +4 -4
- package/templates/vn-probation-contract/support.js +4 -4
- package/templates/vn-receipt-acknowledgement/content-schema.json +15 -0
- package/templates/vn-receipt-acknowledgement/support.js +4 -4
- package/templates/vn-remote-work-policy/support.js +4 -4
- package/templates/vn-resignation-letter/support.js +4 -4
- package/templates/vn-salary-scale/content-schema.json +15 -0
- package/templates/vn-salary-scale/support.js +4 -4
- package/templates/vn-sow-appendix/support.js +4 -4
- package/templates/vn-termination-decision/support.js +4 -4
- package/templates/vn-total-rewards-appendix/support.js +4 -4
- package/templates/vn-training-commitment/support.js +4 -4
- package/templates/vn-travel-expense-policy/support.js +4 -4
- package/tokens/element-seeds.json +112 -0
- package/tokens/elements.css +274 -187
- package/tokens/fonts.css +12 -3
- package/tokens/native/CSTokens.kt +84 -68
- package/tokens/native/CSTokens.swift +84 -68
- package/tokens/native/cs_tokens.dart +84 -68
- package/tokens/provenance.json +9 -9
- package/tokens/styles.css +15 -0
- package/tokens/tokens.dtcg.json +258 -233
- package/tokens/tokens.js +168 -167
- package/tokens/tokens.json +167 -166
- package/tokens/typography.css +9 -1
- package/ui_kits/status-hub/README.md +1 -2
- package/ui_kits/status-hub/index.html +2 -2
- package/ui_kits/status-hub/settings.html +6 -3
- package/ui_kits/website/chat.html +2 -2
- package/ui_kits/website/index.html +2 -2
- package/ui_kits/status-hub/identity-lab.html +0 -134
package/_ds_bundle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @ds-bundle: {"format":4,"namespace":"CyberSkillDesignSystem_847b3c","components":[{"name":"AIDisclosureBadge","sourcePath":"components/ai/AIDisclosureBadge.jsx"},{"name":"ChatMessage","sourcePath":"components/ai/ChatMessage.jsx"},{"name":"CitationList","sourcePath":"components/ai/CitationList.jsx"},{"name":"ConfidenceMeter","sourcePath":"components/ai/ConfidenceMeter.jsx"},{"name":"HumanReviewGate","sourcePath":"components/ai/HumanReviewGate.jsx"},{"name":"PromptInput","sourcePath":"components/ai/PromptInput.jsx"},{"name":"PromptSuggestions","sourcePath":"components/ai/PromptSuggestions.jsx"},{"name":"TypingIndicator","sourcePath":"components/ai/TypingIndicator.jsx"},{"name":"LumiAvatar","sourcePath":"components/brand/LumiAvatar.jsx"},{"name":"Button","sourcePath":"components/button/Button.jsx"},{"name":"ButtonGroup","sourcePath":"components/button/ButtonGroup.jsx"},{"name":"FloatingActionButton","sourcePath":"components/button/FloatingActionButton.jsx"},{"name":"Accordion","sourcePath":"components/data/Accordion.jsx"},{"name":"Avatar","sourcePath":"components/data/Avatar.jsx"},{"name":"AvatarGroup","sourcePath":"components/data/Avatar.jsx"},{"name":"Card","sourcePath":"components/data/Card.jsx"},{"name":"CardHeader","sourcePath":"components/data/Card.jsx"},{"name":"CardBody","sourcePath":"components/data/Card.jsx"},{"name":"CardFooter","sourcePath":"components/data/Card.jsx"},{"name":"Carousel","sourcePath":"components/data/Carousel.jsx"},{"name":"Chart","sourcePath":"components/data/Chart.jsx"},{"name":"CodeBlock","sourcePath":"components/data/CodeBlock.jsx"},{"name":"Comment","sourcePath":"components/data/Comment.jsx"},{"name":"DescriptionList","sourcePath":"components/data/DescriptionList.jsx"},{"name":"Divider","sourcePath":"components/data/Divider.jsx"},{"name":"Image","sourcePath":"components/data/Image.jsx"},{"name":"Kbd","sourcePath":"components/data/Kbd.jsx"},{"name":"List","sourcePath":"components/data/List.jsx"},{"name":"ListItem","sourcePath":"components/data/List.jsx"},{"name":"Masonry","sourcePath":"components/data/Masonry.jsx"},{"name":"QRCode","sourcePath":"components/data/QRCode.jsx"},{"name":"Sortable","sourcePath":"components/data/Sortable.jsx"},{"name":"Splitter","sourcePath":"components/data/Splitter.jsx"},{"name":"Stat","sourcePath":"components/data/Stat.jsx"},{"name":"Terminal","sourcePath":"components/data/Terminal.jsx"},{"name":"Timeline","sourcePath":"components/data/Timeline.jsx"},{"name":"Tooltip","sourcePath":"components/data/Tooltip.jsx"},{"name":"Tree","sourcePath":"components/data/Tree.jsx"},{"name":"Watermark","sourcePath":"components/data/Watermark.jsx"},{"name":"DataGrid","sourcePath":"components/datatable/DataGrid.jsx"},{"name":"DataTable","sourcePath":"components/datatable/DataTable.jsx"},{"name":"TreeTable","sourcePath":"components/datatable/TreeTable.jsx"},{"name":"Dialog","sourcePath":"components/dialog/Dialog.jsx"},{"name":"Alert","sourcePath":"components/feedback/Alert.jsx"},{"name":"Badge","sourcePath":"components/feedback/Badge.jsx"},{"name":"EmptyState","sourcePath":"components/feedback/EmptyState.jsx"},{"name":"ProgressBar","sourcePath":"components/feedback/ProgressBar.jsx"},{"name":"Result","sourcePath":"components/feedback/Result.jsx"},{"name":"Skeleton","sourcePath":"components/feedback/Skeleton.jsx"},{"name":"Spinner","sourcePath":"components/feedback/Spinner.jsx"},{"name":"StatusIndicator","sourcePath":"components/feedback/StatusIndicator.jsx"},{"name":"Tag","sourcePath":"components/feedback/Tag.jsx"},{"name":"ToastStack","sourcePath":"components/feedback/Toast.jsx"},{"name":"Toast","sourcePath":"components/feedback/Toast.jsx"},{"name":"Calendar","sourcePath":"components/forms/Calendar.jsx"},{"name":"Cascader","sourcePath":"components/forms/Cascader.jsx"},{"name":"Checkbox","sourcePath":"components/forms/Checkbox.jsx"},{"name":"ColorPicker","sourcePath":"components/forms/ColorPicker.jsx"},{"name":"Combobox","sourcePath":"components/forms/Combobox.jsx"},{"name":"DatePicker","sourcePath":"components/forms/DatePicker.jsx"},{"name":"Editor","sourcePath":"components/forms/Editor.jsx"},{"name":"FileUpload","sourcePath":"components/forms/FileUpload.jsx"},{"name":"Form","sourcePath":"components/forms/Form.jsx"},{"name":"FormField","sourcePath":"components/forms/Form.jsx"},{"name":"FormFieldArray","sourcePath":"components/forms/Form.jsx"},{"name":"FormWizard","sourcePath":"components/forms/Form.jsx"},{"name":"InlineEdit","sourcePath":"components/forms/InlineEdit.jsx"},{"name":"InputGroup","sourcePath":"components/forms/InputGroup.jsx"},{"name":"InputOTP","sourcePath":"components/forms/InputOTP.jsx"},{"name":"Mentions","sourcePath":"components/forms/Mentions.jsx"},{"name":"NumberField","sourcePath":"components/forms/NumberField.jsx"},{"name":"Radio","sourcePath":"components/forms/RadioGroup.jsx"},{"name":"RadioGroup","sourcePath":"components/forms/RadioGroup.jsx"},{"name":"Rating","sourcePath":"components/forms/Rating.jsx"},{"name":"SearchField","sourcePath":"components/forms/SearchField.jsx"},{"name":"SegmentedControl","sourcePath":"components/forms/SegmentedControl.jsx"},{"name":"Select","sourcePath":"components/forms/Select.jsx"},{"name":"Slider","sourcePath":"components/forms/Slider.jsx"},{"name":"Switch","sourcePath":"components/forms/Switch.jsx"},{"name":"TagInput","sourcePath":"components/forms/TagInput.jsx"},{"name":"Textarea","sourcePath":"components/forms/Textarea.jsx"},{"name":"TimePicker","sourcePath":"components/forms/TimePicker.jsx"},{"name":"Toggle","sourcePath":"components/forms/Toggle.jsx"},{"name":"Transfer","sourcePath":"components/forms/Transfer.jsx"},{"name":"TreeSelect","sourcePath":"components/forms/TreeSelect.jsx"},{"name":"CS_ICONS","sourcePath":"components/icon/Icon.jsx"},{"name":"Icon","sourcePath":"components/icon/Icon.jsx"},{"name":"Logo","sourcePath":"components/logo/Logo.jsx"},{"name":"CS_LOGO_VIEWBOX","sourcePath":"components/logo/logo-data.js"},{"name":"CS_LOGO_MARK_INNER","sourcePath":"components/logo/logo-data.js"},{"name":"Anchor","sourcePath":"components/navigation/Anchor.jsx"},{"name":"BackTop","sourcePath":"components/navigation/BackTop.jsx"},{"name":"Breadcrumb","sourcePath":"components/navigation/Breadcrumb.jsx"},{"name":"CommandPalette","sourcePath":"components/navigation/CommandPalette.jsx"},{"name":"Dock","sourcePath":"components/navigation/Dock.jsx"},{"name":"HotKeys","sourcePath":"components/navigation/HotKeys.jsx"},{"name":"Link","sourcePath":"components/navigation/Link.jsx"},{"name":"Menu","sourcePath":"components/navigation/Menu.jsx"},{"name":"MenuItem","sourcePath":"components/navigation/Menu.jsx"},{"name":"Menubar","sourcePath":"components/navigation/Menubar.jsx"},{"name":"NavigationMenu","sourcePath":"components/navigation/NavigationMenu.jsx"},{"name":"Pagination","sourcePath":"components/navigation/Pagination.jsx"},{"name":"Sidebar","sourcePath":"components/navigation/Sidebar.jsx"},{"name":"NavItem","sourcePath":"components/navigation/Sidebar.jsx"},{"name":"Steps","sourcePath":"components/navigation/Steps.jsx"},{"name":"Tabs","sourcePath":"components/navigation/Tabs.jsx"},{"name":"Tab","sourcePath":"components/navigation/Tabs.jsx"},{"name":"Toolbar","sourcePath":"components/navigation/Toolbar.jsx"},{"name":"ContextMenu","sourcePath":"components/overlays/ContextMenu.jsx"},{"name":"Drawer","sourcePath":"components/overlays/Drawer.jsx"},{"name":"HoverCard","sourcePath":"components/overlays/HoverCard.jsx"},{"name":"Popconfirm","sourcePath":"components/overlays/Popconfirm.jsx"},{"name":"Popover","sourcePath":"components/overlays/Popover.jsx"},{"name":"Tour","sourcePath":"components/overlays/Tour.jsx"},{"name":"TextField","sourcePath":"components/textfield/TextField.jsx"}],"sourceHashes":{"components/_i18n/i18n.js":"c6c51a65bd79","components/_i18n/strings.js":"e1eb94933e11","components/_utils/cx.js":"ad6a747ea116","components/ai/AIDisclosureBadge.jsx":"4c8954aa2d79","components/ai/ChatMessage.jsx":"84076f3488f2","components/ai/CitationList.jsx":"4d12ef868ff3","components/ai/ConfidenceMeter.jsx":"24e43b7f7a47","components/ai/HumanReviewGate.jsx":"922b278dca5c","components/ai/PromptInput.jsx":"7634643dafa5","components/ai/PromptSuggestions.jsx":"02d64117ecfa","components/ai/TypingIndicator.jsx":"149e3a0c7ef8","components/brand/LumiAvatar.jsx":"b6444360cf80","components/button/Button.jsx":"6d902a925eed","components/button/ButtonGroup.jsx":"1a1481f6fb93","components/button/FloatingActionButton.jsx":"ce49fe4129a3","components/data/Accordion.jsx":"fed81278cefd","components/data/Avatar.jsx":"88c8f59334e6","components/data/Card.jsx":"96e1f9ef44a9","components/data/Carousel.jsx":"caf09a766c42","components/data/Chart.jsx":"1953e9fef120","components/data/CodeBlock.jsx":"04e0bd2507e2","components/data/Comment.jsx":"81469a910d80","components/data/DescriptionList.jsx":"ce50d72546bb","components/data/Divider.jsx":"2d08b4a7b18e","components/data/Image.jsx":"da5c7d4c69af","components/data/Kbd.jsx":"3b3d867cbdd8","components/data/List.jsx":"5c221b19efe0","components/data/Masonry.jsx":"a65508731d79","components/data/QRCode.jsx":"6acaf577a7fc","components/data/Sortable.jsx":"315b50256128","components/data/Splitter.jsx":"d231064601e9","components/data/Stat.jsx":"35734a801a71","components/data/Terminal.jsx":"3a3cd4477814","components/data/Timeline.jsx":"22058a781a98","components/data/Tooltip.jsx":"4d027aff5559","components/data/Tree.jsx":"9097456de50f","components/data/Watermark.jsx":"4be0b6230d47","components/data/qr-encode.js":"14e8de77df5f","components/datatable/DataGrid.jsx":"e4aa4a47d05e","components/datatable/DataTable.jsx":"fbfad5570592","components/datatable/TreeTable.jsx":"597c35135ebb","components/dialog/Dialog.jsx":"7af51ee28ab6","components/feedback/Alert.jsx":"0bbe4e5f467a","components/feedback/Badge.jsx":"e691ae1634f8","components/feedback/EmptyState.jsx":"9a9c00523cec","components/feedback/ProgressBar.jsx":"1a66335d5d9e","components/feedback/Result.jsx":"c168f8dcb009","components/feedback/Skeleton.jsx":"86ee345cb412","components/feedback/Spinner.jsx":"cad2ed4008a6","components/feedback/StatusIndicator.jsx":"d27a5fc3db2a","components/feedback/Tag.jsx":"13d288da9f38","components/feedback/Toast.jsx":"38cc9a82ede9","components/forms/Calendar.jsx":"8a66cbe766af","components/forms/Cascader.jsx":"a7c9c504db28","components/forms/Checkbox.jsx":"2badb7b3b72b","components/forms/ColorPicker.jsx":"d04db0ee7678","components/forms/Combobox.jsx":"3f2fb4d28922","components/forms/DatePicker.jsx":"7a6c18e1e635","components/forms/Editor.jsx":"d7bed6e52cff","components/forms/FileUpload.jsx":"e8031a109093","components/forms/Form.jsx":"f7952da4b73a","components/forms/InlineEdit.jsx":"5ffb40598769","components/forms/InputGroup.jsx":"43809b604420","components/forms/InputOTP.jsx":"c3a5d02ffebc","components/forms/Mentions.jsx":"04bc4b5a4ace","components/forms/NumberField.jsx":"2233bd2b0f7c","components/forms/RadioGroup.jsx":"1a64f7600e01","components/forms/Rating.jsx":"06d345ecc5f4","components/forms/SearchField.jsx":"2a12c65900ec","components/forms/SegmentedControl.jsx":"13ebcf11f539","components/forms/Select.jsx":"1b5ba905b339","components/forms/Slider.jsx":"69aa1a5f1af8","components/forms/Switch.jsx":"0b37cfa41979","components/forms/TagInput.jsx":"2cfd1922e3e7","components/forms/Textarea.jsx":"cf244fee0e37","components/forms/TimePicker.jsx":"165192c8760c","components/forms/Toggle.jsx":"338453a34669","components/forms/Transfer.jsx":"dd0c02d1014e","components/forms/TreeSelect.jsx":"a5b1b91d1d6a","components/icon/Icon.jsx":"379dc6de903e","components/logo/Logo.jsx":"9be5058d4e86","components/logo/logo-data.js":"f1a251a50c8f","components/navigation/Anchor.jsx":"491fb330e718","components/navigation/BackTop.jsx":"5cac0081fc20","components/navigation/Breadcrumb.jsx":"45636f3b0a51","components/navigation/CommandPalette.jsx":"2b5b30906b8b","components/navigation/Dock.jsx":"3073e2870c65","components/navigation/HotKeys.jsx":"f0f707a3335d","components/navigation/Link.jsx":"d4fe3fcffd2c","components/navigation/Menu.jsx":"7f317d1f0617","components/navigation/Menubar.jsx":"1aa64f59891e","components/navigation/NavigationMenu.jsx":"020279fd7f79","components/navigation/Pagination.jsx":"a1fc19bfd104","components/navigation/Sidebar.jsx":"d578b013ad33","components/navigation/Steps.jsx":"85cb20bd45da","components/navigation/Tabs.jsx":"5d5921da1644","components/navigation/Toolbar.jsx":"9727d7bdbc5f","components/overlays/ContextMenu.jsx":"e7e3386d89ac","components/overlays/Drawer.jsx":"dc309f725369","components/overlays/HoverCard.jsx":"5cfabde80960","components/overlays/Popconfirm.jsx":"029ff3a9f510","components/overlays/Popover.jsx":"44afe3e63862","components/overlays/Tour.jsx":"9901ee649da0","components/textfield/TextField.jsx":"c06bd9729f20","image-slot.js":"0394ad34f685","tokens/tokens.js":"589bd27e752d","ui_kits/status-hub/StatusHub.jsx":"88dfd93e1664","ui_kits/status-hub/data.js":"664bbbb30cb3","ui_kits/website/Website.jsx":"c3a0938d9279","ui_kits/website/copy.js":"9d42c52c17cb"},"inlinedExternals":[],"unexposedExports":[{"name":"cx","sourcePath":"components/_utils/cx.js"},{"name":"formatCurrency","sourcePath":"components/_i18n/i18n.js"},{"name":"formatDate","sourcePath":"components/_i18n/i18n.js"},{"name":"formatNumber","sourcePath":"components/_i18n/i18n.js"},{"name":"getPath","sourcePath":"components/forms/Form.jsx"},{"name":"makeT","sourcePath":"components/_i18n/i18n.js"},{"name":"monthName","sourcePath":"components/_i18n/i18n.js"},{"name":"qrMatrix","sourcePath":"components/data/qr-encode.js"},{"name":"resolveLang","sourcePath":"components/_i18n/i18n.js"},{"name":"setPath","sourcePath":"components/forms/Form.jsx"},{"name":"strings","sourcePath":"components/_i18n/strings.js"},{"name":"tokens","sourcePath":"tokens/tokens.js"},{"name":"tr","sourcePath":"components/_i18n/i18n.js"},{"name":"useLang","sourcePath":"components/_i18n/i18n.js"}]} */
|
|
1
|
+
/* @ds-bundle: {"format":4,"namespace":"CyberSkillDesignSystem_847b3c","components":[{"name":"AIDisclosureBadge","sourcePath":"components/ai/AIDisclosureBadge.jsx"},{"name":"ChatMessage","sourcePath":"components/ai/ChatMessage.jsx"},{"name":"CitationList","sourcePath":"components/ai/CitationList.jsx"},{"name":"ConfidenceMeter","sourcePath":"components/ai/ConfidenceMeter.jsx"},{"name":"HumanReviewGate","sourcePath":"components/ai/HumanReviewGate.jsx"},{"name":"PromptInput","sourcePath":"components/ai/PromptInput.jsx"},{"name":"PromptSuggestions","sourcePath":"components/ai/PromptSuggestions.jsx"},{"name":"TypingIndicator","sourcePath":"components/ai/TypingIndicator.jsx"},{"name":"LumiAvatar","sourcePath":"components/brand/LumiAvatar.jsx"},{"name":"Button","sourcePath":"components/button/Button.jsx"},{"name":"ButtonGroup","sourcePath":"components/button/ButtonGroup.jsx"},{"name":"FloatingActionButton","sourcePath":"components/button/FloatingActionButton.jsx"},{"name":"Accordion","sourcePath":"components/data/Accordion.jsx"},{"name":"AspectRatio","sourcePath":"components/data/AspectRatio.jsx"},{"name":"Avatar","sourcePath":"components/data/Avatar.jsx"},{"name":"AvatarGroup","sourcePath":"components/data/Avatar.jsx"},{"name":"Card","sourcePath":"components/data/Card.jsx"},{"name":"CardHeader","sourcePath":"components/data/Card.jsx"},{"name":"CardBody","sourcePath":"components/data/Card.jsx"},{"name":"CardFooter","sourcePath":"components/data/Card.jsx"},{"name":"Carousel","sourcePath":"components/data/Carousel.jsx"},{"name":"Chart","sourcePath":"components/data/Chart.jsx"},{"name":"CodeBlock","sourcePath":"components/data/CodeBlock.jsx"},{"name":"Collapsible","sourcePath":"components/data/Collapsible.jsx"},{"name":"Comment","sourcePath":"components/data/Comment.jsx"},{"name":"DescriptionList","sourcePath":"components/data/DescriptionList.jsx"},{"name":"Divider","sourcePath":"components/data/Divider.jsx"},{"name":"Image","sourcePath":"components/data/Image.jsx"},{"name":"Item","sourcePath":"components/data/Item.jsx"},{"name":"Kbd","sourcePath":"components/data/Kbd.jsx"},{"name":"List","sourcePath":"components/data/List.jsx"},{"name":"ListItem","sourcePath":"components/data/List.jsx"},{"name":"Masonry","sourcePath":"components/data/Masonry.jsx"},{"name":"QRCode","sourcePath":"components/data/QRCode.jsx"},{"name":"ScrollArea","sourcePath":"components/data/ScrollArea.jsx"},{"name":"Sortable","sourcePath":"components/data/Sortable.jsx"},{"name":"Splitter","sourcePath":"components/data/Splitter.jsx"},{"name":"Stat","sourcePath":"components/data/Stat.jsx"},{"name":"Terminal","sourcePath":"components/data/Terminal.jsx"},{"name":"Timeline","sourcePath":"components/data/Timeline.jsx"},{"name":"Tooltip","sourcePath":"components/data/Tooltip.jsx"},{"name":"Tree","sourcePath":"components/data/Tree.jsx"},{"name":"Watermark","sourcePath":"components/data/Watermark.jsx"},{"name":"DataGrid","sourcePath":"components/datatable/DataGrid.jsx"},{"name":"DataTable","sourcePath":"components/datatable/DataTable.jsx"},{"name":"TreeTable","sourcePath":"components/datatable/TreeTable.jsx"},{"name":"Dialog","sourcePath":"components/dialog/Dialog.jsx"},{"name":"Alert","sourcePath":"components/feedback/Alert.jsx"},{"name":"Badge","sourcePath":"components/feedback/Badge.jsx"},{"name":"EmptyState","sourcePath":"components/feedback/EmptyState.jsx"},{"name":"ProgressBar","sourcePath":"components/feedback/ProgressBar.jsx"},{"name":"Result","sourcePath":"components/feedback/Result.jsx"},{"name":"Skeleton","sourcePath":"components/feedback/Skeleton.jsx"},{"name":"Spinner","sourcePath":"components/feedback/Spinner.jsx"},{"name":"StatusIndicator","sourcePath":"components/feedback/StatusIndicator.jsx"},{"name":"Tag","sourcePath":"components/feedback/Tag.jsx"},{"name":"ToastStack","sourcePath":"components/feedback/Toast.jsx"},{"name":"Toast","sourcePath":"components/feedback/Toast.jsx"},{"name":"Calendar","sourcePath":"components/forms/Calendar.jsx"},{"name":"Cascader","sourcePath":"components/forms/Cascader.jsx"},{"name":"Checkbox","sourcePath":"components/forms/Checkbox.jsx"},{"name":"ColorPicker","sourcePath":"components/forms/ColorPicker.jsx"},{"name":"Combobox","sourcePath":"components/forms/Combobox.jsx"},{"name":"DatePicker","sourcePath":"components/forms/DatePicker.jsx"},{"name":"Editor","sourcePath":"components/forms/Editor.jsx"},{"name":"FileUpload","sourcePath":"components/forms/FileUpload.jsx"},{"name":"Form","sourcePath":"components/forms/Form.jsx"},{"name":"FormField","sourcePath":"components/forms/Form.jsx"},{"name":"FormFieldArray","sourcePath":"components/forms/Form.jsx"},{"name":"FormWizard","sourcePath":"components/forms/Form.jsx"},{"name":"InlineEdit","sourcePath":"components/forms/InlineEdit.jsx"},{"name":"InputGroup","sourcePath":"components/forms/InputGroup.jsx"},{"name":"InputOTP","sourcePath":"components/forms/InputOTP.jsx"},{"name":"Mentions","sourcePath":"components/forms/Mentions.jsx"},{"name":"NativeSelect","sourcePath":"components/forms/NativeSelect.jsx"},{"name":"NumberField","sourcePath":"components/forms/NumberField.jsx"},{"name":"Radio","sourcePath":"components/forms/RadioGroup.jsx"},{"name":"RadioGroup","sourcePath":"components/forms/RadioGroup.jsx"},{"name":"Rating","sourcePath":"components/forms/Rating.jsx"},{"name":"SearchField","sourcePath":"components/forms/SearchField.jsx"},{"name":"SegmentedControl","sourcePath":"components/forms/SegmentedControl.jsx"},{"name":"Select","sourcePath":"components/forms/Select.jsx"},{"name":"Slider","sourcePath":"components/forms/Slider.jsx"},{"name":"Switch","sourcePath":"components/forms/Switch.jsx"},{"name":"TagInput","sourcePath":"components/forms/TagInput.jsx"},{"name":"Textarea","sourcePath":"components/forms/Textarea.jsx"},{"name":"TimePicker","sourcePath":"components/forms/TimePicker.jsx"},{"name":"Toggle","sourcePath":"components/forms/Toggle.jsx"},{"name":"Transfer","sourcePath":"components/forms/Transfer.jsx"},{"name":"TreeSelect","sourcePath":"components/forms/TreeSelect.jsx"},{"name":"CS_ICONS","sourcePath":"components/icon/Icon.jsx"},{"name":"Icon","sourcePath":"components/icon/Icon.jsx"},{"name":"Logo","sourcePath":"components/logo/Logo.jsx"},{"name":"CS_LOGO_VIEWBOX","sourcePath":"components/logo/logo-data.js"},{"name":"CS_LOGO_MARK_INNER","sourcePath":"components/logo/logo-data.js"},{"name":"Anchor","sourcePath":"components/navigation/Anchor.jsx"},{"name":"BackTop","sourcePath":"components/navigation/BackTop.jsx"},{"name":"Breadcrumb","sourcePath":"components/navigation/Breadcrumb.jsx"},{"name":"CommandPalette","sourcePath":"components/navigation/CommandPalette.jsx"},{"name":"Dock","sourcePath":"components/navigation/Dock.jsx"},{"name":"HotKeys","sourcePath":"components/navigation/HotKeys.jsx"},{"name":"Link","sourcePath":"components/navigation/Link.jsx"},{"name":"Menu","sourcePath":"components/navigation/Menu.jsx"},{"name":"MenuItem","sourcePath":"components/navigation/Menu.jsx"},{"name":"Menubar","sourcePath":"components/navigation/Menubar.jsx"},{"name":"NavigationMenu","sourcePath":"components/navigation/NavigationMenu.jsx"},{"name":"Pagination","sourcePath":"components/navigation/Pagination.jsx"},{"name":"Sidebar","sourcePath":"components/navigation/Sidebar.jsx"},{"name":"NavItem","sourcePath":"components/navigation/Sidebar.jsx"},{"name":"Steps","sourcePath":"components/navigation/Steps.jsx"},{"name":"Tabs","sourcePath":"components/navigation/Tabs.jsx"},{"name":"Tab","sourcePath":"components/navigation/Tabs.jsx"},{"name":"Toolbar","sourcePath":"components/navigation/Toolbar.jsx"},{"name":"AlertDialog","sourcePath":"components/overlays/AlertDialog.jsx"},{"name":"ContextMenu","sourcePath":"components/overlays/ContextMenu.jsx"},{"name":"Drawer","sourcePath":"components/overlays/Drawer.jsx"},{"name":"HoverCard","sourcePath":"components/overlays/HoverCard.jsx"},{"name":"Popconfirm","sourcePath":"components/overlays/Popconfirm.jsx"},{"name":"Popover","sourcePath":"components/overlays/Popover.jsx"},{"name":"Tour","sourcePath":"components/overlays/Tour.jsx"},{"name":"TextField","sourcePath":"components/textfield/TextField.jsx"}],"sourceHashes":{"components/_i18n/i18n.js":"c6c51a65bd79","components/_i18n/strings.js":"73bc5837fc8e","components/_utils/cx.js":"ad6a747ea116","components/ai/AIDisclosureBadge.jsx":"4c8954aa2d79","components/ai/ChatMessage.jsx":"84076f3488f2","components/ai/CitationList.jsx":"4d12ef868ff3","components/ai/ConfidenceMeter.jsx":"24e43b7f7a47","components/ai/HumanReviewGate.jsx":"922b278dca5c","components/ai/PromptInput.jsx":"7634643dafa5","components/ai/PromptSuggestions.jsx":"02d64117ecfa","components/ai/TypingIndicator.jsx":"149e3a0c7ef8","components/brand/LumiAvatar.jsx":"b6444360cf80","components/button/Button.jsx":"6d902a925eed","components/button/ButtonGroup.jsx":"1a1481f6fb93","components/button/FloatingActionButton.jsx":"ce49fe4129a3","components/data/Accordion.jsx":"fed81278cefd","components/data/AspectRatio.jsx":"6c1e8703891e","components/data/Avatar.jsx":"88c8f59334e6","components/data/Card.jsx":"96e1f9ef44a9","components/data/Carousel.jsx":"caf09a766c42","components/data/Chart.jsx":"1953e9fef120","components/data/CodeBlock.jsx":"04e0bd2507e2","components/data/Collapsible.jsx":"3d961fef83f8","components/data/Comment.jsx":"81469a910d80","components/data/DescriptionList.jsx":"ce50d72546bb","components/data/Divider.jsx":"2d08b4a7b18e","components/data/Image.jsx":"da5c7d4c69af","components/data/Item.jsx":"7e1ac68c4e96","components/data/Kbd.jsx":"3b3d867cbdd8","components/data/List.jsx":"5c221b19efe0","components/data/Masonry.jsx":"a65508731d79","components/data/QRCode.jsx":"6acaf577a7fc","components/data/ScrollArea.jsx":"c2e2ec304b1e","components/data/Sortable.jsx":"315b50256128","components/data/Splitter.jsx":"d231064601e9","components/data/Stat.jsx":"35734a801a71","components/data/Terminal.jsx":"3a3cd4477814","components/data/Timeline.jsx":"22058a781a98","components/data/Tooltip.jsx":"4d027aff5559","components/data/Tree.jsx":"9097456de50f","components/data/Watermark.jsx":"4be0b6230d47","components/data/qr-encode.js":"14e8de77df5f","components/datatable/DataGrid.jsx":"e4aa4a47d05e","components/datatable/DataTable.jsx":"fbfad5570592","components/datatable/TreeTable.jsx":"597c35135ebb","components/dialog/Dialog.jsx":"7af51ee28ab6","components/feedback/Alert.jsx":"0bbe4e5f467a","components/feedback/Badge.jsx":"e691ae1634f8","components/feedback/EmptyState.jsx":"9a9c00523cec","components/feedback/ProgressBar.jsx":"1a66335d5d9e","components/feedback/Result.jsx":"c168f8dcb009","components/feedback/Skeleton.jsx":"86ee345cb412","components/feedback/Spinner.jsx":"cad2ed4008a6","components/feedback/StatusIndicator.jsx":"d27a5fc3db2a","components/feedback/Tag.jsx":"13d288da9f38","components/feedback/Toast.jsx":"38cc9a82ede9","components/forms/Calendar.jsx":"8a66cbe766af","components/forms/Cascader.jsx":"ada31ccaf716","components/forms/Checkbox.jsx":"2badb7b3b72b","components/forms/ColorPicker.jsx":"d04db0ee7678","components/forms/Combobox.jsx":"3f2fb4d28922","components/forms/DatePicker.jsx":"7a6c18e1e635","components/forms/Editor.jsx":"d7bed6e52cff","components/forms/FileUpload.jsx":"e8031a109093","components/forms/Form.jsx":"f7952da4b73a","components/forms/InlineEdit.jsx":"5ffb40598769","components/forms/InputGroup.jsx":"06d6c22420d0","components/forms/InputOTP.jsx":"c3a5d02ffebc","components/forms/Mentions.jsx":"04bc4b5a4ace","components/forms/NativeSelect.jsx":"d6f6d300f75d","components/forms/NumberField.jsx":"44975fd25721","components/forms/RadioGroup.jsx":"1a64f7600e01","components/forms/Rating.jsx":"06d345ecc5f4","components/forms/SearchField.jsx":"2a12c65900ec","components/forms/SegmentedControl.jsx":"1f143c62fb56","components/forms/Select.jsx":"1b5ba905b339","components/forms/Slider.jsx":"69aa1a5f1af8","components/forms/Switch.jsx":"0b37cfa41979","components/forms/TagInput.jsx":"2d1554422097","components/forms/Textarea.jsx":"cf244fee0e37","components/forms/TimePicker.jsx":"165192c8760c","components/forms/Toggle.jsx":"338453a34669","components/forms/Transfer.jsx":"dd0c02d1014e","components/forms/TreeSelect.jsx":"a5b1b91d1d6a","components/icon/Icon.jsx":"379dc6de903e","components/logo/Logo.jsx":"445c5f5fbd40","components/logo/logo-data.js":"f1a251a50c8f","components/navigation/Anchor.jsx":"491fb330e718","components/navigation/BackTop.jsx":"5cac0081fc20","components/navigation/Breadcrumb.jsx":"45636f3b0a51","components/navigation/CommandPalette.jsx":"2b5b30906b8b","components/navigation/Dock.jsx":"3073e2870c65","components/navigation/HotKeys.jsx":"f0f707a3335d","components/navigation/Link.jsx":"d4fe3fcffd2c","components/navigation/Menu.jsx":"6786788f13f8","components/navigation/Menubar.jsx":"1aa64f59891e","components/navigation/NavigationMenu.jsx":"020279fd7f79","components/navigation/Pagination.jsx":"a1fc19bfd104","components/navigation/Sidebar.jsx":"d578b013ad33","components/navigation/Steps.jsx":"85cb20bd45da","components/navigation/Tabs.jsx":"5d5921da1644","components/navigation/Toolbar.jsx":"9727d7bdbc5f","components/overlays/AlertDialog.jsx":"2ed7fbde4a5a","components/overlays/ContextMenu.jsx":"e7e3386d89ac","components/overlays/Drawer.jsx":"8227143abbfa","components/overlays/HoverCard.jsx":"5cfabde80960","components/overlays/Popconfirm.jsx":"55f08dba5f38","components/overlays/Popover.jsx":"1582f7fa5533","components/overlays/Tour.jsx":"9901ee649da0","components/textfield/TextField.jsx":"c06bd9729f20","image-slot.js":"0394ad34f685","tokens/tokens.js":"abd3dd3a5aaf","ui_kits/status-hub/StatusHub.jsx":"88dfd93e1664","ui_kits/status-hub/data.js":"664bbbb30cb3","ui_kits/website/Website.jsx":"c3a0938d9279","ui_kits/website/copy.js":"9d42c52c17cb"},"inlinedExternals":[],"unexposedExports":[{"name":"cx","sourcePath":"components/_utils/cx.js"},{"name":"formatCurrency","sourcePath":"components/_i18n/i18n.js"},{"name":"formatDate","sourcePath":"components/_i18n/i18n.js"},{"name":"formatNumber","sourcePath":"components/_i18n/i18n.js"},{"name":"getPath","sourcePath":"components/forms/Form.jsx"},{"name":"makeT","sourcePath":"components/_i18n/i18n.js"},{"name":"monthName","sourcePath":"components/_i18n/i18n.js"},{"name":"qrMatrix","sourcePath":"components/data/qr-encode.js"},{"name":"resolveLang","sourcePath":"components/_i18n/i18n.js"},{"name":"setPath","sourcePath":"components/forms/Form.jsx"},{"name":"strings","sourcePath":"components/_i18n/strings.js"},{"name":"tokens","sourcePath":"tokens/tokens.js"},{"name":"tr","sourcePath":"components/_i18n/i18n.js"},{"name":"useLang","sourcePath":"components/_i18n/i18n.js"}]} */
|
|
2
2
|
|
|
3
3
|
(() => {
|
|
4
4
|
|
|
@@ -28,8 +28,8 @@ const strings = {
|
|
|
28
28
|
vi: { placeholder: "Tìm kiếm…", clear: "Xóa tìm kiếm" }
|
|
29
29
|
},
|
|
30
30
|
NumberField: {
|
|
31
|
-
en: { decrease: "Decrease", increase: "Increase" },
|
|
32
|
-
vi: { decrease: "Giảm", increase: "Tăng" }
|
|
31
|
+
en: { decrease: "Decrease", increase: "Increase", value: "Value" },
|
|
32
|
+
vi: { decrease: "Giảm", increase: "Tăng", value: "Giá trị" }
|
|
33
33
|
},
|
|
34
34
|
FileUpload: {
|
|
35
35
|
en: { title: "Drop files here or browse", hint: "PNG, JPG, or PDF up to 10MB" },
|
|
@@ -39,6 +39,10 @@ const strings = {
|
|
|
39
39
|
en: { close: "Close", confirm: "Confirm", cancel: "Cancel" },
|
|
40
40
|
vi: { close: "Đóng", confirm: "Xác nhận", cancel: "Hủy" }
|
|
41
41
|
},
|
|
42
|
+
AlertDialog: {
|
|
43
|
+
en: { confirm: "Confirm", cancel: "Cancel" },
|
|
44
|
+
vi: { confirm: "Xác nhận", cancel: "Hủy" }
|
|
45
|
+
},
|
|
42
46
|
Drawer: {
|
|
43
47
|
en: { close: "Close", panel: "Panel" },
|
|
44
48
|
vi: { close: "Đóng", panel: "Bảng" }
|
|
@@ -164,8 +168,8 @@ const strings = {
|
|
|
164
168
|
vi: { placeholder: "Chọn hoặc nhập…", empty: "Không có kết quả phù hợp" }
|
|
165
169
|
},
|
|
166
170
|
InputGroup: {
|
|
167
|
-
en: { clear: "Clear", show: "Show password", hide: "Hide password" },
|
|
168
|
-
vi: { clear: "Xóa", show: "Hiện mật khẩu", hide: "Ẩn mật khẩu" }
|
|
171
|
+
en: { clear: "Clear", show: "Show password", hide: "Hide password", input: "Input" },
|
|
172
|
+
vi: { clear: "Xóa", show: "Hiện mật khẩu", hide: "Ẩn mật khẩu", input: "Ô nhập" }
|
|
169
173
|
},
|
|
170
174
|
TagInput: {
|
|
171
175
|
en: { placeholder: "Add a tag…", remove: "Remove" },
|
|
@@ -521,6 +525,24 @@ function Accordion({ items = [], defaultOpen = 0, allowMultiple = false, classNa
|
|
|
521
525
|
Object.assign(__ds_scope, { Accordion });
|
|
522
526
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/Accordion.jsx", error: String((e && e.message) || e) }); }
|
|
523
527
|
|
|
528
|
+
// components/data/AspectRatio.jsx
|
|
529
|
+
try { (() => {
|
|
530
|
+
const { cx } = __ds_scope;
|
|
531
|
+
function AspectRatio({ ratio = "16 / 9", children, className, style, ...props }) {
|
|
532
|
+
const ar = typeof ratio === "number" ? String(ratio) : ratio;
|
|
533
|
+
return /* @__PURE__ */ React.createElement(
|
|
534
|
+
"div",
|
|
535
|
+
{
|
|
536
|
+
className: cx("cs-aspect-ratio", className),
|
|
537
|
+
style: { ...style || {}, aspectRatio: ar },
|
|
538
|
+
...props
|
|
539
|
+
},
|
|
540
|
+
children
|
|
541
|
+
);
|
|
542
|
+
}
|
|
543
|
+
Object.assign(__ds_scope, { AspectRatio });
|
|
544
|
+
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/AspectRatio.jsx", error: String((e && e.message) || e) }); }
|
|
545
|
+
|
|
524
546
|
// components/data/Avatar.jsx
|
|
525
547
|
try { (() => {
|
|
526
548
|
const { cx } = __ds_scope;
|
|
@@ -618,6 +640,46 @@ function CodeBlock({ code = "", filename, language = "code", showBar = true, cla
|
|
|
618
640
|
Object.assign(__ds_scope, { CodeBlock });
|
|
619
641
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/CodeBlock.jsx", error: String((e && e.message) || e) }); }
|
|
620
642
|
|
|
643
|
+
// components/data/Collapsible.jsx
|
|
644
|
+
try { (() => {
|
|
645
|
+
const { cx } = __ds_scope;
|
|
646
|
+
function Collapsible({
|
|
647
|
+
open,
|
|
648
|
+
defaultOpen = false,
|
|
649
|
+
onOpenChange,
|
|
650
|
+
title,
|
|
651
|
+
trigger,
|
|
652
|
+
children,
|
|
653
|
+
className,
|
|
654
|
+
...props
|
|
655
|
+
}) {
|
|
656
|
+
const uncontrolled = open === void 0;
|
|
657
|
+
const [internal, setInternal] = React.useState(!!defaultOpen);
|
|
658
|
+
const isOpen = uncontrolled ? internal : !!open;
|
|
659
|
+
const setOpen = (next) => {
|
|
660
|
+
if (uncontrolled) setInternal(next);
|
|
661
|
+
onOpenChange?.(next);
|
|
662
|
+
};
|
|
663
|
+
const label = title ?? trigger;
|
|
664
|
+
const panelId = React.useId();
|
|
665
|
+
const triggerId = React.useId();
|
|
666
|
+
return /* @__PURE__ */ React.createElement("div", { className: cx("cs-collapsible", className), ...props }, /* @__PURE__ */ React.createElement(
|
|
667
|
+
"button",
|
|
668
|
+
{
|
|
669
|
+
type: "button",
|
|
670
|
+
id: triggerId,
|
|
671
|
+
className: "cs-collapsible__trigger",
|
|
672
|
+
"aria-expanded": isOpen,
|
|
673
|
+
"aria-controls": panelId,
|
|
674
|
+
onClick: () => setOpen(!isOpen)
|
|
675
|
+
},
|
|
676
|
+
/* @__PURE__ */ React.createElement("span", { className: "cs-collapsible__label" }, label),
|
|
677
|
+
/* @__PURE__ */ React.createElement("span", { className: "cs-collapsible__chevron", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React.createElement("path", { d: "M6 9l6 6 6-6" })))
|
|
678
|
+
), isOpen ? /* @__PURE__ */ React.createElement("div", { id: panelId, role: "region", "aria-labelledby": triggerId, className: "cs-collapsible__panel" }, children) : null);
|
|
679
|
+
}
|
|
680
|
+
Object.assign(__ds_scope, { Collapsible });
|
|
681
|
+
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/Collapsible.jsx", error: String((e && e.message) || e) }); }
|
|
682
|
+
|
|
621
683
|
// components/data/Comment.jsx
|
|
622
684
|
try { (() => {
|
|
623
685
|
const { makeT, useLang } = __ds_scope;
|
|
@@ -651,6 +713,59 @@ function Divider({ vertical = false, label, className, children, ...props }) {
|
|
|
651
713
|
Object.assign(__ds_scope, { Divider });
|
|
652
714
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/Divider.jsx", error: String((e && e.message) || e) }); }
|
|
653
715
|
|
|
716
|
+
// components/data/Item.jsx
|
|
717
|
+
try { (() => {
|
|
718
|
+
const { cx } = __ds_scope;
|
|
719
|
+
function Item({
|
|
720
|
+
leading,
|
|
721
|
+
trailing,
|
|
722
|
+
title,
|
|
723
|
+
description,
|
|
724
|
+
selected = false,
|
|
725
|
+
disabled = false,
|
|
726
|
+
href,
|
|
727
|
+
onClick,
|
|
728
|
+
children,
|
|
729
|
+
className,
|
|
730
|
+
...props
|
|
731
|
+
}) {
|
|
732
|
+
const interactive = !disabled && (href != null || typeof onClick === "function");
|
|
733
|
+
const Tag = href != null && !disabled ? "a" : interactive ? "button" : "div";
|
|
734
|
+
const rowProps = { ...props };
|
|
735
|
+
if (Tag === "a") {
|
|
736
|
+
rowProps.href = href;
|
|
737
|
+
if (disabled) rowProps["aria-disabled"] = true;
|
|
738
|
+
} else if (Tag === "button") {
|
|
739
|
+
rowProps.type = "button";
|
|
740
|
+
rowProps.disabled = disabled || void 0;
|
|
741
|
+
rowProps.onClick = onClick;
|
|
742
|
+
} else if (disabled) {
|
|
743
|
+
rowProps["aria-disabled"] = true;
|
|
744
|
+
}
|
|
745
|
+
if (selected) rowProps["aria-current"] = rowProps["aria-current"] ?? "true";
|
|
746
|
+
const trailExplicit = trailing !== void 0;
|
|
747
|
+
const trailNode = trailExplicit ? trailing : title != null ? children : null;
|
|
748
|
+
const mainExtra = trailExplicit ? children : title == null ? children : null;
|
|
749
|
+
return /* @__PURE__ */ React.createElement(
|
|
750
|
+
Tag,
|
|
751
|
+
{
|
|
752
|
+
className: cx(
|
|
753
|
+
"cs-item",
|
|
754
|
+
interactive && "cs-item--interactive",
|
|
755
|
+
selected && "is-selected",
|
|
756
|
+
disabled && "is-disabled",
|
|
757
|
+
className
|
|
758
|
+
),
|
|
759
|
+
...rowProps
|
|
760
|
+
},
|
|
761
|
+
leading != null ? /* @__PURE__ */ React.createElement("span", { className: "cs-item__leading" }, leading) : null,
|
|
762
|
+
/* @__PURE__ */ React.createElement("span", { className: "cs-item__main" }, title != null ? /* @__PURE__ */ React.createElement("span", { className: "cs-item__title" }, title) : null, description != null ? /* @__PURE__ */ React.createElement("span", { className: "cs-item__description" }, description) : null, mainExtra),
|
|
763
|
+
trailNode != null && trailNode !== false ? /* @__PURE__ */ React.createElement("span", { className: "cs-item__trailing" }, trailNode) : null
|
|
764
|
+
);
|
|
765
|
+
}
|
|
766
|
+
Object.assign(__ds_scope, { Item });
|
|
767
|
+
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/Item.jsx", error: String((e && e.message) || e) }); }
|
|
768
|
+
|
|
654
769
|
// components/data/Kbd.jsx
|
|
655
770
|
try { (() => {
|
|
656
771
|
const { cx } = __ds_scope;
|
|
@@ -683,6 +798,28 @@ function Masonry({ columns = 3, gap = 16, children, className, style }) {
|
|
|
683
798
|
Object.assign(__ds_scope, { Masonry });
|
|
684
799
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/Masonry.jsx", error: String((e && e.message) || e) }); }
|
|
685
800
|
|
|
801
|
+
// components/data/ScrollArea.jsx
|
|
802
|
+
try { (() => {
|
|
803
|
+
const { cx } = __ds_scope;
|
|
804
|
+
function ScrollArea({ children, maxHeight, className, style, ...props }) {
|
|
805
|
+
const max = maxHeight == null ? void 0 : typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight;
|
|
806
|
+
return /* @__PURE__ */ React.createElement(
|
|
807
|
+
"div",
|
|
808
|
+
{
|
|
809
|
+
className: cx("cs-scroll-area", className),
|
|
810
|
+
tabIndex: 0,
|
|
811
|
+
style: {
|
|
812
|
+
...style || {},
|
|
813
|
+
...max != null ? { maxBlockSize: max } : {}
|
|
814
|
+
},
|
|
815
|
+
...props
|
|
816
|
+
},
|
|
817
|
+
children
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
Object.assign(__ds_scope, { ScrollArea });
|
|
821
|
+
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/ScrollArea.jsx", error: String((e && e.message) || e) }); }
|
|
822
|
+
|
|
686
823
|
// components/data/Sortable.jsx
|
|
687
824
|
try { (() => {
|
|
688
825
|
const { cx } = __ds_scope;
|
|
@@ -1342,6 +1479,7 @@ function Cascader({ nodes = [], value = [], onChange, placeholder, label, disabl
|
|
|
1342
1479
|
const [open, setOpen] = React.useState(false);
|
|
1343
1480
|
const [path, setPath] = React.useState(value);
|
|
1344
1481
|
const wrap = React.useRef(null);
|
|
1482
|
+
const fieldId = React.useId();
|
|
1345
1483
|
const [ref, L] = useLang(lang);
|
|
1346
1484
|
const t = makeT("Cascader", L);
|
|
1347
1485
|
const ph = placeholder != null ? placeholder : t("placeholder");
|
|
@@ -1383,25 +1521,28 @@ function Cascader({ nodes = [], value = [], onChange, placeholder, label, disabl
|
|
|
1383
1521
|
return /* @__PURE__ */ React.createElement("div", { ref: (el) => {
|
|
1384
1522
|
wrap.current = el;
|
|
1385
1523
|
ref.current = el;
|
|
1386
|
-
}, className: cx("cs-cascader", className) }, /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-treeselect__field", disabled, "aria-haspopup": "listbox", "aria-expanded": open, "aria-label": label, onClick: () => setOpen((o) => !o) }, /* @__PURE__ */ React.createElement("span", { className: labels.length ? void 0 : "ph" }, labels.length ? labels.join(" / ") : ph), /* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, "▾")), open ? /* @__PURE__ */ React.createElement("div", { className: "cs-cascader__pop" }, cols.map((col, i) => /* @__PURE__ */ React.createElement("ul", { key: i, role: "listbox", className: "cs-cascader__col" }, col.map((n) =>
|
|
1387
|
-
"
|
|
1388
|
-
{
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1524
|
+
}, className: cx("cs-cascader", className) }, /* @__PURE__ */ React.createElement("button", { type: "button", id: fieldId, className: "cs-treeselect__field", disabled, "aria-haspopup": "listbox", "aria-expanded": open, "aria-label": label, onClick: () => setOpen((o) => !o) }, /* @__PURE__ */ React.createElement("span", { className: labels.length ? void 0 : "ph" }, labels.length ? labels.join(" / ") : ph), /* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, "▾")), open ? /* @__PURE__ */ React.createElement("div", { className: "cs-cascader__pop" }, cols.map((col, i) => /* @__PURE__ */ React.createElement("ul", { key: i, role: "listbox", "aria-labelledby": fieldId, className: "cs-cascader__col" }, col.map((n) => (
|
|
1525
|
+
// role="none" — the <li> wrapper must not sit between listbox and option.
|
|
1526
|
+
/* @__PURE__ */ React.createElement("li", { key: n.key, role: "none" }, /* @__PURE__ */ React.createElement(
|
|
1527
|
+
"button",
|
|
1528
|
+
{
|
|
1529
|
+
type: "button",
|
|
1530
|
+
role: "option",
|
|
1531
|
+
"aria-selected": path[i] === n.key,
|
|
1532
|
+
className: cx("cs-cascader__opt", path[i] === n.key && "on"),
|
|
1533
|
+
onClick: () => {
|
|
1534
|
+
const next = [...path.slice(0, i), n.key];
|
|
1535
|
+
setPath(next);
|
|
1536
|
+
if (!(n.children && n.children.length)) {
|
|
1537
|
+
onChange && onChange(next);
|
|
1538
|
+
setOpen(false);
|
|
1539
|
+
}
|
|
1399
1540
|
}
|
|
1400
|
-
}
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
)))))
|
|
1541
|
+
},
|
|
1542
|
+
n.label,
|
|
1543
|
+
n.children && n.children.length ? /* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, " ›") : null
|
|
1544
|
+
))
|
|
1545
|
+
))))) : null);
|
|
1405
1546
|
}
|
|
1406
1547
|
Object.assign(__ds_scope, { Cascader });
|
|
1407
1548
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Cascader.jsx", error: String((e && e.message) || e) }); }
|
|
@@ -1992,7 +2133,23 @@ const { cx } = __ds_scope;
|
|
|
1992
2133
|
const EYE = /* @__PURE__ */ React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z" }), /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "3" }));
|
|
1993
2134
|
const EYE_OFF = /* @__PURE__ */ React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z" }), /* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "3" }), /* @__PURE__ */ React.createElement("path", { d: "M4 4l16 16" }));
|
|
1994
2135
|
const X = /* @__PURE__ */ React.createElement("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M6 6l12 12M18 6L6 18" }));
|
|
1995
|
-
function InputGroup({
|
|
2136
|
+
function InputGroup({
|
|
2137
|
+
id,
|
|
2138
|
+
label,
|
|
2139
|
+
prefix,
|
|
2140
|
+
suffix,
|
|
2141
|
+
clearable = false,
|
|
2142
|
+
password = false,
|
|
2143
|
+
value,
|
|
2144
|
+
onChange,
|
|
2145
|
+
defaultValue = "",
|
|
2146
|
+
placeholder,
|
|
2147
|
+
disabled = false,
|
|
2148
|
+
lang,
|
|
2149
|
+
className,
|
|
2150
|
+
"aria-label": ariaLabel,
|
|
2151
|
+
...props
|
|
2152
|
+
}) {
|
|
1996
2153
|
const [inner, setInner] = React.useState(defaultValue);
|
|
1997
2154
|
const val = value != null ? value : inner;
|
|
1998
2155
|
const set = (v) => {
|
|
@@ -2002,7 +2159,21 @@ function InputGroup({ prefix, suffix, clearable = false, password = false, value
|
|
|
2002
2159
|
const [show, setShow] = React.useState(false);
|
|
2003
2160
|
const [ref, L] = useLang(lang);
|
|
2004
2161
|
const t = makeT("InputGroup", L);
|
|
2005
|
-
|
|
2162
|
+
const gid = React.useId();
|
|
2163
|
+
const sid = id ?? gid;
|
|
2164
|
+
return /* @__PURE__ */ React.createElement("label", { ref, className: cx("cs-field", disabled && "is-disabled", className), htmlFor: sid }, label ? /* @__PURE__ */ React.createElement("span", { className: "cs-field__label" }, label) : null, /* @__PURE__ */ React.createElement("span", { className: "cs-igroup" }, prefix != null ? /* @__PURE__ */ React.createElement("span", { className: "cs-igroup__fix" }, prefix) : null, /* @__PURE__ */ React.createElement(
|
|
2165
|
+
"input",
|
|
2166
|
+
{
|
|
2167
|
+
...props,
|
|
2168
|
+
id: sid,
|
|
2169
|
+
type: password && !show ? "password" : "text",
|
|
2170
|
+
value: val,
|
|
2171
|
+
placeholder,
|
|
2172
|
+
disabled,
|
|
2173
|
+
"aria-label": label ? void 0 : ariaLabel || placeholder || t("input"),
|
|
2174
|
+
onChange: (e) => set(e.target.value)
|
|
2175
|
+
}
|
|
2176
|
+
), clearable && String(val).length ? /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-igroup__btn", "aria-label": t("clear"), onClick: () => set("") }, X) : null, password ? /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-igroup__btn", "aria-label": show ? t("hide") : t("show"), "aria-pressed": show, onClick: () => setShow((s) => !s) }, show ? EYE_OFF : EYE) : null, suffix != null ? /* @__PURE__ */ React.createElement("span", { className: "cs-igroup__fix cs-igroup__fix--suffix" }, suffix) : null));
|
|
2006
2177
|
}
|
|
2007
2178
|
Object.assign(__ds_scope, { InputGroup });
|
|
2008
2179
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/InputGroup.jsx", error: String((e && e.message) || e) }); }
|
|
@@ -2097,11 +2268,63 @@ function Mentions({ value, defaultValue = "", onChange, users = [], placeholder,
|
|
|
2097
2268
|
Object.assign(__ds_scope, { Mentions });
|
|
2098
2269
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Mentions.jsx", error: String((e && e.message) || e) }); }
|
|
2099
2270
|
|
|
2271
|
+
// components/forms/NativeSelect.jsx
|
|
2272
|
+
try { (() => {
|
|
2273
|
+
const { cx } = __ds_scope;
|
|
2274
|
+
function NativeSelect({
|
|
2275
|
+
id,
|
|
2276
|
+
label,
|
|
2277
|
+
error,
|
|
2278
|
+
options,
|
|
2279
|
+
children,
|
|
2280
|
+
disabled = false,
|
|
2281
|
+
size = "md",
|
|
2282
|
+
className,
|
|
2283
|
+
value,
|
|
2284
|
+
defaultValue,
|
|
2285
|
+
onChange,
|
|
2286
|
+
...props
|
|
2287
|
+
}) {
|
|
2288
|
+
const gid = React.useId();
|
|
2289
|
+
const sid = id ?? gid;
|
|
2290
|
+
const errId = error ? sid + "-err" : void 0;
|
|
2291
|
+
return /* @__PURE__ */ React.createElement("label", { className: cx("cs-field", "cs-native-select-field", disabled && "is-disabled", error && "is-invalid", className), htmlFor: sid }, label ? /* @__PURE__ */ React.createElement("span", { className: "cs-field__label" }, label) : null, /* @__PURE__ */ React.createElement("span", { className: cx("cs-native-select", `cs-native-select--${size}`) }, /* @__PURE__ */ React.createElement(
|
|
2292
|
+
"select",
|
|
2293
|
+
{
|
|
2294
|
+
...props,
|
|
2295
|
+
id: sid,
|
|
2296
|
+
disabled,
|
|
2297
|
+
value,
|
|
2298
|
+
defaultValue,
|
|
2299
|
+
onChange,
|
|
2300
|
+
"aria-invalid": error ? true : void 0,
|
|
2301
|
+
"aria-describedby": errId,
|
|
2302
|
+
className: "cs-field__control"
|
|
2303
|
+
},
|
|
2304
|
+
options ? options.map((o) => /* @__PURE__ */ React.createElement("option", { key: o.value, value: o.value, disabled: o.disabled }, o.label)) : children
|
|
2305
|
+
), /* @__PURE__ */ React.createElement("span", { className: "cs-native-select__chevron", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React.createElement("path", { d: "M6 9l6 6 6-6" })))), error ? /* @__PURE__ */ React.createElement("span", { id: errId, className: "cs-field__error", role: "alert" }, error) : null);
|
|
2306
|
+
}
|
|
2307
|
+
Object.assign(__ds_scope, { NativeSelect });
|
|
2308
|
+
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/NativeSelect.jsx", error: String((e && e.message) || e) }); }
|
|
2309
|
+
|
|
2100
2310
|
// components/forms/NumberField.jsx
|
|
2101
2311
|
try { (() => {
|
|
2102
2312
|
const { makeT, useLang } = __ds_scope;
|
|
2103
2313
|
const { cx } = __ds_scope;
|
|
2104
|
-
function NumberField({
|
|
2314
|
+
function NumberField({
|
|
2315
|
+
id,
|
|
2316
|
+
label,
|
|
2317
|
+
value,
|
|
2318
|
+
onChange,
|
|
2319
|
+
min,
|
|
2320
|
+
max,
|
|
2321
|
+
step = 1,
|
|
2322
|
+
disabled = false,
|
|
2323
|
+
lang,
|
|
2324
|
+
className,
|
|
2325
|
+
children,
|
|
2326
|
+
...props
|
|
2327
|
+
}) {
|
|
2105
2328
|
const [inner, setInner] = React.useState(0);
|
|
2106
2329
|
const val = value != null ? value : inner;
|
|
2107
2330
|
const clamp = (n) => {
|
|
@@ -2115,7 +2338,23 @@ function NumberField({ value, onChange, min, max, step = 1, disabled = false, la
|
|
|
2115
2338
|
};
|
|
2116
2339
|
const [ref, L] = useLang(lang);
|
|
2117
2340
|
const t = makeT("NumberField", L);
|
|
2118
|
-
|
|
2341
|
+
const gid = React.useId();
|
|
2342
|
+
const sid = id ?? gid;
|
|
2343
|
+
return /* @__PURE__ */ React.createElement("div", { ref, className: cx("cs-field", disabled && "is-disabled", className) }, label ? /* @__PURE__ */ React.createElement("label", { className: "cs-field__label", htmlFor: sid }, label) : null, /* @__PURE__ */ React.createElement("div", { className: "cs-stepper" }, /* @__PURE__ */ React.createElement("button", { type: "button", "aria-label": t("decrease"), disabled: disabled || min != null && val <= min, onClick: () => set(val - step) }, "−"), /* @__PURE__ */ React.createElement(
|
|
2344
|
+
"input",
|
|
2345
|
+
{
|
|
2346
|
+
...props,
|
|
2347
|
+
id: sid,
|
|
2348
|
+
type: "number",
|
|
2349
|
+
value: val,
|
|
2350
|
+
min,
|
|
2351
|
+
max,
|
|
2352
|
+
step,
|
|
2353
|
+
disabled,
|
|
2354
|
+
"aria-label": label ? void 0 : t("value"),
|
|
2355
|
+
onChange: (e) => set(Number(e.target.value))
|
|
2356
|
+
}
|
|
2357
|
+
), /* @__PURE__ */ React.createElement("button", { type: "button", "aria-label": t("increase"), disabled: disabled || max != null && val >= max, onClick: () => set(val + step) }, "+")));
|
|
2119
2358
|
}
|
|
2120
2359
|
Object.assign(__ds_scope, { NumberField });
|
|
2121
2360
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/NumberField.jsx", error: String((e && e.message) || e) }); }
|
|
@@ -2211,7 +2450,6 @@ function SegmentedControl({ options = [], value, onChange, className, ...props }
|
|
|
2211
2450
|
type: "button",
|
|
2212
2451
|
role: "tab",
|
|
2213
2452
|
"aria-selected": value === o.value,
|
|
2214
|
-
"aria-pressed": value === o.value,
|
|
2215
2453
|
tabIndex: i === idx ? 0 : -1,
|
|
2216
2454
|
ref: (el) => refs.current[i] = el,
|
|
2217
2455
|
onKeyDown: (e) => key(e, i),
|
|
@@ -2260,7 +2498,18 @@ Object.assign(__ds_scope, { Switch });
|
|
|
2260
2498
|
try { (() => {
|
|
2261
2499
|
const { makeT, useLang } = __ds_scope;
|
|
2262
2500
|
const { cx } = __ds_scope;
|
|
2263
|
-
function TagInput({
|
|
2501
|
+
function TagInput({
|
|
2502
|
+
id,
|
|
2503
|
+
label,
|
|
2504
|
+
value,
|
|
2505
|
+
defaultValue = [],
|
|
2506
|
+
onChange,
|
|
2507
|
+
placeholder,
|
|
2508
|
+
max,
|
|
2509
|
+
disabled = false,
|
|
2510
|
+
lang,
|
|
2511
|
+
className
|
|
2512
|
+
}) {
|
|
2264
2513
|
const [inner, setInner] = React.useState(defaultValue);
|
|
2265
2514
|
const tags = value != null ? value : inner;
|
|
2266
2515
|
const [q, setQ] = React.useState("");
|
|
@@ -2282,12 +2531,26 @@ function TagInput({ value, defaultValue = [], onChange, placeholder, max, disabl
|
|
|
2282
2531
|
const [ref, L] = useLang(lang);
|
|
2283
2532
|
const t = makeT("TagInput", L);
|
|
2284
2533
|
const ph = placeholder != null ? placeholder : t("placeholder");
|
|
2285
|
-
|
|
2534
|
+
const gid = React.useId();
|
|
2535
|
+
const sid = id ?? gid;
|
|
2536
|
+
return /* @__PURE__ */ React.createElement("label", { ref, className: cx("cs-field", disabled && "is-disabled", className), htmlFor: sid }, label ? /* @__PURE__ */ React.createElement("span", { className: "cs-field__label" }, label) : null, /* @__PURE__ */ React.createElement("div", { className: "cs-taginput" }, tags.map((tag) => /* @__PURE__ */ React.createElement("span", { key: tag, className: "cs-tag" }, tag, /* @__PURE__ */ React.createElement(
|
|
2537
|
+
"button",
|
|
2538
|
+
{
|
|
2539
|
+
type: "button",
|
|
2540
|
+
className: "cs-tag__close",
|
|
2541
|
+
"aria-label": t("remove") + " " + tag,
|
|
2542
|
+
onClick: () => set(tags.filter((x) => x !== tag)),
|
|
2543
|
+
disabled
|
|
2544
|
+
},
|
|
2545
|
+
/* @__PURE__ */ React.createElement("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.4", strokeLinecap: "round", "aria-hidden": "true" }, /* @__PURE__ */ React.createElement("path", { d: "M6 6l12 12M18 6L6 18" }))
|
|
2546
|
+
))), /* @__PURE__ */ React.createElement(
|
|
2286
2547
|
"input",
|
|
2287
2548
|
{
|
|
2549
|
+
id: sid,
|
|
2288
2550
|
value: q,
|
|
2289
2551
|
placeholder: tags.length ? "" : ph,
|
|
2290
2552
|
disabled,
|
|
2553
|
+
"aria-label": label ? void 0 : ph,
|
|
2291
2554
|
onChange: (e) => setQ(e.target.value),
|
|
2292
2555
|
onKeyDown: (e) => {
|
|
2293
2556
|
if (e.key === "Enter" || e.key === ",") {
|
|
@@ -2299,7 +2562,7 @@ function TagInput({ value, defaultValue = [], onChange, placeholder, max, disabl
|
|
|
2299
2562
|
},
|
|
2300
2563
|
onBlur: () => add(q)
|
|
2301
2564
|
}
|
|
2302
|
-
));
|
|
2565
|
+
)));
|
|
2303
2566
|
}
|
|
2304
2567
|
Object.assign(__ds_scope, { TagInput });
|
|
2305
2568
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/TagInput.jsx", error: String((e && e.message) || e) }); }
|
|
@@ -2846,6 +3109,7 @@ try { (() => {
|
|
|
2846
3109
|
const { CS_LOGO_VIEWBOX, CS_LOGO_MARK_INNER } = __ds_scope;
|
|
2847
3110
|
const { cx } = __ds_scope;
|
|
2848
3111
|
function Logo({ size = 32, title = "CyberSkill", decorative = false, className, ...props }) {
|
|
3112
|
+
const safeTitle = String(title).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
2849
3113
|
return /* @__PURE__ */ React.createElement(
|
|
2850
3114
|
"svg",
|
|
2851
3115
|
{
|
|
@@ -2858,7 +3122,7 @@ function Logo({ size = 32, title = "CyberSkill", decorative = false, className,
|
|
|
2858
3122
|
role: decorative ? void 0 : "img",
|
|
2859
3123
|
"aria-hidden": decorative ? true : void 0,
|
|
2860
3124
|
"aria-label": decorative ? void 0 : title,
|
|
2861
|
-
dangerouslySetInnerHTML: { __html: (decorative ? "" : `<title>${
|
|
3125
|
+
dangerouslySetInnerHTML: { __html: (decorative ? "" : `<title>${safeTitle}</title>`) + CS_LOGO_MARK_INNER }
|
|
2862
3126
|
}
|
|
2863
3127
|
);
|
|
2864
3128
|
}
|
|
@@ -3072,7 +3336,16 @@ function Menu({ trigger, children, align = "start", open: controlledOpen, onOpen
|
|
|
3072
3336
|
document.removeEventListener("keydown", onKey);
|
|
3073
3337
|
};
|
|
3074
3338
|
}, [open]);
|
|
3075
|
-
|
|
3339
|
+
const toggle = () => set(!open);
|
|
3340
|
+
const triggerNode = React.isValidElement(trigger) ? React.cloneElement(trigger, {
|
|
3341
|
+
"aria-haspopup": "menu",
|
|
3342
|
+
"aria-expanded": open,
|
|
3343
|
+
onClick: (e) => {
|
|
3344
|
+
if (typeof trigger.props.onClick === "function") trigger.props.onClick(e);
|
|
3345
|
+
if (!e.defaultPrevented) toggle();
|
|
3346
|
+
}
|
|
3347
|
+
}) : /* @__PURE__ */ React.createElement("button", { type: "button", "aria-haspopup": "menu", "aria-expanded": open, onClick: toggle }, trigger);
|
|
3348
|
+
return /* @__PURE__ */ React.createElement("div", { className: cx("cs-menu", className), ref }, triggerNode, open ? /* @__PURE__ */ React.createElement("div", { className: cx("cs-menu__list", align === "end" && "cs-menu__list--end"), role: "menu" }, children) : null);
|
|
3076
3349
|
}
|
|
3077
3350
|
function MenuItem({ danger = false, icon, children, className, ...props }) {
|
|
3078
3351
|
return /* @__PURE__ */ React.createElement("button", { type: "button", role: "menuitem", className: cx("cs-menu__item", danger && "cs-menu__item--danger", className), ...props }, icon ? /* @__PURE__ */ React.createElement("span", { "aria-hidden": "true" }, icon) : null, children);
|
|
@@ -3314,6 +3587,160 @@ function Toolbar({ items = [], overflowAfter, label, lang, className }) {
|
|
|
3314
3587
|
Object.assign(__ds_scope, { Toolbar });
|
|
3315
3588
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/navigation/Toolbar.jsx", error: String((e && e.message) || e) }); }
|
|
3316
3589
|
|
|
3590
|
+
// components/overlays/AlertDialog.jsx
|
|
3591
|
+
try { (() => {
|
|
3592
|
+
const { makeT, useLang } = __ds_scope;
|
|
3593
|
+
const { cx } = __ds_scope;
|
|
3594
|
+
const FOCUSABLE = [
|
|
3595
|
+
"a[href]",
|
|
3596
|
+
"area[href]",
|
|
3597
|
+
"button:not([disabled])",
|
|
3598
|
+
'input:not([disabled]):not([type="hidden"])',
|
|
3599
|
+
"select:not([disabled])",
|
|
3600
|
+
"textarea:not([disabled])",
|
|
3601
|
+
"audio[controls]",
|
|
3602
|
+
"video[controls]",
|
|
3603
|
+
"summary",
|
|
3604
|
+
"iframe",
|
|
3605
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
3606
|
+
'[tabindex]:not([tabindex="-1"])'
|
|
3607
|
+
].join(",");
|
|
3608
|
+
function AlertDialog({
|
|
3609
|
+
open,
|
|
3610
|
+
defaultOpen = false,
|
|
3611
|
+
onOpenChange,
|
|
3612
|
+
title,
|
|
3613
|
+
description,
|
|
3614
|
+
children,
|
|
3615
|
+
confirmLabel,
|
|
3616
|
+
cancelLabel,
|
|
3617
|
+
tone,
|
|
3618
|
+
variant,
|
|
3619
|
+
onConfirm,
|
|
3620
|
+
onCancel,
|
|
3621
|
+
lang,
|
|
3622
|
+
className,
|
|
3623
|
+
...props
|
|
3624
|
+
}) {
|
|
3625
|
+
const baseId = React.useId();
|
|
3626
|
+
const titleId = baseId + "-title";
|
|
3627
|
+
const descId = baseId + "-desc";
|
|
3628
|
+
const [ref, L] = useLang(lang);
|
|
3629
|
+
const t = makeT("AlertDialog", L);
|
|
3630
|
+
const panel = React.useRef(null);
|
|
3631
|
+
const uncontrolled = open === void 0;
|
|
3632
|
+
const [internal, setInternal] = React.useState(!!defaultOpen);
|
|
3633
|
+
const isOpen = uncontrolled ? internal : !!open;
|
|
3634
|
+
const setOpen = (next) => {
|
|
3635
|
+
if (uncontrolled) setInternal(next);
|
|
3636
|
+
onOpenChange?.(next);
|
|
3637
|
+
};
|
|
3638
|
+
const destructive = (tone ?? variant) === "destructive";
|
|
3639
|
+
const confirmRef = React.useRef(onConfirm);
|
|
3640
|
+
confirmRef.current = onConfirm;
|
|
3641
|
+
const cancelRef = React.useRef(onCancel);
|
|
3642
|
+
cancelRef.current = onCancel;
|
|
3643
|
+
React.useEffect(() => {
|
|
3644
|
+
if (!isOpen) return;
|
|
3645
|
+
const prev = document.activeElement;
|
|
3646
|
+
const prevOverflow = document.body.style.overflow;
|
|
3647
|
+
document.body.style.overflow = "hidden";
|
|
3648
|
+
const focusables = () => panel.current ? [...panel.current.querySelectorAll(FOCUSABLE)] : [];
|
|
3649
|
+
const preferred = panel.current?.querySelector(".cs-alert-dialog__confirm") || focusables()[0];
|
|
3650
|
+
(preferred || panel.current)?.focus?.();
|
|
3651
|
+
const k = (e) => {
|
|
3652
|
+
if (e.key === "Escape") {
|
|
3653
|
+
setOpen(false);
|
|
3654
|
+
cancelRef.current?.();
|
|
3655
|
+
return;
|
|
3656
|
+
}
|
|
3657
|
+
if (e.key !== "Tab" || !panel.current) return;
|
|
3658
|
+
const f = focusables();
|
|
3659
|
+
if (!f.length) {
|
|
3660
|
+
e.preventDefault();
|
|
3661
|
+
panel.current.focus();
|
|
3662
|
+
return;
|
|
3663
|
+
}
|
|
3664
|
+
const a = f[0], z = f[f.length - 1];
|
|
3665
|
+
const active = document.activeElement;
|
|
3666
|
+
const inside = panel.current.contains(active);
|
|
3667
|
+
if (e.shiftKey && (!inside || active === a)) {
|
|
3668
|
+
e.preventDefault();
|
|
3669
|
+
z.focus();
|
|
3670
|
+
} else if (!e.shiftKey && (!inside || active === z)) {
|
|
3671
|
+
e.preventDefault();
|
|
3672
|
+
a.focus();
|
|
3673
|
+
}
|
|
3674
|
+
};
|
|
3675
|
+
document.addEventListener("keydown", k);
|
|
3676
|
+
return () => {
|
|
3677
|
+
document.removeEventListener("keydown", k);
|
|
3678
|
+
document.body.style.overflow = prevOverflow;
|
|
3679
|
+
if (prev && prev.focus) prev.focus();
|
|
3680
|
+
};
|
|
3681
|
+
}, [isOpen]);
|
|
3682
|
+
const cl = cancelLabel != null ? cancelLabel : t("cancel");
|
|
3683
|
+
const cf = confirmLabel != null ? confirmLabel : t("confirm");
|
|
3684
|
+
const body = description ?? children;
|
|
3685
|
+
const hasDesc = body != null && body !== false && body !== "";
|
|
3686
|
+
if (!isOpen) return null;
|
|
3687
|
+
return /* @__PURE__ */ React.createElement("div", { ref, className: "cs-dialog-layer cs-alert-dialog-layer" }, /* @__PURE__ */ React.createElement(
|
|
3688
|
+
"div",
|
|
3689
|
+
{
|
|
3690
|
+
className: "cs-dialog__overlay",
|
|
3691
|
+
onClick: () => {
|
|
3692
|
+
setOpen(false);
|
|
3693
|
+
cancelRef.current?.();
|
|
3694
|
+
},
|
|
3695
|
+
"aria-hidden": "true"
|
|
3696
|
+
}
|
|
3697
|
+
), /* @__PURE__ */ React.createElement(
|
|
3698
|
+
"section",
|
|
3699
|
+
{
|
|
3700
|
+
...props,
|
|
3701
|
+
ref: panel,
|
|
3702
|
+
tabIndex: -1,
|
|
3703
|
+
role: "alertdialog",
|
|
3704
|
+
"aria-modal": "true",
|
|
3705
|
+
"aria-labelledby": titleId,
|
|
3706
|
+
"aria-describedby": hasDesc ? descId : void 0,
|
|
3707
|
+
className: cx("cs-dialog", "cs-alert-dialog", destructive && "cs-alert-dialog--destructive", className)
|
|
3708
|
+
},
|
|
3709
|
+
/* @__PURE__ */ React.createElement("header", { className: "cs-dialog__header" }, /* @__PURE__ */ React.createElement("h2", { id: titleId, className: "cs-dialog__title" }, title)),
|
|
3710
|
+
hasDesc ? /* @__PURE__ */ React.createElement("div", { id: descId, className: "cs-dialog__body" }, body) : null,
|
|
3711
|
+
/* @__PURE__ */ React.createElement("footer", { className: "cs-dialog__actions" }, /* @__PURE__ */ React.createElement(
|
|
3712
|
+
"button",
|
|
3713
|
+
{
|
|
3714
|
+
type: "button",
|
|
3715
|
+
className: "cs-button cs-button--ghost cs-button--md",
|
|
3716
|
+
onClick: () => {
|
|
3717
|
+
setOpen(false);
|
|
3718
|
+
cancelRef.current?.();
|
|
3719
|
+
}
|
|
3720
|
+
},
|
|
3721
|
+
cl
|
|
3722
|
+
), /* @__PURE__ */ React.createElement(
|
|
3723
|
+
"button",
|
|
3724
|
+
{
|
|
3725
|
+
type: "button",
|
|
3726
|
+
className: cx(
|
|
3727
|
+
"cs-button",
|
|
3728
|
+
"cs-button--md",
|
|
3729
|
+
"cs-alert-dialog__confirm",
|
|
3730
|
+
destructive ? "cs-button--danger" : "cs-button--primary"
|
|
3731
|
+
),
|
|
3732
|
+
onClick: () => {
|
|
3733
|
+
setOpen(false);
|
|
3734
|
+
confirmRef.current?.();
|
|
3735
|
+
}
|
|
3736
|
+
},
|
|
3737
|
+
cf
|
|
3738
|
+
))
|
|
3739
|
+
));
|
|
3740
|
+
}
|
|
3741
|
+
Object.assign(__ds_scope, { AlertDialog });
|
|
3742
|
+
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/overlays/AlertDialog.jsx", error: String((e && e.message) || e) }); }
|
|
3743
|
+
|
|
3317
3744
|
// components/overlays/ContextMenu.jsx
|
|
3318
3745
|
try { (() => {
|
|
3319
3746
|
const { cx } = __ds_scope;
|
|
@@ -3390,7 +3817,7 @@ function Drawer({ open, onClose, title, side = "right", children, actions, lang,
|
|
|
3390
3817
|
}, [open]);
|
|
3391
3818
|
const t = makeT("Drawer", L);
|
|
3392
3819
|
if (!open) return null;
|
|
3393
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "cs-drawer-scrim", onClick: onClose, "aria-hidden": "true" }), /* @__PURE__ */ React.createElement("aside", { ref, tabIndex: -1, className: cx("cs-drawer", side === "left" && "cs-drawer--left", className), role: "dialog", "aria-modal": "true", "aria-label": typeof title === "string" ? title : t("panel") }, /* @__PURE__ */ React.createElement("div", { className: "cs-drawer__header" }, title ? /* @__PURE__ */ React.createElement("h2", { className: "cs-drawer__title" }, title) : null, /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-drawer__close", "aria-label": t("close"), onClick: onClose }, /* @__PURE__ */ React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }, /* @__PURE__ */ React.createElement("path", { d: "M6 6l12 12M18 6L6 18" })))), /* @__PURE__ */ React.createElement("div", { className: "cs-drawer__body" }, children), actions ? /* @__PURE__ */ React.createElement("div", { className: "cs-drawer__footer" }, actions) : null));
|
|
3820
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "cs-drawer-scrim", onClick: onClose, "aria-hidden": "true" }), /* @__PURE__ */ React.createElement("aside", { ref, tabIndex: -1, className: cx("cs-drawer", side === "left" && "cs-drawer--left", className), role: "dialog", "aria-modal": "true", "aria-label": typeof title === "string" ? title : t("panel") }, /* @__PURE__ */ React.createElement("div", { className: "cs-drawer__header" }, title ? /* @__PURE__ */ React.createElement("h2", { className: "cs-drawer__title" }, title) : null, /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-drawer__close", "aria-label": t("close"), onClick: onClose }, /* @__PURE__ */ React.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }, /* @__PURE__ */ React.createElement("path", { d: "M6 6l12 12M18 6L6 18" })))), /* @__PURE__ */ React.createElement("div", { className: "cs-drawer__body", tabIndex: 0 }, children), actions ? /* @__PURE__ */ React.createElement("div", { className: "cs-drawer__footer" }, actions) : null));
|
|
3394
3821
|
}
|
|
3395
3822
|
Object.assign(__ds_scope, { Drawer });
|
|
3396
3823
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/overlays/Drawer.jsx", error: String((e && e.message) || e) }); }
|
|
@@ -3443,10 +3870,19 @@ function Popconfirm({ trigger, title, onConfirm, onCancel, okLabel, cancelLabel,
|
|
|
3443
3870
|
document.removeEventListener("keydown", k);
|
|
3444
3871
|
};
|
|
3445
3872
|
}, [open]);
|
|
3873
|
+
const toggle = () => setOpen((o) => !o);
|
|
3874
|
+
const triggerNode = React.isValidElement(trigger) ? React.cloneElement(trigger, {
|
|
3875
|
+
"aria-haspopup": "dialog",
|
|
3876
|
+
"aria-expanded": open,
|
|
3877
|
+
onClick: (e) => {
|
|
3878
|
+
if (typeof trigger.props.onClick === "function") trigger.props.onClick(e);
|
|
3879
|
+
if (!e.defaultPrevented) toggle();
|
|
3880
|
+
}
|
|
3881
|
+
}) : /* @__PURE__ */ React.createElement("button", { type: "button", "aria-haspopup": "dialog", "aria-expanded": open, onClick: toggle }, trigger);
|
|
3446
3882
|
return /* @__PURE__ */ React.createElement("span", { ref: (el) => {
|
|
3447
3883
|
wrap.current = el;
|
|
3448
3884
|
ref.current = el;
|
|
3449
|
-
}, className: cx("cs-popconfirm", className) },
|
|
3885
|
+
}, className: cx("cs-popconfirm", className) }, triggerNode, open ? /* @__PURE__ */ React.createElement("span", { className: "cs-popconfirm__panel", role: "alertdialog", "aria-label": typeof title === "string" ? title : void 0 }, /* @__PURE__ */ React.createElement("span", { className: "cs-popconfirm__title" }, title), /* @__PURE__ */ React.createElement("span", { className: "cs-popconfirm__actions" }, /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-button cs-button--ghost cs-button--xs", onClick: () => {
|
|
3450
3886
|
setOpen(false);
|
|
3451
3887
|
onCancel && onCancel();
|
|
3452
3888
|
} }, cancelLabel != null ? cancelLabel : t("cancel")), /* @__PURE__ */ React.createElement("button", { type: "button", className: "cs-button cs-button--primary cs-button--xs", onClick: () => {
|
|
@@ -3480,7 +3916,16 @@ function Popover({ trigger, children, align = "start", open: controlled, onOpenC
|
|
|
3480
3916
|
document.removeEventListener("keydown", k);
|
|
3481
3917
|
};
|
|
3482
3918
|
}, [open]);
|
|
3483
|
-
|
|
3919
|
+
const toggle = () => set(!open);
|
|
3920
|
+
const triggerNode = React.isValidElement(trigger) ? React.cloneElement(trigger, {
|
|
3921
|
+
"aria-haspopup": "dialog",
|
|
3922
|
+
"aria-expanded": open,
|
|
3923
|
+
onClick: (e) => {
|
|
3924
|
+
if (typeof trigger.props.onClick === "function") trigger.props.onClick(e);
|
|
3925
|
+
if (!e.defaultPrevented) toggle();
|
|
3926
|
+
}
|
|
3927
|
+
}) : /* @__PURE__ */ React.createElement("button", { type: "button", "aria-haspopup": "dialog", "aria-expanded": open, onClick: toggle }, trigger);
|
|
3928
|
+
return /* @__PURE__ */ React.createElement("span", { className: cx("cs-popover", className), ref }, triggerNode, open ? /* @__PURE__ */ React.createElement("div", { className: cx("cs-popover__panel", align === "end" && "cs-popover__panel--end"), role: "dialog" }, children) : null);
|
|
3484
3929
|
}
|
|
3485
3930
|
Object.assign(__ds_scope, { Popover });
|
|
3486
3931
|
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/overlays/Popover.jsx", error: String((e && e.message) || e) }); }
|
|
@@ -4292,7 +4737,7 @@ try { (() => {
|
|
|
4292
4737
|
const tokens = {
|
|
4293
4738
|
"$meta": {
|
|
4294
4739
|
"system": "CyberSkill Design System",
|
|
4295
|
-
"version": "1.
|
|
4740
|
+
"version": "1.1.0",
|
|
4296
4741
|
"generated": "2026-07-23",
|
|
4297
4742
|
"note": "Generated from tokens/*.css. Root grouped by category; theme/element scopes carry overrides only. Regenerate after any token change (see docs/conventions.md)."
|
|
4298
4743
|
},
|
|
@@ -4344,14 +4789,14 @@ const tokens = {
|
|
|
4344
4789
|
},
|
|
4345
4790
|
"accent": {
|
|
4346
4791
|
"--cs-accent": "#F4BA17",
|
|
4347
|
-
"--cs-accent-strong": "#
|
|
4792
|
+
"--cs-accent-strong": "#A47D17",
|
|
4348
4793
|
"--cs-accent-bright": "#F4BA17",
|
|
4349
4794
|
"--cs-accent-on": "#45210E",
|
|
4350
4795
|
"--cs-accent-tint": "#FBF4E9",
|
|
4351
4796
|
"--cs-accent-ink": "#45210E",
|
|
4352
|
-
"--cs-accent-glow": "rgba(244, 186, 23, 0.
|
|
4797
|
+
"--cs-accent-glow": "rgba(244, 186, 23, 0.48)",
|
|
4353
4798
|
"--cs-accent-grad-a": "#F4BA17",
|
|
4354
|
-
"--cs-accent-grad-b": "#
|
|
4799
|
+
"--cs-accent-grad-b": "#FCAF91"
|
|
4355
4800
|
},
|
|
4356
4801
|
"depth": {
|
|
4357
4802
|
"--cs-depth-bg": "0",
|
|
@@ -4428,6 +4873,7 @@ const tokens = {
|
|
|
4428
4873
|
},
|
|
4429
4874
|
"font": {
|
|
4430
4875
|
"--cs-font-family-ui": "'Be Vietnam Pro', ui-sans-serif, system-ui, sans-serif",
|
|
4876
|
+
"--cs-font-family-display": "'Space Grotesk', 'Be Vietnam Pro', ui-sans-serif, system-ui, sans-serif",
|
|
4431
4877
|
"--cs-font-family-mono": "'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
|
|
4432
4878
|
"--cs-font-weight-regular": "400",
|
|
4433
4879
|
"--cs-font-weight-medium": "500",
|
|
@@ -4528,198 +4974,198 @@ const tokens = {
|
|
|
4528
4974
|
}
|
|
4529
4975
|
},
|
|
4530
4976
|
"elements": {
|
|
4977
|
+
"tho.sand": {
|
|
4978
|
+
"--cs-accent": "#F8E9C0",
|
|
4979
|
+
"--cs-accent-strong": "#90825E",
|
|
4980
|
+
"--cs-accent-bright": "#F6EBCC",
|
|
4981
|
+
"--cs-accent-on": "#292414",
|
|
4982
|
+
"--cs-accent-tint": "#FBF7EA",
|
|
4983
|
+
"--cs-accent-ink": "#292414",
|
|
4984
|
+
"--cs-accent-glow": "rgba(248, 233, 192, 0.48)",
|
|
4985
|
+
"--cs-accent-grad-a": "#F8E9C0",
|
|
4986
|
+
"--cs-accent-grad-b": "#FCAF91",
|
|
4987
|
+
"--cs-color-text-accent": "#90825E",
|
|
4988
|
+
"--cs-color-link": "#90825E"
|
|
4989
|
+
},
|
|
4531
4990
|
"tho": {
|
|
4532
4991
|
"--cs-accent": "#F4BA17",
|
|
4533
|
-
"--cs-accent-strong": "#
|
|
4992
|
+
"--cs-accent-strong": "#A47D17",
|
|
4534
4993
|
"--cs-accent-bright": "#F4BA17",
|
|
4535
4994
|
"--cs-accent-on": "#45210E",
|
|
4536
4995
|
"--cs-accent-tint": "#FBF4E9",
|
|
4537
4996
|
"--cs-accent-ink": "#45210E",
|
|
4538
|
-
"--cs-accent-glow": "rgba(244, 186, 23, 0.
|
|
4997
|
+
"--cs-accent-glow": "rgba(244, 186, 23, 0.48)",
|
|
4539
4998
|
"--cs-accent-grad-a": "#F4BA17",
|
|
4540
|
-
"--cs-accent-grad-b": "#
|
|
4999
|
+
"--cs-accent-grad-b": "#FCAF91"
|
|
4541
5000
|
},
|
|
4542
5001
|
"tho.clay": {
|
|
4543
|
-
"--cs-accent": "#
|
|
4544
|
-
"--cs-accent-strong": "#
|
|
4545
|
-
"--cs-accent-bright": "#
|
|
4546
|
-
"--cs-accent-on": "#
|
|
4547
|
-
"--cs-accent-tint": "#
|
|
4548
|
-
"--cs-accent-ink": "#
|
|
4549
|
-
"--cs-accent-glow": "rgba(
|
|
4550
|
-
"--cs-accent-grad-a": "#
|
|
4551
|
-
"--cs-accent-grad-b": "#
|
|
4552
|
-
"--cs-color-text-accent": "#
|
|
4553
|
-
"--cs-color-link": "#
|
|
5002
|
+
"--cs-accent": "#513801",
|
|
5003
|
+
"--cs-accent-strong": "#201300",
|
|
5004
|
+
"--cs-accent-bright": "#DEC7A2",
|
|
5005
|
+
"--cs-accent-on": "#2D220E",
|
|
5006
|
+
"--cs-accent-tint": "#FFF6E7",
|
|
5007
|
+
"--cs-accent-ink": "#2D220E",
|
|
5008
|
+
"--cs-accent-glow": "rgba(81, 56, 1, 0.48)",
|
|
5009
|
+
"--cs-accent-grad-a": "#513801",
|
|
5010
|
+
"--cs-accent-grad-b": "#FCAF91",
|
|
5011
|
+
"--cs-color-text-accent": "#201300",
|
|
5012
|
+
"--cs-color-link": "#201300"
|
|
4554
5013
|
},
|
|
4555
|
-
"
|
|
4556
|
-
"--cs-accent": "#
|
|
4557
|
-
"--cs-accent-strong": "#
|
|
4558
|
-
"--cs-accent-bright": "#
|
|
4559
|
-
"--cs-accent-on": "#
|
|
4560
|
-
"--cs-accent-tint": "#
|
|
4561
|
-
"--cs-accent-ink": "#
|
|
4562
|
-
"--cs-accent-glow": "rgba(
|
|
4563
|
-
"--cs-accent-grad-a": "#
|
|
5014
|
+
"hoa.plasma": {
|
|
5015
|
+
"--cs-accent": "#FFE1D8",
|
|
5016
|
+
"--cs-accent-strong": "#967C75",
|
|
5017
|
+
"--cs-accent-bright": "#FCE6DF",
|
|
5018
|
+
"--cs-accent-on": "#2C211E",
|
|
5019
|
+
"--cs-accent-tint": "#FEF4F2",
|
|
5020
|
+
"--cs-accent-ink": "#2C211E",
|
|
5021
|
+
"--cs-accent-glow": "rgba(255, 225, 216, 0.48)",
|
|
5022
|
+
"--cs-accent-grad-a": "#FFE1D8",
|
|
4564
5023
|
"--cs-accent-grad-b": "#F4BA17",
|
|
4565
|
-
"--cs-color-text-accent": "#
|
|
4566
|
-
"--cs-color-link": "#
|
|
5024
|
+
"--cs-color-text-accent": "#967C75",
|
|
5025
|
+
"--cs-color-link": "#967C75"
|
|
4567
5026
|
},
|
|
4568
5027
|
"hoa": {
|
|
4569
|
-
"--cs-accent": "#
|
|
4570
|
-
"--cs-accent-strong": "#
|
|
4571
|
-
"--cs-accent-bright": "#
|
|
4572
|
-
"--cs-accent-on": "#
|
|
4573
|
-
"--cs-accent-tint": "#
|
|
4574
|
-
"--cs-accent-ink": "#
|
|
4575
|
-
"--cs-accent-glow": "rgba(
|
|
4576
|
-
"--cs-accent-grad-a": "#
|
|
5028
|
+
"--cs-accent": "#FCAF91",
|
|
5029
|
+
"--cs-accent-strong": "#B47054",
|
|
5030
|
+
"--cs-accent-bright": "#FED3C3",
|
|
5031
|
+
"--cs-accent-on": "#381B10",
|
|
5032
|
+
"--cs-accent-tint": "#FFF4F0",
|
|
5033
|
+
"--cs-accent-ink": "#381B10",
|
|
5034
|
+
"--cs-accent-glow": "rgba(252, 175, 145, 0.48)",
|
|
5035
|
+
"--cs-accent-grad-a": "#FCAF91",
|
|
4577
5036
|
"--cs-accent-grad-b": "#F4BA17",
|
|
4578
|
-
"--cs-color-text-accent": "#
|
|
4579
|
-
"--cs-color-link": "#
|
|
5037
|
+
"--cs-color-text-accent": "#B47054",
|
|
5038
|
+
"--cs-color-link": "#B47054"
|
|
4580
5039
|
},
|
|
4581
5040
|
"hoa.lava": {
|
|
4582
|
-
"--cs-accent": "#
|
|
4583
|
-
"--cs-accent-strong": "#
|
|
4584
|
-
"--cs-accent-bright": "#
|
|
4585
|
-
"--cs-accent-on": "#
|
|
4586
|
-
"--cs-accent-tint": "#
|
|
4587
|
-
"--cs-accent-ink": "#
|
|
4588
|
-
"--cs-accent-glow": "rgba(
|
|
4589
|
-
"--cs-accent-grad-a": "#
|
|
4590
|
-
"--cs-accent-grad-b": "#
|
|
4591
|
-
"--cs-color-text-accent": "#
|
|
4592
|
-
"--cs-color-link": "#
|
|
5041
|
+
"--cs-accent": "#622B06",
|
|
5042
|
+
"--cs-accent-strong": "#280D00",
|
|
5043
|
+
"--cs-accent-bright": "#F1BEA4",
|
|
5044
|
+
"--cs-accent-on": "#361D0F",
|
|
5045
|
+
"--cs-accent-tint": "#FFF4EF",
|
|
5046
|
+
"--cs-accent-ink": "#361D0F",
|
|
5047
|
+
"--cs-accent-glow": "rgba(98, 43, 6, 0.48)",
|
|
5048
|
+
"--cs-accent-grad-a": "#622B06",
|
|
5049
|
+
"--cs-accent-grad-b": "#F4BA17",
|
|
5050
|
+
"--cs-color-text-accent": "#280D00",
|
|
5051
|
+
"--cs-color-link": "#280D00"
|
|
4593
5052
|
},
|
|
4594
|
-
"
|
|
4595
|
-
"--cs-accent": "#
|
|
4596
|
-
"--cs-accent-strong": "#
|
|
4597
|
-
"--cs-accent-bright": "#
|
|
4598
|
-
"--cs-accent-on": "#
|
|
4599
|
-
"--cs-accent-tint": "#
|
|
4600
|
-
"--cs-accent-ink": "#
|
|
4601
|
-
"--cs-accent-glow": "rgba(
|
|
4602
|
-
"--cs-accent-grad-a": "#
|
|
4603
|
-
"--cs-accent-grad-b": "#
|
|
4604
|
-
"--cs-color-text-accent": "#
|
|
4605
|
-
"--cs-color-link": "#
|
|
5053
|
+
"thuy.mist": {
|
|
5054
|
+
"--cs-accent": "#C0F5FC",
|
|
5055
|
+
"--cs-accent-strong": "#5A8A90",
|
|
5056
|
+
"--cs-accent-bright": "#CDF4F9",
|
|
5057
|
+
"--cs-accent-on": "#13282B",
|
|
5058
|
+
"--cs-accent-tint": "#EBFAFC",
|
|
5059
|
+
"--cs-accent-ink": "#13282B",
|
|
5060
|
+
"--cs-accent-glow": "rgba(192, 245, 252, 0.48)",
|
|
5061
|
+
"--cs-accent-grad-a": "#C0F5FC",
|
|
5062
|
+
"--cs-accent-grad-b": "#A3D768",
|
|
5063
|
+
"--cs-color-text-accent": "#5A8A90",
|
|
5064
|
+
"--cs-color-link": "#5A8A90"
|
|
4606
5065
|
},
|
|
4607
5066
|
"thuy": {
|
|
4608
|
-
"--cs-accent": "#
|
|
4609
|
-
"--cs-accent-strong": "#
|
|
4610
|
-
"--cs-accent-bright": "#
|
|
4611
|
-
"--cs-accent-on": "#
|
|
4612
|
-
"--cs-accent-tint": "#
|
|
4613
|
-
"--cs-accent-ink": "#
|
|
4614
|
-
"--cs-accent-glow": "rgba(
|
|
4615
|
-
"--cs-accent-grad-a": "#
|
|
4616
|
-
"--cs-accent-grad-b": "#
|
|
4617
|
-
"--cs-color-text-accent": "#
|
|
4618
|
-
"--cs-color-link": "#
|
|
5067
|
+
"--cs-accent": "#2EDBF7",
|
|
5068
|
+
"--cs-accent-strong": "#108EA0",
|
|
5069
|
+
"--cs-accent-bright": "#99EEFF",
|
|
5070
|
+
"--cs-accent-on": "#012A30",
|
|
5071
|
+
"--cs-accent-tint": "#E7FBFF",
|
|
5072
|
+
"--cs-accent-ink": "#012A30",
|
|
5073
|
+
"--cs-accent-glow": "rgba(46, 219, 247, 0.48)",
|
|
5074
|
+
"--cs-accent-grad-a": "#2EDBF7",
|
|
5075
|
+
"--cs-accent-grad-b": "#A3D768",
|
|
5076
|
+
"--cs-color-text-accent": "#108EA0",
|
|
5077
|
+
"--cs-color-link": "#108EA0"
|
|
4619
5078
|
},
|
|
4620
5079
|
"thuy.ocean": {
|
|
4621
|
-
"--cs-accent": "#
|
|
4622
|
-
"--cs-accent-strong": "#
|
|
4623
|
-
"--cs-accent-bright": "#
|
|
4624
|
-
"--cs-accent-on": "#
|
|
4625
|
-
"--cs-accent-tint": "#
|
|
4626
|
-
"--cs-accent-ink": "#
|
|
4627
|
-
"--cs-accent-glow": "rgba(
|
|
4628
|
-
"--cs-accent-grad-a": "#
|
|
4629
|
-
"--cs-accent-grad-b": "#
|
|
4630
|
-
"--cs-color-text-accent": "#
|
|
4631
|
-
"--cs-color-link": "#
|
|
5080
|
+
"--cs-accent": "#004554",
|
|
5081
|
+
"--cs-accent-strong": "#011A21",
|
|
5082
|
+
"--cs-accent-bright": "#A8D3E0",
|
|
5083
|
+
"--cs-accent-on": "#10282F",
|
|
5084
|
+
"--cs-accent-tint": "#EAFAFF",
|
|
5085
|
+
"--cs-accent-ink": "#10282F",
|
|
5086
|
+
"--cs-accent-glow": "rgba(0, 69, 84, 0.48)",
|
|
5087
|
+
"--cs-accent-grad-a": "#004554",
|
|
5088
|
+
"--cs-accent-grad-b": "#A3D768",
|
|
5089
|
+
"--cs-color-text-accent": "#011A21",
|
|
5090
|
+
"--cs-color-link": "#011A21"
|
|
4632
5091
|
},
|
|
4633
|
-
"
|
|
4634
|
-
"--cs-accent": "#
|
|
4635
|
-
"--cs-accent-strong": "#
|
|
4636
|
-
"--cs-accent-bright": "#
|
|
4637
|
-
"--cs-accent-on": "#
|
|
4638
|
-
"--cs-accent-tint": "#
|
|
4639
|
-
"--cs-accent-ink": "#
|
|
4640
|
-
"--cs-accent-glow": "rgba(
|
|
4641
|
-
"--cs-accent-grad-a": "#
|
|
4642
|
-
"--cs-accent-grad-b": "#
|
|
4643
|
-
"--cs-color-text-accent": "#
|
|
4644
|
-
"--cs-color-link": "#
|
|
5092
|
+
"moc.bamboo": {
|
|
5093
|
+
"--cs-accent": "#E1F1C8",
|
|
5094
|
+
"--cs-accent-strong": "#7C8965",
|
|
5095
|
+
"--cs-accent-bright": "#E5F1D2",
|
|
5096
|
+
"--cs-accent-on": "#212617",
|
|
5097
|
+
"--cs-accent-tint": "#F4F9ED",
|
|
5098
|
+
"--cs-accent-ink": "#212617",
|
|
5099
|
+
"--cs-accent-glow": "rgba(225, 241, 200, 0.48)",
|
|
5100
|
+
"--cs-accent-grad-a": "#E1F1C8",
|
|
5101
|
+
"--cs-accent-grad-b": "#FCAF91",
|
|
5102
|
+
"--cs-color-text-accent": "#7C8965",
|
|
5103
|
+
"--cs-color-link": "#7C8965"
|
|
4645
5104
|
},
|
|
4646
5105
|
"moc": {
|
|
4647
|
-
"--cs-accent": "#
|
|
4648
|
-
"--cs-accent-strong": "#
|
|
4649
|
-
"--cs-accent-bright": "#
|
|
4650
|
-
"--cs-accent-on": "#
|
|
4651
|
-
"--cs-accent-tint": "#
|
|
4652
|
-
"--cs-accent-ink": "#
|
|
4653
|
-
"--cs-accent-glow": "rgba(
|
|
4654
|
-
"--cs-accent-grad-a": "#
|
|
4655
|
-
"--cs-accent-grad-b": "#
|
|
4656
|
-
"--cs-color-text-accent": "#
|
|
4657
|
-
"--cs-color-link": "#
|
|
4658
|
-
},
|
|
4659
|
-
"moc.bamboo": {
|
|
4660
|
-
"--cs-accent": "#A9C177",
|
|
4661
|
-
"--cs-accent-strong": "#6B8442",
|
|
4662
|
-
"--cs-accent-bright": "#C4D69B",
|
|
4663
|
-
"--cs-accent-on": "#1C240F",
|
|
4664
|
-
"--cs-accent-tint": "#F3F7E8",
|
|
4665
|
-
"--cs-accent-ink": "#1C240F",
|
|
4666
|
-
"--cs-accent-glow": "rgba(169, 193, 119, 0.55)",
|
|
4667
|
-
"--cs-accent-grad-a": "#A9C177",
|
|
4668
|
-
"--cs-accent-grad-b": "#7A9B57",
|
|
4669
|
-
"--cs-color-text-accent": "#5B7237",
|
|
4670
|
-
"--cs-color-link": "#5B7237"
|
|
5106
|
+
"--cs-accent": "#A3D768",
|
|
5107
|
+
"--cs-accent-strong": "#629122",
|
|
5108
|
+
"--cs-accent-bright": "#C5ED9C",
|
|
5109
|
+
"--cs-accent-on": "#182A00",
|
|
5110
|
+
"--cs-accent-tint": "#EFFCE3",
|
|
5111
|
+
"--cs-accent-ink": "#182A00",
|
|
5112
|
+
"--cs-accent-glow": "rgba(163, 215, 104, 0.48)",
|
|
5113
|
+
"--cs-accent-grad-a": "#A3D768",
|
|
5114
|
+
"--cs-accent-grad-b": "#FCAF91",
|
|
5115
|
+
"--cs-color-text-accent": "#629122",
|
|
5116
|
+
"--cs-color-link": "#629122"
|
|
4671
5117
|
},
|
|
4672
5118
|
"moc.forest": {
|
|
4673
|
-
"--cs-accent": "#
|
|
4674
|
-
"--cs-accent-strong": "#
|
|
4675
|
-
"--cs-accent-bright": "#
|
|
4676
|
-
"--cs-accent-on": "#
|
|
4677
|
-
"--cs-accent-tint": "#
|
|
4678
|
-
"--cs-accent-ink": "#
|
|
4679
|
-
"--cs-accent-glow": "rgba(
|
|
4680
|
-
"--cs-accent-grad-a": "#
|
|
4681
|
-
"--cs-accent-grad-b": "#
|
|
4682
|
-
"--cs-color-text-accent": "#
|
|
4683
|
-
"--cs-color-link": "#
|
|
5119
|
+
"--cs-accent": "#1A4A01",
|
|
5120
|
+
"--cs-accent-strong": "#051D00",
|
|
5121
|
+
"--cs-accent-bright": "#B0D8A3",
|
|
5122
|
+
"--cs-accent-on": "#162A0E",
|
|
5123
|
+
"--cs-accent-tint": "#ECFDE7",
|
|
5124
|
+
"--cs-accent-ink": "#162A0E",
|
|
5125
|
+
"--cs-accent-glow": "rgba(26, 74, 1, 0.48)",
|
|
5126
|
+
"--cs-accent-grad-a": "#1A4A01",
|
|
5127
|
+
"--cs-accent-grad-b": "#FCAF91",
|
|
5128
|
+
"--cs-color-text-accent": "#051D00",
|
|
5129
|
+
"--cs-color-link": "#051D00"
|
|
5130
|
+
},
|
|
5131
|
+
"kim.titanium": {
|
|
5132
|
+
"--cs-accent": "#FEE5C7",
|
|
5133
|
+
"--cs-accent-strong": "#947F65",
|
|
5134
|
+
"--cs-accent-bright": "#FBE8D2",
|
|
5135
|
+
"--cs-accent-on": "#2B2217",
|
|
5136
|
+
"--cs-accent-tint": "#FDF5ED",
|
|
5137
|
+
"--cs-accent-ink": "#2B2217",
|
|
5138
|
+
"--cs-accent-glow": "rgba(254, 229, 199, 0.48)",
|
|
5139
|
+
"--cs-accent-grad-a": "#FEE5C7",
|
|
5140
|
+
"--cs-accent-grad-b": "#2EDBF7",
|
|
5141
|
+
"--cs-color-text-accent": "#947F65",
|
|
5142
|
+
"--cs-color-link": "#947F65"
|
|
4684
5143
|
},
|
|
4685
5144
|
"kim": {
|
|
4686
|
-
"--cs-accent": "#
|
|
4687
|
-
"--cs-accent-strong": "#
|
|
4688
|
-
"--cs-accent-bright": "#
|
|
4689
|
-
"--cs-accent-on": "#
|
|
4690
|
-
"--cs-accent-tint": "#
|
|
4691
|
-
"--cs-accent-ink": "#
|
|
4692
|
-
"--cs-accent-glow": "rgba(
|
|
4693
|
-
"--cs-accent-grad-a": "#
|
|
4694
|
-
"--cs-accent-grad-b": "#
|
|
4695
|
-
"--cs-color-text-accent": "#
|
|
4696
|
-
"--cs-color-link": "#
|
|
5145
|
+
"--cs-accent": "#F3B958",
|
|
5146
|
+
"--cs-accent-strong": "#AC780B",
|
|
5147
|
+
"--cs-accent-bright": "#FDD89F",
|
|
5148
|
+
"--cs-accent-on": "#312002",
|
|
5149
|
+
"--cs-accent-tint": "#FFF5E7",
|
|
5150
|
+
"--cs-accent-ink": "#312002",
|
|
5151
|
+
"--cs-accent-glow": "rgba(243, 185, 88, 0.48)",
|
|
5152
|
+
"--cs-accent-grad-a": "#F3B958",
|
|
5153
|
+
"--cs-accent-grad-b": "#2EDBF7",
|
|
5154
|
+
"--cs-color-text-accent": "#AC780B",
|
|
5155
|
+
"--cs-color-link": "#AC780B"
|
|
4697
5156
|
},
|
|
4698
5157
|
"kim.steel": {
|
|
4699
|
-
"--cs-accent": "#
|
|
4700
|
-
"--cs-accent-strong": "#
|
|
4701
|
-
"--cs-accent-bright": "#
|
|
4702
|
-
"--cs-accent-on": "#
|
|
4703
|
-
"--cs-accent-tint": "#
|
|
4704
|
-
"--cs-accent-ink": "#
|
|
4705
|
-
"--cs-accent-glow": "rgba(
|
|
4706
|
-
"--cs-accent-grad-a": "#
|
|
4707
|
-
"--cs-accent-grad-b": "#
|
|
4708
|
-
"--cs-color-text-accent": "#
|
|
4709
|
-
"--cs-color-link": "#
|
|
4710
|
-
},
|
|
4711
|
-
"kim.titanium": {
|
|
4712
|
-
"--cs-accent": "#8A7F72",
|
|
4713
|
-
"--cs-accent-strong": "#56504A",
|
|
4714
|
-
"--cs-accent-bright": "#D9CFC0",
|
|
4715
|
-
"--cs-accent-on": "#171310",
|
|
4716
|
-
"--cs-accent-tint": "#EFEBE5",
|
|
4717
|
-
"--cs-accent-ink": "#171310",
|
|
4718
|
-
"--cs-accent-glow": "rgba(138, 127, 114, 0.5)",
|
|
4719
|
-
"--cs-accent-grad-a": "#8A7F72",
|
|
4720
|
-
"--cs-accent-grad-b": "#BFB29B",
|
|
4721
|
-
"--cs-color-text-accent": "#56504A",
|
|
4722
|
-
"--cs-color-link": "#56504A"
|
|
5158
|
+
"--cs-accent": "#503901",
|
|
5159
|
+
"--cs-accent-strong": "#1F1400",
|
|
5160
|
+
"--cs-accent-bright": "#DCC8A2",
|
|
5161
|
+
"--cs-accent-on": "#2D220E",
|
|
5162
|
+
"--cs-accent-tint": "#FEF6E7",
|
|
5163
|
+
"--cs-accent-ink": "#2D220E",
|
|
5164
|
+
"--cs-accent-glow": "rgba(80, 57, 1, 0.48)",
|
|
5165
|
+
"--cs-accent-grad-a": "#503901",
|
|
5166
|
+
"--cs-accent-grad-b": "#2EDBF7",
|
|
5167
|
+
"--cs-color-text-accent": "#1F1400",
|
|
5168
|
+
"--cs-color-link": "#1F1400"
|
|
4723
5169
|
}
|
|
4724
5170
|
}
|
|
4725
5171
|
};
|
|
@@ -5170,6 +5616,8 @@ __ds_ns.FloatingActionButton = __ds_scope.FloatingActionButton;
|
|
|
5170
5616
|
|
|
5171
5617
|
__ds_ns.Accordion = __ds_scope.Accordion;
|
|
5172
5618
|
|
|
5619
|
+
__ds_ns.AspectRatio = __ds_scope.AspectRatio;
|
|
5620
|
+
|
|
5173
5621
|
__ds_ns.Avatar = __ds_scope.Avatar;
|
|
5174
5622
|
|
|
5175
5623
|
__ds_ns.AvatarGroup = __ds_scope.AvatarGroup;
|
|
@@ -5188,6 +5636,8 @@ __ds_ns.Chart = __ds_scope.Chart;
|
|
|
5188
5636
|
|
|
5189
5637
|
__ds_ns.CodeBlock = __ds_scope.CodeBlock;
|
|
5190
5638
|
|
|
5639
|
+
__ds_ns.Collapsible = __ds_scope.Collapsible;
|
|
5640
|
+
|
|
5191
5641
|
__ds_ns.Comment = __ds_scope.Comment;
|
|
5192
5642
|
|
|
5193
5643
|
__ds_ns.DescriptionList = __ds_scope.DescriptionList;
|
|
@@ -5196,6 +5646,8 @@ __ds_ns.Divider = __ds_scope.Divider;
|
|
|
5196
5646
|
|
|
5197
5647
|
__ds_ns.Image = __ds_scope.Image;
|
|
5198
5648
|
|
|
5649
|
+
__ds_ns.Item = __ds_scope.Item;
|
|
5650
|
+
|
|
5199
5651
|
__ds_ns.Kbd = __ds_scope.Kbd;
|
|
5200
5652
|
|
|
5201
5653
|
__ds_ns.List = __ds_scope.List;
|
|
@@ -5206,6 +5658,8 @@ __ds_ns.Masonry = __ds_scope.Masonry;
|
|
|
5206
5658
|
|
|
5207
5659
|
__ds_ns.QRCode = __ds_scope.QRCode;
|
|
5208
5660
|
|
|
5661
|
+
__ds_ns.ScrollArea = __ds_scope.ScrollArea;
|
|
5662
|
+
|
|
5209
5663
|
__ds_ns.Sortable = __ds_scope.Sortable;
|
|
5210
5664
|
|
|
5211
5665
|
__ds_ns.Splitter = __ds_scope.Splitter;
|
|
@@ -5284,6 +5738,8 @@ __ds_ns.InputOTP = __ds_scope.InputOTP;
|
|
|
5284
5738
|
|
|
5285
5739
|
__ds_ns.Mentions = __ds_scope.Mentions;
|
|
5286
5740
|
|
|
5741
|
+
__ds_ns.NativeSelect = __ds_scope.NativeSelect;
|
|
5742
|
+
|
|
5287
5743
|
__ds_ns.NumberField = __ds_scope.NumberField;
|
|
5288
5744
|
|
|
5289
5745
|
__ds_ns.Radio = __ds_scope.Radio;
|
|
@@ -5360,6 +5816,8 @@ __ds_ns.Tab = __ds_scope.Tab;
|
|
|
5360
5816
|
|
|
5361
5817
|
__ds_ns.Toolbar = __ds_scope.Toolbar;
|
|
5362
5818
|
|
|
5819
|
+
__ds_ns.AlertDialog = __ds_scope.AlertDialog;
|
|
5820
|
+
|
|
5363
5821
|
__ds_ns.ContextMenu = __ds_scope.ContextMenu;
|
|
5364
5822
|
|
|
5365
5823
|
__ds_ns.Drawer = __ds_scope.Drawer;
|