@databricks/design-system 2.0.9 → 2.0.10
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/AGENTS.md +7 -7
- package/CHANGELOG.md +22 -0
- package/README.md +14 -3
- package/design-guidance/docs/README.md +42 -5
- package/design-guidance/docs/component-reference.md +100 -0
- package/design-guidance/docs/tokens.md +2 -2
- package/design-guidance/skills/dbui-build-screen.md +1 -1
- package/design-guidance/skills/dbui-check-guidelines.md +1 -1
- package/design-guidance/skills/dbui-pick-component.md +1 -1
- package/design-guidance/skills/dbui-pick-icon.md +1 -1
- package/design-guidance/skills/dbui-review.md +1 -1
- package/design-guidance/skills/dbui-validate.md +1 -1
- package/dist/{RHFControlledTypeaheadComboboxV2-Boee19c1.js → RHFControlledTypeaheadComboboxV2-B8Al2z1N.js} +4 -3
- package/dist/{RHFControlledTypeaheadComboboxV2-Boee19c1.js.map → RHFControlledTypeaheadComboboxV2-B8Al2z1N.js.map} +1 -1
- package/dist/{WizardStepContentWrapper-DfErft8z.js → WizardStepContentWrapper-D_OEwjUE.js} +1310 -492
- package/dist/WizardStepContentWrapper-D_OEwjUE.js.map +1 -0
- package/dist/all-styles.css +89 -0
- package/dist/assets/fonts/dm-mono/DMMono-Regular.woff2 +0 -0
- package/dist/assets/fonts/dm-mono/dm-mono.css +11 -0
- package/dist/assets/fonts/dm-sans/DMSans-variable.woff2 +0 -0
- package/dist/assets/fonts/dm-sans/dm-sans.css +11 -0
- package/dist/assets/graphics/dark/accessDeniedGraphic.svg +1 -0
- package/dist/assets/graphics/dark/auth0Graphic.svg +1 -0
- package/dist/assets/graphics/dark/auth0GraphicLarge.svg +73 -0
- package/dist/assets/graphics/dark/dataMaskiingGraphic.svg +1 -0
- package/dist/assets/graphics/dark/emptyDashboardGraphic.svg +9 -0
- package/dist/assets/graphics/dark/missingBranchGraphic.svg +1 -0
- package/dist/assets/graphics/dark/missingGraphic.svg +1 -0
- package/dist/assets/graphics/dark/outageGraphic.svg +11 -0
- package/dist/assets/graphics/dark/usageOverageGraphic.svg +1 -0
- package/dist/assets/graphics/dark/usageSpikeGraphic.svg +1 -0
- package/dist/assets/graphics/light/accessDeniedGraphic.svg +1 -0
- package/dist/assets/graphics/light/auth0Graphic.svg +1 -0
- package/dist/assets/graphics/light/auth0GraphicLarge.svg +73 -0
- package/dist/assets/graphics/light/dataMaskiingGraphic.svg +1 -0
- package/dist/assets/graphics/light/emptyDashboardGraphic.svg +1 -0
- package/dist/assets/graphics/light/missingBranchGraphic.svg +1 -0
- package/dist/assets/graphics/light/missingGraphic.svg +1 -0
- package/dist/assets/graphics/light/outageGraphic.svg +1 -0
- package/dist/assets/graphics/light/usageOverageGraphic.svg +1 -0
- package/dist/assets/graphics/light/usageSpikeGraphic.svg +1 -0
- package/dist/assets/icons/AZHorizontalIcon.svg +4 -0
- package/dist/assets/icons/AZVerticalIcon.svg +11 -0
- package/dist/assets/icons/AlignCenterIcon.svg +7 -0
- package/dist/assets/icons/AlignJustifyIcon.svg +3 -0
- package/dist/assets/icons/AlignLeftIcon.svg +7 -0
- package/dist/assets/icons/AlignRightIcon.svg +7 -0
- package/dist/assets/icons/AlignVerticalBottomIcon.svg +3 -0
- package/dist/assets/icons/AlignVerticalCenterIcon.svg +5 -0
- package/dist/assets/icons/AlignVerticalTopIcon.svg +3 -0
- package/dist/assets/icons/AppIcon.svg +3 -0
- package/dist/assets/icons/ArrowDownDotIcon.svg +4 -0
- package/dist/assets/icons/ArrowDownFillIcon.svg +3 -0
- package/dist/assets/icons/ArrowDownIcon.svg +3 -0
- package/dist/assets/icons/ArrowInIcon.svg +4 -0
- package/dist/assets/icons/ArrowInTableIcon.svg +4 -0
- package/dist/assets/icons/ArrowLeftIcon.svg +3 -0
- package/dist/assets/icons/ArrowOutTableIcon.svg +4 -0
- package/dist/assets/icons/ArrowOverIcon.svg +4 -0
- package/dist/assets/icons/ArrowRightIcon.svg +3 -0
- package/dist/assets/icons/ArrowUpDotIcon.svg +4 -0
- package/dist/assets/icons/ArrowUpFillIcon.svg +3 -0
- package/dist/assets/icons/ArrowUpIcon.svg +3 -0
- package/dist/assets/icons/ArrowsCollapseIcon.svg +4 -0
- package/dist/assets/icons/ArrowsConnectIcon.svg +6 -0
- package/dist/assets/icons/ArrowsExpandIcon.svg +4 -0
- package/dist/assets/icons/ArrowsUpDownIcon.svg +4 -0
- package/dist/assets/icons/AssistantIcon.svg +3 -0
- package/dist/assets/icons/AtIcon.svg +3 -0
- package/dist/assets/icons/BackupIcon.svg +3 -0
- package/dist/assets/icons/BadgeCodeIcon.svg +5 -0
- package/dist/assets/icons/BadgeCodeOffIcon.svg +5 -0
- package/dist/assets/icons/BarChartIcon.svg +7 -0
- package/dist/assets/icons/BarGroupedIcon.svg +4 -0
- package/dist/assets/icons/BarStackedIcon.svg +3 -0
- package/dist/assets/icons/BarStackedPercentageIcon.svg +3 -0
- package/dist/assets/icons/BarsAscendingHorizontalIcon.svg +5 -0
- package/dist/assets/icons/BarsAscendingVerticalIcon.svg +5 -0
- package/dist/assets/icons/BarsDescendingHorizontalIcon.svg +5 -0
- package/dist/assets/icons/BarsDescendingVerticalIcon.svg +5 -0
- package/dist/assets/icons/BeakerIcon.svg +3 -0
- package/dist/assets/icons/BinaryIcon.svg +3 -0
- package/dist/assets/icons/BlockQuoteIcon.svg +8 -0
- package/dist/assets/icons/BoldIcon.svg +3 -0
- package/dist/assets/icons/BookIcon.svg +3 -0
- package/dist/assets/icons/BookmarkFillIcon.svg +3 -0
- package/dist/assets/icons/BookmarkIcon.svg +3 -0
- package/dist/assets/icons/BooksIcon.svg +5 -0
- package/dist/assets/icons/BracketsCheckIcon.svg +5 -0
- package/dist/assets/icons/BracketsCurlyIcon.svg +4 -0
- package/dist/assets/icons/BracketsErrorIcon.svg +5 -0
- package/dist/assets/icons/BracketsSquareIcon.svg +3 -0
- package/dist/assets/icons/BracketsXIcon.svg +12 -0
- package/dist/assets/icons/BranchCheckIcon.svg +4 -0
- package/dist/assets/icons/BranchIcon.svg +3 -0
- package/dist/assets/icons/BranchResetIcon.svg +5 -0
- package/dist/assets/icons/BriefcaseFillIcon.svg +3 -0
- package/dist/assets/icons/BriefcaseIcon.svg +3 -0
- package/dist/assets/icons/BrushIcon.svg +3 -0
- package/dist/assets/icons/BugIcon.svg +3 -0
- package/dist/assets/icons/CalendarClockIcon.svg +5 -0
- package/dist/assets/icons/CalendarEventIcon.svg +4 -0
- package/dist/assets/icons/CalendarIcon.svg +3 -0
- package/dist/assets/icons/CalendarRangeIcon.svg +11 -0
- package/dist/assets/icons/CalendarSyncIcon.svg +5 -0
- package/dist/assets/icons/CameraIcon.svg +3 -0
- package/dist/assets/icons/CapitalizeIcon.svg +3 -0
- package/dist/assets/icons/CaretDownSquareIcon.svg +4 -0
- package/dist/assets/icons/CaretUpSquareIcon.svg +4 -0
- package/dist/assets/icons/CatalogCloudIcon.svg +4 -0
- package/dist/assets/icons/CatalogGearIcon.svg +11 -0
- package/dist/assets/icons/CatalogHomeIcon.svg +4 -0
- package/dist/assets/icons/CatalogIcon.svg +3 -0
- package/dist/assets/icons/CatalogOffIcon.svg +11 -0
- package/dist/assets/icons/CatalogSharedIcon.svg +4 -0
- package/dist/assets/icons/CatalogUserHomeIcon.svg +4 -0
- package/dist/assets/icons/CellsSquareIcon.svg +3 -0
- package/dist/assets/icons/CertifiedFillIcon.svg +3 -0
- package/dist/assets/icons/CertifiedFillSmallIcon.svg +3 -0
- package/dist/assets/icons/CertifiedIcon.svg +11 -0
- package/dist/assets/icons/ChainIcon.svg +4 -0
- package/dist/assets/icons/ChartLineIcon.svg +4 -0
- package/dist/assets/icons/ChatNewTabIcon.svg +3 -0
- package/dist/assets/icons/ChatSpinnerIcon.svg +3 -0
- package/dist/assets/icons/CheckCircleBadgeIcon.svg +5 -0
- package/dist/assets/icons/CheckCircleFillIcon.svg +3 -0
- package/dist/assets/icons/CheckCircleIcon.svg +4 -0
- package/dist/assets/icons/CheckCircleSmallIcon.svg +3 -0
- package/dist/assets/icons/CheckIcon.svg +3 -0
- package/dist/assets/icons/CheckLineIcon.svg +3 -0
- package/dist/assets/icons/CheckSmallIcon.svg +3 -0
- package/dist/assets/icons/CheckboxIcon.svg +4 -0
- package/dist/assets/icons/ChecklistIcon.svg +7 -0
- package/dist/assets/icons/ChevronDoubleDownIcon.svg +4 -0
- package/dist/assets/icons/ChevronDoubleLeftIcon.svg +4 -0
- package/dist/assets/icons/ChevronDoubleLeftOffIcon.svg +4 -0
- package/dist/assets/icons/ChevronDoubleRightIcon.svg +4 -0
- package/dist/assets/icons/ChevronDoubleRightOffIcon.svg +4 -0
- package/dist/assets/icons/ChevronDoubleUpIcon.svg +4 -0
- package/dist/assets/icons/ChevronDownIcon.svg +3 -0
- package/dist/assets/icons/ChevronLeftIcon.svg +3 -0
- package/dist/assets/icons/ChevronRightIcon.svg +3 -0
- package/dist/assets/icons/ChevronUpIcon.svg +3 -0
- package/dist/assets/icons/ChipIcon.svg +4 -0
- package/dist/assets/icons/CircleIcon.svg +3 -0
- package/dist/assets/icons/CircleOffIcon.svg +3 -0
- package/dist/assets/icons/CircleOffLargeIcon.svg +4 -0
- package/dist/assets/icons/CircleOutlineIcon.svg +3 -0
- package/dist/assets/icons/CircleOutlineLargeIcon.svg +3 -0
- package/dist/assets/icons/ClipboardIcon.svg +3 -0
- package/dist/assets/icons/ClockIcon.svg +4 -0
- package/dist/assets/icons/ClockKeyIcon.svg +5 -0
- package/dist/assets/icons/ClockOffIcon.svg +5 -0
- package/dist/assets/icons/CloseIcon.svg +3 -0
- package/dist/assets/icons/CloseSmallIcon.svg +3 -0
- package/dist/assets/icons/CloudCheckIcon.svg +4 -0
- package/dist/assets/icons/CloudDatabaseIcon.svg +4 -0
- package/dist/assets/icons/CloudDownloadIcon.svg +4 -0
- package/dist/assets/icons/CloudIcon.svg +3 -0
- package/dist/assets/icons/CloudKeyIcon.svg +3 -0
- package/dist/assets/icons/CloudModelIcon.svg +4 -0
- package/dist/assets/icons/CloudOffIcon.svg +4 -0
- package/dist/assets/icons/CloudUploadIcon.svg +4 -0
- package/dist/assets/icons/CodeIcon.svg +4 -0
- package/dist/assets/icons/ColorFillIcon.svg +3 -0
- package/dist/assets/icons/ColorMappingEditIcon.svg +6 -0
- package/dist/assets/icons/ColorMappingIcon.svg +6 -0
- package/dist/assets/icons/ColumnIcon.svg +3 -0
- package/dist/assets/icons/ColumnSplitIcon.svg +3 -0
- package/dist/assets/icons/ColumnTagIcon.svg +4 -0
- package/dist/assets/icons/ColumnsIcon.svg +3 -0
- package/dist/assets/icons/CommandIcon.svg +3 -0
- package/dist/assets/icons/CommandPaletteIcon.svg +3 -0
- package/dist/assets/icons/CompassIcon.svg +4 -0
- package/dist/assets/icons/ConnectIcon.svg +6 -0
- package/dist/assets/icons/CopyIcon.svg +3 -0
- package/dist/assets/icons/CreditCardIcon.svg +4 -0
- package/dist/assets/icons/CursorClickIcon.svg +7 -0
- package/dist/assets/icons/CursorIcon.svg +10 -0
- package/dist/assets/icons/CursorTypeIcon.svg +4 -0
- package/dist/assets/icons/CustomAppIcon.svg +4 -0
- package/dist/assets/icons/DAGHorizontalIcon.svg +3 -0
- package/dist/assets/icons/DAGIcon.svg +3 -0
- package/dist/assets/icons/DAGVerticalIcon.svg +3 -0
- package/dist/assets/icons/DangerFillIcon.svg +3 -0
- package/dist/assets/icons/DangerIcon.svg +5 -0
- package/dist/assets/icons/DangerSmallIcon.svg +3 -0
- package/dist/assets/icons/DashIcon.svg +3 -0
- package/dist/assets/icons/DashboardCodeIcon.svg +5 -0
- package/dist/assets/icons/DashboardIcon.svg +3 -0
- package/dist/assets/icons/DataIcon.svg +5 -0
- package/dist/assets/icons/DatabaseClockIcon.svg +4 -0
- package/dist/assets/icons/DatabaseIcon.svg +3 -0
- package/dist/assets/icons/DatabaseImportIcon.svg +4 -0
- package/dist/assets/icons/DecimalIcon.svg +5 -0
- package/dist/assets/icons/DeprecatedIcon.svg +3 -0
- package/dist/assets/icons/DeprecatedSmallIcon.svg +3 -0
- package/dist/assets/icons/DollarIcon.svg +4 -0
- package/dist/assets/icons/DomainCirclesThree.svg +5 -0
- package/dist/assets/icons/DomainsIcon.svg +5 -0
- package/dist/assets/icons/DotsCircleIcon.svg +13 -0
- package/dist/assets/icons/DownloadIcon.svg +4 -0
- package/dist/assets/icons/DragIcon.svg +8 -0
- package/dist/assets/icons/ERDIcon.svg +3 -0
- package/dist/assets/icons/ExpandLessIcon.svg +4 -0
- package/dist/assets/icons/ExpandMoreIcon.svg +4 -0
- package/dist/assets/icons/FaceFrownIcon.svg +13 -0
- package/dist/assets/icons/FaceNeutralIcon.svg +13 -0
- package/dist/assets/icons/FaceSmileIcon.svg +13 -0
- package/dist/assets/icons/FileCodeIcon.svg +5 -0
- package/dist/assets/icons/FileCubeIcon.svg +4 -0
- package/dist/assets/icons/FileDocumentIcon.svg +5 -0
- package/dist/assets/icons/FileIcon.svg +3 -0
- package/dist/assets/icons/FileImageIcon.svg +5 -0
- package/dist/assets/icons/FileLockIcon.svg +11 -0
- package/dist/assets/icons/FileModelIcon.svg +4 -0
- package/dist/assets/icons/FileNewIcon.svg +4 -0
- package/dist/assets/icons/FilePipelineIcon.svg +4 -0
- package/dist/assets/icons/FilterFillIcon.svg +3 -0
- package/dist/assets/icons/FilterIcon.svg +3 -0
- package/dist/assets/icons/FlagPointerIcon.svg +3 -0
- package/dist/assets/icons/FloatIcon.svg +5 -0
- package/dist/assets/icons/FlowIcon.svg +3 -0
- package/dist/assets/icons/FlowsIcon.svg +3 -0
- package/dist/assets/icons/FolderBranchFillIcon.svg +4 -0
- package/dist/assets/icons/FolderBranchIcon.svg +3 -0
- package/dist/assets/icons/FolderCloudFilledIcon.svg +11 -0
- package/dist/assets/icons/FolderCloudIcon.svg +11 -0
- package/dist/assets/icons/FolderCubeIcon.svg +4 -0
- package/dist/assets/icons/FolderCubeOutlineIcon.svg +4 -0
- package/dist/assets/icons/FolderFillIcon.svg +3 -0
- package/dist/assets/icons/FolderHomeIcon.svg +4 -0
- package/dist/assets/icons/FolderIcon.svg +3 -0
- package/dist/assets/icons/FolderNewIcon.svg +4 -0
- package/dist/assets/icons/FolderNodeIcon.svg +3 -0
- package/dist/assets/icons/FolderOpenBranchIcon.svg +4 -0
- package/dist/assets/icons/FolderOpenCloudIcon.svg +4 -0
- package/dist/assets/icons/FolderOpenCubeIcon.svg +4 -0
- package/dist/assets/icons/FolderOpenIcon.svg +3 -0
- package/dist/assets/icons/FolderOpenPipelineIcon.svg +4 -0
- package/dist/assets/icons/FolderOutlinePipelineIcon.svg +4 -0
- package/dist/assets/icons/FolderSolidPipelineIcon.svg +4 -0
- package/dist/assets/icons/FontIcon.svg +10 -0
- package/dist/assets/icons/ForkHorizontalIcon.svg +3 -0
- package/dist/assets/icons/ForkIcon.svg +3 -0
- package/dist/assets/icons/FullscreenExitIcon.svg +6 -0
- package/dist/assets/icons/FullscreenIcon.svg +6 -0
- package/dist/assets/icons/FunctionIcon.svg +10 -0
- package/dist/assets/icons/FunctionInputIcon.svg +6 -0
- package/dist/assets/icons/GavelIcon.svg +3 -0
- package/dist/assets/icons/GearFillIcon.svg +3 -0
- package/dist/assets/icons/GearIcon.svg +11 -0
- package/dist/assets/icons/GenieCodeIcon.svg +3 -0
- package/dist/assets/icons/GenieDeepResearchIcon.svg +6 -0
- package/dist/assets/icons/GiftIcon.svg +3 -0
- package/dist/assets/icons/GitCommitIcon.svg +3 -0
- package/dist/assets/icons/GitMergeIcon.svg +3 -0
- package/dist/assets/icons/GitRebaseIcon.svg +4 -0
- package/dist/assets/icons/GlobeIcon.svg +10 -0
- package/dist/assets/icons/GridDashIcon.svg +10 -0
- package/dist/assets/icons/GridIcon.svg +6 -0
- package/dist/assets/icons/GroupIcon.svg +12 -0
- package/dist/assets/icons/H1Icon.svg +4 -0
- package/dist/assets/icons/H2Icon.svg +4 -0
- package/dist/assets/icons/H3Icon.svg +4 -0
- package/dist/assets/icons/H4Icon.svg +4 -0
- package/dist/assets/icons/H5Icon.svg +4 -0
- package/dist/assets/icons/H6Icon.svg +4 -0
- package/dist/assets/icons/HashIcon.svg +3 -0
- package/dist/assets/icons/HistoryIcon.svg +11 -0
- package/dist/assets/icons/HomeIcon.svg +3 -0
- package/dist/assets/icons/ImageIcon.svg +4 -0
- package/dist/assets/icons/IndentDecreaseIcon.svg +7 -0
- package/dist/assets/icons/IndentIncreaseIcon.svg +7 -0
- package/dist/assets/icons/InfinityIcon.svg +3 -0
- package/dist/assets/icons/InfoBookIcon.svg +5 -0
- package/dist/assets/icons/InfoFillIcon.svg +3 -0
- package/dist/assets/icons/InfoIcon.svg +3 -0
- package/dist/assets/icons/InfoSmallIcon.svg +5 -0
- package/dist/assets/icons/IngestionIcon.svg +4 -0
- package/dist/assets/icons/ItalicIcon.svg +3 -0
- package/dist/assets/icons/JoinOperatorIcon.svg +3 -0
- package/dist/assets/icons/KeyIcon.svg +3 -0
- package/dist/assets/icons/KeyboardIcon.svg +3 -0
- package/dist/assets/icons/LakebaseCatalogIcon.svg +4 -0
- package/dist/assets/icons/LakebaseIcon.svg +3 -0
- package/dist/assets/icons/LakeflowDesignerIcon.svg +3 -0
- package/dist/assets/icons/LakewatchAlertIcon.svg +4 -0
- package/dist/assets/icons/LakewatchDatasourceIcon.svg +3 -0
- package/dist/assets/icons/LakewatchDetectionRuleIcon.svg +3 -0
- package/dist/assets/icons/LakewatchIcon.svg +4 -0
- package/dist/assets/icons/LakewatchParserIcon.svg +16 -0
- package/dist/assets/icons/LayerGraphIcon.svg +5 -0
- package/dist/assets/icons/LayerIcon.svg +5 -0
- package/dist/assets/icons/LeafIcon.svg +3 -0
- package/dist/assets/icons/LetterFormatIcon.svg +5 -0
- package/dist/assets/icons/LettersIcon.svg +5 -0
- package/dist/assets/icons/LettersNumbersIcon.svg +8 -0
- package/dist/assets/icons/LibrariesIcon.svg +5 -0
- package/dist/assets/icons/LifesaverIcon.svg +3 -0
- package/dist/assets/icons/LightbulbIcon.svg +8 -0
- package/dist/assets/icons/LightningCircleFillIcon.svg +3 -0
- package/dist/assets/icons/LightningIcon.svg +3 -0
- package/dist/assets/icons/LinearLineIcon.svg +3 -0
- package/dist/assets/icons/LinkIcon.svg +5 -0
- package/dist/assets/icons/LinkOffIcon.svg +5 -0
- package/dist/assets/icons/ListBorderIcon.svg +9 -0
- package/dist/assets/icons/ListClearIcon.svg +13 -0
- package/dist/assets/icons/ListIcon.svg +6 -0
- package/dist/assets/icons/ListNumberIcon.svg +6 -0
- package/dist/assets/icons/LoadingIcon.svg +5 -0
- package/dist/assets/icons/LockFillIcon.svg +3 -0
- package/dist/assets/icons/LockIcon.svg +4 -0
- package/dist/assets/icons/LockShareIcon.svg +4 -0
- package/dist/assets/icons/LockUnlockedIcon.svg +4 -0
- package/dist/assets/icons/LoopIcon.svg +3 -0
- package/dist/assets/icons/LowercaseIcon.svg +4 -0
- package/dist/assets/icons/MailIcon.svg +3 -0
- package/dist/assets/icons/MapIcon.svg +3 -0
- package/dist/assets/icons/MarkdownIcon.svg +4 -0
- package/dist/assets/icons/McpIcon.svg +11 -0
- package/dist/assets/icons/MeasureIcon.svg +3 -0
- package/dist/assets/icons/MegaphoneIcon.svg +3 -0
- package/dist/assets/icons/MenuIcon.svg +3 -0
- package/dist/assets/icons/MicrophoneIcon.svg +4 -0
- package/dist/assets/icons/MicrophoneOffIcon.svg +5 -0
- package/dist/assets/icons/MinusCircleFillIcon.svg +3 -0
- package/dist/assets/icons/MinusCircleIcon.svg +4 -0
- package/dist/assets/icons/MinusCircleSmallIcon.svg +4 -0
- package/dist/assets/icons/MinusSquareIcon.svg +4 -0
- package/dist/assets/icons/ModelsIcon.svg +10 -0
- package/dist/assets/icons/MonotoneLineIcon.svg +3 -0
- package/dist/assets/icons/MoonIcon.svg +3 -0
- package/dist/assets/icons/NeonProjectIcon.svg +4 -0
- package/dist/assets/icons/NewChatIcon.svg +4 -0
- package/dist/assets/icons/NewTabIcon.svg +4 -0
- package/dist/assets/icons/NewWindowIcon.svg +4 -0
- package/dist/assets/icons/NoCaseIcon.svg +4 -0
- package/dist/assets/icons/NoIcon.svg +3 -0
- package/dist/assets/icons/NotebookIcon.svg +3 -0
- package/dist/assets/icons/NotebookPipelineIcon.svg +4 -0
- package/dist/assets/icons/NotificationIcon.svg +3 -0
- package/dist/assets/icons/NotificationOffIcon.svg +3 -0
- package/dist/assets/icons/NumberFormatIcon.svg +5 -0
- package/dist/assets/icons/NumbersIcon.svg +5 -0
- package/dist/assets/icons/OfficeIcon.svg +6 -0
- package/dist/assets/icons/OntologyIcon.svg +5 -0
- package/dist/assets/icons/OperatorIcon.svg +4 -0
- package/dist/assets/icons/OverflowHorizontalIcon.svg +3 -0
- package/dist/assets/icons/OverflowIcon.svg +5 -0
- package/dist/assets/icons/PageBottomIcon.svg +3 -0
- package/dist/assets/icons/PageFirstIcon.svg +3 -0
- package/dist/assets/icons/PageIcon.svg +6 -0
- package/dist/assets/icons/PageLastIcon.svg +3 -0
- package/dist/assets/icons/PageTopIcon.svg +3 -0
- package/dist/assets/icons/PanelDockedIcon.svg +3 -0
- package/dist/assets/icons/PanelFloatingIcon.svg +3 -0
- package/dist/assets/icons/PaperclipIcon.svg +3 -0
- package/dist/assets/icons/PassFailChecklistIcon.svg +7 -0
- package/dist/assets/icons/PauseIcon.svg +3 -0
- package/dist/assets/icons/PencilFillIcon.svg +3 -0
- package/dist/assets/icons/PencilIcon.svg +3 -0
- package/dist/assets/icons/PencilSparkleIcon.svg +5 -0
- package/dist/assets/icons/PieChartIcon.svg +4 -0
- package/dist/assets/icons/PinCancelIcon.svg +4 -0
- package/dist/assets/icons/PinFillIcon.svg +3 -0
- package/dist/assets/icons/PinIcon.svg +3 -0
- package/dist/assets/icons/PipelineCodeIcon.svg +5 -0
- package/dist/assets/icons/PipelineCubeIcon.svg +4 -0
- package/dist/assets/icons/PipelineIcon.svg +3 -0
- package/dist/assets/icons/PivotOperatorIcon.svg +4 -0
- package/dist/assets/icons/PlayCircleFillIcon.svg +3 -0
- package/dist/assets/icons/PlayCircleIcon.svg +4 -0
- package/dist/assets/icons/PlayDoubleIcon.svg +4 -0
- package/dist/assets/icons/PlayIcon.svg +3 -0
- package/dist/assets/icons/PlayMultipleIcon.svg +3 -0
- package/dist/assets/icons/PlugIcon.svg +4 -0
- package/dist/assets/icons/PlusCircleFillIcon.svg +3 -0
- package/dist/assets/icons/PlusCircleIcon.svg +4 -0
- package/dist/assets/icons/PlusCircleSmallIcon.svg +4 -0
- package/dist/assets/icons/PlusIcon.svg +3 -0
- package/dist/assets/icons/PlusMinusSquareIcon.svg +5 -0
- package/dist/assets/icons/PlusSquareIcon.svg +4 -0
- package/dist/assets/icons/PositionBottomIcon.svg +4 -0
- package/dist/assets/icons/PositionLeftIcon.svg +4 -0
- package/dist/assets/icons/PositionRightIcon.svg +4 -0
- package/dist/assets/icons/PositionTopIcon.svg +4 -0
- package/dist/assets/icons/PullRequestIcon.svg +4 -0
- package/dist/assets/icons/PuzzleIcon.svg +3 -0
- package/dist/assets/icons/QueryEditorIcon.svg +5 -0
- package/dist/assets/icons/QueryIcon.svg +12 -0
- package/dist/assets/icons/QuestionMarkFillIcon.svg +3 -0
- package/dist/assets/icons/QuestionMarkIcon.svg +5 -0
- package/dist/assets/icons/RadioIcon.svg +3 -0
- package/dist/assets/icons/ReaderModeIcon.svg +6 -0
- package/dist/assets/icons/RedoIcon.svg +10 -0
- package/dist/assets/icons/RefreshIcon.svg +3 -0
- package/dist/assets/icons/RefreshPlayIcon.svg +4 -0
- package/dist/assets/icons/RefreshXIcon.svg +4 -0
- package/dist/assets/icons/ReplyIcon.svg +8 -0
- package/dist/assets/icons/ResizeIcon.svg +3 -0
- package/dist/assets/icons/RichTextIcon.svg +8 -0
- package/dist/assets/icons/RobotIcon.svg +3 -0
- package/dist/assets/icons/RocketIcon.svg +4 -0
- package/dist/assets/icons/RowsIcon.svg +3 -0
- package/dist/assets/icons/RunIcon.svg +3 -0
- package/dist/assets/icons/RunningIcon.svg +10 -0
- package/dist/assets/icons/SQLIcon.svg +6 -0
- package/dist/assets/icons/SaveClockIcon.svg +5 -0
- package/dist/assets/icons/SaveIcon.svg +4 -0
- package/dist/assets/icons/SchemaIcon.svg +3 -0
- package/dist/assets/icons/SchoolIcon.svg +3 -0
- package/dist/assets/icons/SearchDataIcon.svg +6 -0
- package/dist/assets/icons/SearchIcon.svg +10 -0
- package/dist/assets/icons/SendIcon.svg +3 -0
- package/dist/assets/icons/ShareIcon.svg +4 -0
- package/dist/assets/icons/ShareNodesIcon.svg +3 -0
- package/dist/assets/icons/ShieldCheckIcon.svg +3 -0
- package/dist/assets/icons/ShieldIcon.svg +3 -0
- package/dist/assets/icons/ShieldOffIcon.svg +4 -0
- package/dist/assets/icons/ShortcutIcon.svg +4 -0
- package/dist/assets/icons/SidebarAutoIcon.svg +5 -0
- package/dist/assets/icons/SidebarClosedIcon.svg +4 -0
- package/dist/assets/icons/SidebarCollapseIcon.svg +4 -0
- package/dist/assets/icons/SidebarExpandIcon.svg +4 -0
- package/dist/assets/icons/SidebarIcon.svg +3 -0
- package/dist/assets/icons/SidebarOpenIcon.svg +3 -0
- package/dist/assets/icons/SidebarSyncIcon.svg +4 -0
- package/dist/assets/icons/SlashSquareIcon.svg +4 -0
- package/dist/assets/icons/SlidersIcon.svg +4 -0
- package/dist/assets/icons/SlidesIcon.svg +4 -0
- package/dist/assets/icons/SnippetIcon.svg +4 -0
- package/dist/assets/icons/SortAscendingIcon.svg +6 -0
- package/dist/assets/icons/SortCustomHorizontalIcon.svg +4 -0
- package/dist/assets/icons/SortCustomVerticalIcon.svg +4 -0
- package/dist/assets/icons/SortDescendingIcon.svg +3 -0
- package/dist/assets/icons/SortHorizontalAscendingIcon.svg +3 -0
- package/dist/assets/icons/SortHorizontalDescendingIcon.svg +3 -0
- package/dist/assets/icons/SortLetterHorizontalAscendingIcon.svg +12 -0
- package/dist/assets/icons/SortLetterHorizontalDescendingIcon.svg +12 -0
- package/dist/assets/icons/SortLetterUnsortedIcon.svg +5 -0
- package/dist/assets/icons/SortLetterVerticalAscendingIcon.svg +12 -0
- package/dist/assets/icons/SortLetterVerticalDescendingIcon.svg +12 -0
- package/dist/assets/icons/SortUnsortedIcon.svg +6 -0
- package/dist/assets/icons/SparkleDoubleFillIcon.svg +4 -0
- package/dist/assets/icons/SparkleDoubleIcon.svg +5 -0
- package/dist/assets/icons/SparkleFillIcon.svg +3 -0
- package/dist/assets/icons/SparkleIcon.svg +3 -0
- package/dist/assets/icons/SparkleRectangleIcon.svg +3 -0
- package/dist/assets/icons/SpeechBubbleIcon.svg +6 -0
- package/dist/assets/icons/SpeechBubblePlusIcon.svg +4 -0
- package/dist/assets/icons/SpeechBubbleQuestionMarkFillIcon.svg +3 -0
- package/dist/assets/icons/SpeechBubbleQuestionMarkIcon.svg +3 -0
- package/dist/assets/icons/SpeechBubbleStarIcon.svg +4 -0
- package/dist/assets/icons/SpeedometerIcon.svg +4 -0
- package/dist/assets/icons/StarFillIcon.svg +3 -0
- package/dist/assets/icons/StarIcon.svg +3 -0
- package/dist/assets/icons/StepAfterLineIcon.svg +3 -0
- package/dist/assets/icons/StepBeforeLineIcon.svg +3 -0
- package/dist/assets/icons/StopCircleFillIcon.svg +3 -0
- package/dist/assets/icons/StopCircleIcon.svg +3 -0
- package/dist/assets/icons/StopIcon.svg +3 -0
- package/dist/assets/icons/StoredProcedureIcon.svg +7 -0
- package/dist/assets/icons/StorefrontIcon.svg +3 -0
- package/dist/assets/icons/StreamIcon.svg +3 -0
- package/dist/assets/icons/StrikeThroughIcon.svg +4 -0
- package/dist/assets/icons/SunIcon.svg +11 -0
- package/dist/assets/icons/SyncIcon.svg +4 -0
- package/dist/assets/icons/SyncSmallIcon.svg +4 -0
- package/dist/assets/icons/SyncToFileIcon.svg +4 -0
- package/dist/assets/icons/TableAsteriskIcon.svg +4 -0
- package/dist/assets/icons/TableClockIcon.svg +4 -0
- package/dist/assets/icons/TableCombineIcon.svg +5 -0
- package/dist/assets/icons/TableGlassesIcon.svg +4 -0
- package/dist/assets/icons/TableGlobeIcon.svg +4 -0
- package/dist/assets/icons/TableIcon.svg +3 -0
- package/dist/assets/icons/TableLightningIcon.svg +4 -0
- package/dist/assets/icons/TableMeasureIcon.svg +4 -0
- package/dist/assets/icons/TableModelIcon.svg +4 -0
- package/dist/assets/icons/TableReportIcon.svg +4 -0
- package/dist/assets/icons/TableStreamIcon.svg +5 -0
- package/dist/assets/icons/TableVectorIcon.svg +10 -0
- package/dist/assets/icons/TableViewIcon.svg +11 -0
- package/dist/assets/icons/TagColumnIcon.svg +5 -0
- package/dist/assets/icons/TagIcon.svg +4 -0
- package/dist/assets/icons/TagTableIcon.svg +5 -0
- package/dist/assets/icons/TargetIcon.svg +7 -0
- package/dist/assets/icons/TerminalIcon.svg +5 -0
- package/dist/assets/icons/TextBoxIcon.svg +3 -0
- package/dist/assets/icons/TextColorIcon.svg +3 -0
- package/dist/assets/icons/TextIcon.svg +3 -0
- package/dist/assets/icons/TextJustifyIcon.svg +7 -0
- package/dist/assets/icons/TextUnderlineIcon.svg +5 -0
- package/dist/assets/icons/ThreeDotsIcon.svg +3 -0
- package/dist/assets/icons/ThumbsDownFilledIcon.svg +5 -0
- package/dist/assets/icons/ThumbsDownIcon.svg +10 -0
- package/dist/assets/icons/ThumbsUpFilledIcon.svg +3 -0
- package/dist/assets/icons/ThumbsUpIcon.svg +10 -0
- package/dist/assets/icons/TokenIcon.svg +8 -0
- package/dist/assets/icons/TrashIcon.svg +3 -0
- package/dist/assets/icons/TreeIcon.svg +3 -0
- package/dist/assets/icons/TrendingFillIcon.svg +3 -0
- package/dist/assets/icons/TrendingIcon.svg +3 -0
- package/dist/assets/icons/TriangleIcon.svg +3 -0
- package/dist/assets/icons/UnderlineIcon.svg +4 -0
- package/dist/assets/icons/UndoIcon.svg +10 -0
- package/dist/assets/icons/UploadIcon.svg +4 -0
- package/dist/assets/icons/UppercaseIcon.svg +4 -0
- package/dist/assets/icons/UsbIcon.svg +3 -0
- package/dist/assets/icons/UserBadgeIcon.svg +4 -0
- package/dist/assets/icons/UserCircleIcon.svg +4 -0
- package/dist/assets/icons/UserGroupFillIcon.svg +3 -0
- package/dist/assets/icons/UserGroupIcon.svg +5 -0
- package/dist/assets/icons/UserIcon.svg +4 -0
- package/dist/assets/icons/UserKeyIconIcon.svg +5 -0
- package/dist/assets/icons/UserShieldIcon.svg +4 -0
- package/dist/assets/icons/UserSparkleIcon.svg +5 -0
- package/dist/assets/icons/UserTeamIcon.svg +8 -0
- package/dist/assets/icons/VisibleFillIcon.svg +10 -0
- package/dist/assets/icons/VisibleIcon.svg +11 -0
- package/dist/assets/icons/VisibleOffIcon.svg +12 -0
- package/dist/assets/icons/VoiceModeIcon.svg +7 -0
- package/dist/assets/icons/WarningFillIcon.svg +3 -0
- package/dist/assets/icons/WarningIcon.svg +5 -0
- package/dist/assets/icons/WorkflowCodeIcon.svg +5 -0
- package/dist/assets/icons/WorkflowCubeIcon.svg +5 -0
- package/dist/assets/icons/WorkflowsIcon.svg +3 -0
- package/dist/assets/icons/WorkspacesIcon.svg +4 -0
- package/dist/assets/icons/WrenchIcon.svg +3 -0
- package/dist/assets/icons/WrenchSparkleIcon.svg +5 -0
- package/dist/assets/icons/XCircleFillIcon.svg +3 -0
- package/dist/assets/icons/XCircleIcon.svg +4 -0
- package/dist/assets/icons/ZAHorizontalIcon.svg +4 -0
- package/dist/assets/icons/ZAVerticalIcon.svg +4 -0
- package/dist/assets/icons/ZeroOpsIcon.svg +3 -0
- package/dist/assets/icons/ZeroOpsOutlineIcon.svg +3 -0
- package/dist/assets/icons/ZoomInIcon.svg +4 -0
- package/dist/assets/icons/ZoomMarqueeSelection.svg +8 -0
- package/dist/assets/icons/ZoomOutIcon.svg +4 -0
- package/dist/assets/icons/ZoomToFitIcon.svg +6 -0
- package/dist/design-system/Avatar/tokens.css +28 -0
- package/dist/design-system/Banner/tokens.css +0 -0
- package/dist/design-system/Breadcrumb/NativeBreadcrumb.css +43 -0
- package/dist/design-system/Breadcrumb/breadcrumb.less +8 -0
- package/dist/design-system/Breadcrumb/tokens.css +13 -0
- package/dist/design-system/Button/NativeButton.css +370 -0
- package/dist/design-system/Button/tokens.css +56 -0
- package/dist/design-system/Card/tokens.css +29 -0
- package/dist/design-system/Checkbox/NativeCheckbox.css +258 -0
- package/dist/design-system/Checkbox/tokens.css +37 -0
- package/dist/design-system/ContextMenu/tokens.css +18 -0
- package/dist/design-system/DialogCombobox/tokens.css +78 -0
- package/dist/design-system/Drawer/tokens.css +30 -0
- package/dist/design-system/DropdownMenu/tokens.css +23 -0
- package/dist/design-system/Empty/tokens.css +11 -0
- package/dist/design-system/Form/tokens.css +0 -0
- package/dist/design-system/FormMessage/tokens.css +0 -0
- package/dist/design-system/FormV2/tokens.css +0 -0
- package/dist/design-system/Header/tokens.css +10 -0
- package/dist/design-system/Hint/tokens.css +0 -0
- package/dist/design-system/HoverCard/tokens.css +26 -0
- package/dist/design-system/Icon/NativeIcon.css +97 -0
- package/dist/design-system/Icon/generator/CalendarRangeIcon.png +0 -0
- package/dist/design-system/Icon/tokens.css +12 -0
- package/dist/design-system/Input/NativeInput.css +111 -0
- package/dist/design-system/Input/group/NativeGroup.css +51 -0
- package/dist/design-system/Input/textarea/NativeTextArea.css +27 -0
- package/dist/design-system/Label/tokens.css +0 -0
- package/dist/design-system/LegacyNotification/notification.less +45 -0
- package/dist/design-system/Listbox/tokens.css +15 -0
- package/dist/design-system/Modal/tokens.css +42 -0
- package/dist/design-system/NavigationMenu/tokens.css +23 -0
- package/dist/design-system/Notification/tokens.css +35 -0
- package/dist/design-system/Overflow/tokens.css +11 -0
- package/dist/design-system/PageWrapper/tokens.css +14 -0
- package/dist/design-system/PillControl/tokens.css +73 -0
- package/dist/design-system/Popover/tokens.css +29 -0
- package/dist/design-system/PreviewCard/tokens.css +46 -0
- package/dist/design-system/Progress/tokens.css +17 -0
- package/dist/design-system/Radio/NativeRadio.css +323 -0
- package/dist/design-system/Radio/tokens.css +37 -0
- package/dist/design-system/ResourceStatusIndicator/tokens.css +5 -0
- package/dist/design-system/Select/tokens.css +0 -0
- package/dist/design-system/Sidebar/tokens.css +36 -0
- package/dist/design-system/Skeleton/tokens.css +0 -0
- package/dist/design-system/Slider/tokens.css +22 -0
- package/dist/design-system/SnackBar/tokens.css +37 -0
- package/dist/design-system/Spacer/tokens.css +11 -0
- package/dist/design-system/Spinner/tokens.css +0 -0
- package/dist/design-system/Stepper/tokens.css +0 -0
- package/dist/design-system/Switch/NativeSwitch.css +172 -0
- package/dist/design-system/Switch/switch.less +93 -0
- package/dist/design-system/Switch/tokens.css +38 -0
- package/dist/design-system/Tabs/tokens.css +52 -0
- package/dist/design-system/Tag/tokens.css +0 -0
- package/dist/design-system/ToggleButton/tokens.css +36 -0
- package/dist/design-system/Toolbar/tokens.css +23 -0
- package/dist/design-system/Tooltip/tokens.css +44 -0
- package/dist/design-system/_shared_/Menu/tokens.css +42 -0
- package/dist/design-system/general-overrides.less +33 -0
- package/dist/design-system/utils/debug.less +4 -0
- package/dist/design-tokens/family-tokens/actions-tokens.css +29 -0
- package/dist/design-tokens/family-tokens/cards-tokens.css +10 -0
- package/dist/design-tokens/family-tokens/inputs-tokens.css +43 -0
- package/dist/design-tokens/family-tokens/lists-tokens.css +26 -0
- package/dist/design-tokens/family-tokens/popups-tokens.css +13 -0
- package/dist/design-tokens/family-tokens/selection-toggles-tokens.css +34 -0
- package/dist/design-tokens/system-tokens/colors-dark-tokens.css +103 -0
- package/dist/design-tokens/system-tokens/colors-light-tokens.css +103 -0
- package/dist/design-tokens/system-tokens/density-tokens.css +28 -0
- package/dist/design-tokens/system-tokens/elevation-tokens.css +6 -0
- package/dist/design-tokens/system-tokens/focus-ring-tokens.css +5 -0
- package/dist/design-tokens/system-tokens/shape-tokens.css +8 -0
- package/dist/design-tokens/system-tokens/typography-tokens.css +24 -0
- package/dist/dubois-colors.less +2 -0
- package/dist/icon-metadata.json +8 -0
- package/dist/{index-CUzS-Vjx.js → index-CKurXbfF.js} +339 -204
- package/dist/index-CKurXbfF.js.map +1 -0
- package/dist/index-dark.css +578 -51
- package/dist/index-dark.mitigated.css +578 -51
- package/dist/index.css +819 -51
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mitigated.css +819 -51
- package/dist/mcp.mjs +23232 -0
- package/dist/mortar/action.css +93 -0
- package/dist/mortar/input.css +86 -0
- package/dist/mortar/layout.css +57 -0
- package/dist/mortar/typography.css +72 -0
- package/dist/patterns.js +2 -1
- package/dist/patterns.js.map +1 -1
- package/dist/rollup/noop.less +0 -0
- package/dist/test-utils/rtl.js +2 -2
- package/dist/test-utils/rtl.js.map +1 -1
- package/dist/tokens-groups/system-tokens.css +139 -0
- package/dist/tokens-groups/system-tokens.dark.css +126 -0
- package/dist-types/design-system/Breadcrumb/AntDBreadcrumbInternal.d.ts +5 -0
- package/dist-types/design-system/Breadcrumb/Breadcrumb.d.ts +25 -7
- package/dist-types/design-system/Breadcrumb/NativeBreadcrumb.d.ts +5 -0
- package/dist-types/design-system/Button/getBtnClassName.d.ts +1 -1
- package/dist-types/design-system/Card/Card.d.ts +1 -1
- package/dist-types/design-system/DatePicker/DatePicker.d.ts +1 -1
- package/dist-types/design-system/DatePicker/LegacyDatePicker.d.ts +1 -1
- package/dist-types/design-system/DesignSystemProvider/DesignSystemProvider.d.ts +11 -2
- package/dist-types/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.d.ts +3 -1
- package/dist-types/design-system/DropdownMenu/HintColumn.d.ts +2 -3
- package/dist-types/design-system/Form/Form.d.ts +1 -1
- package/dist-types/design-system/FormV2/index.d.ts +1 -0
- package/dist-types/design-system/Grid/NativeCol.d.ts +1 -1
- package/dist-types/design-system/Grid/NativeRow.d.ts +3 -3
- package/dist-types/design-system/Grid/rowConstants.d.ts +1 -1
- package/dist-types/design-system/Grid/types.d.ts +2 -2
- package/dist-types/design-system/Header/Header.d.ts +1 -1
- package/dist-types/design-system/Icon/LegacyAntDIcon.d.ts +1 -1
- package/dist-types/design-system/Icon/__generated/icons/ChatNewTabIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/ChatSpinnerIcon.d.ts +4 -0
- package/dist-types/design-system/Icon/__generated/icons/index.d.ts +2 -0
- package/dist-types/design-system/Input/AntDInput.d.ts +26 -0
- package/dist-types/design-system/Input/Input.d.ts +7 -25
- package/dist-types/design-system/Input/NativeInput.d.ts +4 -0
- package/dist-types/design-system/Input/force-mode.d.ts +13 -0
- package/dist-types/design-system/Input/group/AntDGroup.d.ts +2 -0
- package/dist-types/design-system/Input/group/Group.d.ts +28 -0
- package/dist-types/design-system/Input/group/NativeGroup.d.ts +2 -0
- package/dist-types/design-system/Input/index-defs.d.ts +3 -3
- package/dist-types/design-system/Input/index.d.ts +7 -2
- package/dist-types/design-system/Input/input-container-styling.d.ts +13 -0
- package/dist-types/design-system/Input/input-focus.d.ts +8 -0
- package/dist-types/design-system/Input/input-props.d.ts +37 -0
- package/dist-types/design-system/Input/input-refs.d.ts +22 -0
- package/dist-types/design-system/Input/password/AntDPassword.d.ts +4 -0
- package/dist-types/design-system/Input/password/NativePassword.d.ts +4 -0
- package/dist-types/design-system/Input/password/Password.d.ts +15 -0
- package/dist-types/design-system/Input/testing/keyboard-input.d.ts +9 -0
- package/dist-types/design-system/Input/textarea/AntDTextArea.d.ts +4 -0
- package/dist-types/design-system/Input/textarea/NativeTextArea.d.ts +4 -0
- package/dist-types/design-system/Input/textarea/TextArea.d.ts +27 -0
- package/dist-types/design-system/Input/textarea/useTextAreaAutoSize.d.ts +22 -0
- package/dist-types/design-system/Input/useInputClearHandler.d.ts +20 -0
- package/dist-types/design-system/Input/useTextFieldAnalytics.d.ts +23 -0
- package/dist-types/design-system/Input/useTextFieldFocusHandler.d.ts +9 -0
- package/dist-types/design-system/Input/useTextFieldKeyHandlers.d.ts +31 -0
- package/dist-types/design-system/Skeleton/GenericSkeleton.d.ts +1 -2
- package/dist-types/design-system/SplitButton/SplitButton.d.ts +1 -1
- package/dist-types/design-system/TypeaheadComboboxV2/hooks/useComboboxState.d.ts +18 -1
- package/dist-types/design-system/TypeaheadComboboxV2/hooks/useComboboxStateProps.d.ts +2 -1
- package/dist-types/design-system/TypeaheadComboboxV2/providers/TypeaheadComboboxContext.d.ts +4 -0
- package/dist-types/design-system/utils/security/url-safety.d.ts +2 -5
- package/dist-types/maybe-mitigate-expensive-selectors/mitigateExpensiveSelectorsMonacoPkgrPlugins.d.ts +1 -1
- package/dist-types/mcp/server.d.ts +3 -0
- package/dist-types/test-utils/rtl/switch.d.ts +1 -1
- package/dist-types/test-utils/rtl/table.d.ts +1 -1
- package/dist-types/theme/_generated/ValidSemanticColors.d.ts +1 -0
- package/package.json +26 -6
- package/processes/process-runner.js +19 -0
- package/processes/spawn-process-runner.js +67 -0
- package/scaffold_tool/src/dependency-installer.js +52 -0
- package/scaffold_tool/src/file-system.js +2 -0
- package/scaffold_tool/src/get-progress-reporter.js +10 -0
- package/scaffold_tool/src/listr-progress-reporter.js +93 -0
- package/scaffold_tool/src/local-main.js +50 -0
- package/scaffold_tool/src/local-package-builder.js +101 -0
- package/scaffold_tool/src/main.js +47 -0
- package/scaffold_tool/src/node-file-system.js +33 -0
- package/scaffold_tool/src/package-manifest.js +40 -0
- package/scaffold_tool/src/progress-reporter.js +2 -0
- package/scaffold_tool/src/project-configurator.js +139 -0
- package/scaffold_tool/src/project-inspector.js +74 -0
- package/scaffold_tool/src/project-templates.js +191 -0
- package/scaffold_tool/src/readline-terminal.js +23 -0
- package/scaffold_tool/src/scaffold-config.js +18 -0
- package/scaffold_tool/src/scaffold-options.js +99 -0
- package/scaffold_tool/src/scaffold-theme.js +33 -0
- package/scaffold_tool/src/scaffold-tool.js +127 -0
- package/scaffold_tool/src/terminal-progress-reporter.js +39 -0
- package/scaffold_tool/src/terminal.js +2 -0
- package/scaffold_tool/src/theme-picker-templates.js +191 -0
- package/scaffold_tool/src/theme-templates.js +157 -0
- package/scaffold_tool/src/themes/base.js +143 -0
- package/scaffold_tool/src/themes/genie-one.js +36 -0
- package/scaffold_tool/src/themes/shadcn.js +135 -0
- package/dist/WizardStepContentWrapper-DfErft8z.js.map +0 -1
- package/dist/index-CUzS-Vjx.js.map +0 -1
- package/dist-types/design-system/Input/Group.d.ts +0 -2
- package/dist-types/design-system/Input/Password.d.ts +0 -3
- package/dist-types/design-system/Input/TextArea.d.ts +0 -4
- package/dist-types/design-system/Input/common.d.ts +0 -25
- package/setup.mjs +0 -639
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { TextAreaRef } from "antd/lib/input/TextArea";
|
|
2
|
-
import type { ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from "react";
|
|
3
|
-
import type { TextAreaProps } from "./common";
|
|
4
|
-
export declare const TextArea: ForwardRefExoticComponent<PropsWithoutRef<TextAreaProps> & RefAttributes<TextAreaRef>>;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Input as AntDInput, InputProps as AntDInputProps } from "antd";
|
|
2
|
-
import type { GroupProps as AntDGroupProps, PasswordProps as AntDPasswordProps, TextAreaProps as AntDTextAreaProps } from "antd/lib/input";
|
|
3
|
-
import type { TextAreaRef } from "antd/lib/input/TextArea";
|
|
4
|
-
import type { ButtonSize } from "../Button";
|
|
5
|
-
import type { DesignSystemEventProviderAnalyticsEventTypes } from "../DesignSystemEventProvider";
|
|
6
|
-
import type { AnalyticsEventProps, DangerousGeneralProps, DangerouslySetAntdProps, FormElementValidationState, HTMLDataAttributes } from "../types";
|
|
7
|
-
export type InputRef = AntDInput;
|
|
8
|
-
export type { TextAreaRef };
|
|
9
|
-
export interface InputProps extends Omit<AntDInputProps, "prefixCls" | "size" | "addonAfter" | "bordered">, FormElementValidationState, HTMLDataAttributes, DangerouslySetAntdProps<AntDInputProps>, DangerousGeneralProps, AnalyticsEventProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange | DesignSystemEventProviderAnalyticsEventTypes.OnView> {
|
|
10
|
-
onClear?: () => void;
|
|
11
|
-
shouldPreventFormSubmission?: boolean;
|
|
12
|
-
locked?: boolean;
|
|
13
|
-
size?: ButtonSize;
|
|
14
|
-
}
|
|
15
|
-
export interface PasswordProps extends Omit<AntDPasswordProps, "inputPrefixCls" | "action" | "visibilityToggle" | "iconRender">, FormElementValidationState, HTMLDataAttributes, DangerouslySetAntdProps<AntDPasswordProps>, DangerousGeneralProps {}
|
|
16
|
-
export interface TextAreaProps extends Omit<AntDTextAreaProps, "bordered" | "showCount" | "size">, FormElementValidationState, HTMLDataAttributes, DangerouslySetAntdProps<AntDTextAreaProps>, DangerousGeneralProps, AnalyticsEventProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange | DesignSystemEventProviderAnalyticsEventTypes.OnView> {
|
|
17
|
-
allowFormSubmitOnEnter?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export interface InputGroupProps extends Omit<AntDGroupProps, "size">, HTMLDataAttributes, DangerouslySetAntdProps<AntDGroupProps>, DangerousGeneralProps {
|
|
20
|
-
/**
|
|
21
|
-
* Which side the button sits on relative to the input. Controls which inner corners are
|
|
22
|
-
* squared off to form a seamless join. Defaults to `'right'`.
|
|
23
|
-
*/
|
|
24
|
-
buttonSide?: "left" | "right";
|
|
25
|
-
}
|
package/setup.mjs
DELETED
|
@@ -1,639 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @fileoverview `npx @databricks/design-system` — interactive setup for consumers of the dbui
|
|
5
|
-
* design system. Runs in the user's OWN project, outside the universe monorepo, so it uses only
|
|
6
|
-
* Node built-ins and shells out to the canonical scaffolders (create-vite, create-next-app)
|
|
7
|
-
* rather than shipping its own project templates. The wiring it applies (CSS imports, provider,
|
|
8
|
-
* Emotion JSX runtime, css.d.ts, body font) mirrors the shipped AGENTS.md "Setup" section, which
|
|
9
|
-
* is the single source of truth for how a consumer wires up the package.
|
|
10
|
-
*
|
|
11
|
-
* Shipped as plain ESM JavaScript, not TypeScript: Node refuses type-stripping for files under
|
|
12
|
-
* node_modules (ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING) — which is exactly where npx runs a
|
|
13
|
-
* published bin — so a `.ts`/`.mts` bin would fail to execute.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import * as fs from 'node:fs';
|
|
17
|
-
import * as path from 'node:path';
|
|
18
|
-
import * as readline from 'node:readline';
|
|
19
|
-
import { spawnSync } from 'node:child_process';
|
|
20
|
-
import { fileURLToPath } from 'node:url';
|
|
21
|
-
|
|
22
|
-
const PACKAGE_NAME = '@databricks/design-system';
|
|
23
|
-
|
|
24
|
-
// Pin the scaffolders instead of `@latest`: the download must be reviewed and reproducible
|
|
25
|
-
// (Databricks supply-chain policy), not a floating fetch of whatever is newest.
|
|
26
|
-
const VITE_SCAFFOLDER = 'create-vite@9.2.1';
|
|
27
|
-
// create-next-app@14 (Next 14) so the project runs on React 18. dbui 2.0.x is built on AntD 4 and
|
|
28
|
-
// only type-checks under React 18; Next 15+ requires React 19, whose types break AntD-derived
|
|
29
|
-
// props (e.g. Typography.Title). The Vite path pins React 18 explicitly (see REACT_18_PINS).
|
|
30
|
-
const NEXT_SCAFFOLDER = 'create-next-app@14.2.35';
|
|
31
|
-
|
|
32
|
-
// The Vite scaffolder installs React 19, but dbui 2.0.x is typed for React 18 — under React 19's
|
|
33
|
-
// types AntD-derived props resolve as required and `npm run build` fails. Pin the new Vite project
|
|
34
|
-
// back to React 18 so it type-checks.
|
|
35
|
-
const REACT_18_PINS = ['react@^18', 'react-dom@^18', '@types/react@^18', '@types/react-dom@^18'];
|
|
36
|
-
|
|
37
|
-
// Peers to install on demand when a target project is missing them. react/react-dom are
|
|
38
|
-
// deliberately excluded: new projects get React 18 from pinReact18 / create-next-app@14, and an
|
|
39
|
-
// existing project's React is never touched — adding only the missing half of the react/react-dom
|
|
40
|
-
// pair could leave an incompatible version combination.
|
|
41
|
-
const PEER_RANGES = {
|
|
42
|
-
'@emotion/react': '^11.11.3',
|
|
43
|
-
moment: '^2.25.3',
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// The exact side-effect imports a consumer needs at their entry point (from AGENTS.md).
|
|
47
|
-
const CSS_IMPORTS = [`import '${PACKAGE_NAME}/index.css';`, `import '${PACKAGE_NAME}/fonts/dm-sans.css';`];
|
|
48
|
-
|
|
49
|
-
// ApplyGlobalStyles sets the body background and text color but NOT font-family (per AGENTS.md),
|
|
50
|
-
// so the app must apply the DM Sans token itself.
|
|
51
|
-
const BODY_FONT_CSS = 'body {\n font-family: var(--db-font-family);\n}\n';
|
|
52
|
-
|
|
53
|
-
// TypeScript rejects the CSS side-effect imports without an ambient declaration; AGENTS.md
|
|
54
|
-
// prescribes this one-liner instead of per-import suppressions.
|
|
55
|
-
const CSS_DECLARATION = "declare module '*.css';\n";
|
|
56
|
-
|
|
57
|
-
// The version this script shipped inside. Pinning the scaffolded dependency to it keeps a
|
|
58
|
-
// generated project on the same version the user invoked, rather than drifting to a newer
|
|
59
|
-
// `latest` on their next install. Falls back to `latest` if the manifest can't be read.
|
|
60
|
-
function designSystemSpec() {
|
|
61
|
-
try {
|
|
62
|
-
// fileURLToPath(import.meta.url), not import.meta.dirname, so pinning works on every ESM Node
|
|
63
|
-
// (import.meta.dirname is undefined before Node 20.11, which would fall back to @latest).
|
|
64
|
-
const manifestPath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'package.json');
|
|
65
|
-
const { version } = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
66
|
-
// The in-repo placeholder (0.0.1-0) is never what a real consumer has; only pin a
|
|
67
|
-
// published-looking version.
|
|
68
|
-
if (version && version !== '0.0.1-0') return `${PACKAGE_NAME}@${version}`;
|
|
69
|
-
} catch {
|
|
70
|
-
// fall through
|
|
71
|
-
}
|
|
72
|
-
return `${PACKAGE_NAME}@latest`;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// --mode/--name make the scaffold modes non-interactive (used by tests); omit them and the CLI
|
|
76
|
-
// prompts. There is no --yes: the CLI has no confirmation prompts to skip.
|
|
77
|
-
function parseArgs(argv) {
|
|
78
|
-
const args = { mode: undefined, name: undefined };
|
|
79
|
-
for (let i = 0; i < argv.length; i++) {
|
|
80
|
-
const arg = argv[i];
|
|
81
|
-
if (arg === '--mode') args.mode = argv[++i];
|
|
82
|
-
else if (arg === '--name') args.name = argv[++i];
|
|
83
|
-
else if (!arg.startsWith('-') && !args.name) args.name = arg;
|
|
84
|
-
}
|
|
85
|
-
return args;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function ask(rl, question) {
|
|
89
|
-
return new Promise((resolve) => rl.question(question, (answer) => resolve(answer.trim())));
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Runs a command with inherited stdio so the canonical scaffolder's own prompts/output reach the
|
|
93
|
-
// user directly. Exits the process on failure rather than half-finishing a setup.
|
|
94
|
-
function run(command, commandArgs, cwd) {
|
|
95
|
-
// Quiet npm to errors only, inherited by every npm/npx child (our installs and the
|
|
96
|
-
// sub-scaffolders' internal ones): the deprecation and ERESOLVE peer warnings they print are
|
|
97
|
-
// noise here. Non-npm tools ignore this var.
|
|
98
|
-
const env = { ...process.env, npm_config_loglevel: 'error' };
|
|
99
|
-
const result = spawnSync(command, commandArgs, { cwd, stdio: 'inherit', shell: false, env });
|
|
100
|
-
if (result.status !== 0) {
|
|
101
|
-
fail(`\`${command} ${commandArgs.join(' ')}\` failed (exit ${result.status}).`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function fail(message) {
|
|
106
|
-
console.error(`\nERROR: ${message}`);
|
|
107
|
-
process.exit(1);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function readPackageJson(dir) {
|
|
111
|
-
try {
|
|
112
|
-
return JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf8'));
|
|
113
|
-
} catch {
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function allDeps(dir) {
|
|
119
|
-
const pkg = readPackageJson(dir);
|
|
120
|
-
if (!pkg) return {};
|
|
121
|
-
return { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function hasAnyDep(pkg, names) {
|
|
125
|
-
const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
|
|
126
|
-
return names.some((name) => name in deps);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Picks the package manager from the lockfile a scaffolder or the user already committed to, so
|
|
130
|
-
// we don't cross yarn/pnpm/npm and produce a second lockfile.
|
|
131
|
-
function detectPackageManager(dir) {
|
|
132
|
-
if (fs.existsSync(path.join(dir, 'pnpm-lock.yaml'))) return 'pnpm';
|
|
133
|
-
if (fs.existsSync(path.join(dir, 'yarn.lock'))) return 'yarn';
|
|
134
|
-
return 'npm';
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function installCommand(pm, packages) {
|
|
138
|
-
const verb = pm === 'npm' ? 'install' : 'add';
|
|
139
|
-
return [pm, [verb, ...packages]];
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Classifies an existing project so "add to existing" applies the right wiring. Order matters: a
|
|
143
|
-
// Next.js project also has react, so check the most specific signal first.
|
|
144
|
-
function detectExistingProject(dir) {
|
|
145
|
-
const pkg = readPackageJson(dir);
|
|
146
|
-
if (!pkg) return { type: 'unknown', reason: 'no package.json found' };
|
|
147
|
-
|
|
148
|
-
const hasConfig = (names) => names.some((n) => fs.existsSync(path.join(dir, n)));
|
|
149
|
-
|
|
150
|
-
if (hasAnyDep(pkg, ['next']) || hasConfig(['next.config.js', 'next.config.ts', 'next.config.mjs'])) {
|
|
151
|
-
return { type: 'next', pkg };
|
|
152
|
-
}
|
|
153
|
-
if (hasAnyDep(pkg, ['vite']) || hasConfig(['vite.config.ts', 'vite.config.js'])) {
|
|
154
|
-
return { type: 'vite', pkg };
|
|
155
|
-
}
|
|
156
|
-
if (hasAnyDep(pkg, ['react-scripts'])) return { type: 'cra', pkg };
|
|
157
|
-
if (hasAnyDep(pkg, ['react'])) return { type: 'react', pkg };
|
|
158
|
-
return { type: 'unknown', reason: 'no React dependency detected', pkg };
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Inserts import lines into a source file. A "use client"/"use server" directive is only honored
|
|
162
|
-
// as the first statement, so if one is present the imports go right after it (even when a BOM or a
|
|
163
|
-
// leading license comment sits above it); otherwise they go at the top. Idempotent: lines already
|
|
164
|
-
// present are skipped, so re-running is a no-op.
|
|
165
|
-
function addImports(filePath, lines) {
|
|
166
|
-
const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf8') : '';
|
|
167
|
-
const missing = lines.filter((line) => !existing.includes(line));
|
|
168
|
-
if (missing.length === 0) return false;
|
|
169
|
-
|
|
170
|
-
const sourceLines = existing.split('\n');
|
|
171
|
-
const directiveIndex = sourceLines.findIndex((line) => /^\s*(['"])use (client|server)\1;?\s*$/.test(line));
|
|
172
|
-
const insertAt = directiveIndex >= 0 ? directiveIndex + 1 : 0;
|
|
173
|
-
sourceLines.splice(insertAt, 0, ...missing);
|
|
174
|
-
fs.writeFileSync(filePath, sourceLines.join('\n'));
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
function writeFileEnsuringDir(filePath, content) {
|
|
179
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
180
|
-
fs.writeFileSync(filePath, content);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// A single ambient `declare module '*.css'` so TypeScript accepts the CSS side-effect imports,
|
|
184
|
-
// placed where the project's tsconfig actually includes it (under src/ for Vite/CRA; the repo
|
|
185
|
-
// root is in scope for Next). Never overwrites an existing declaration file.
|
|
186
|
-
function ensureCssDeclaration(dir, type) {
|
|
187
|
-
const rel = type === 'next' ? 'css.d.ts' : path.join('src', 'css.d.ts');
|
|
188
|
-
const full = path.join(dir, rel);
|
|
189
|
-
if (fs.existsSync(full)) return;
|
|
190
|
-
writeFileEnsuringDir(full, CSS_DECLARATION);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Emotion's `css` prop needs TypeScript itself to use Emotion's JSX types; the bundler/compiler
|
|
194
|
-
// settings only affect the runtime transform, not type-checking. Set jsxImportSource in the
|
|
195
|
-
// project's tsconfig too (per AGENTS.md). Inserts into the first compilerOptions block; skips if
|
|
196
|
-
// the option is already present or the file is missing.
|
|
197
|
-
function addTsconfigJsxImportSource(tsconfigPath) {
|
|
198
|
-
if (!fs.existsSync(tsconfigPath)) return;
|
|
199
|
-
const content = fs.readFileSync(tsconfigPath, 'utf8');
|
|
200
|
-
if (content.includes('jsxImportSource')) return;
|
|
201
|
-
const marker = '"compilerOptions": {';
|
|
202
|
-
if (!content.includes(marker)) return;
|
|
203
|
-
fs.writeFileSync(tsconfigPath, content.replace(marker, `${marker}\n "jsxImportSource": "@emotion/react",`));
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Forces a newly scaffolded project onto React 18 (runtime + types), because dbui 2.0.x is typed
|
|
207
|
-
// for React 18. Only for new projects we generate — an existing project's React is never touched.
|
|
208
|
-
function pinReact18(dir, pm) {
|
|
209
|
-
console.log('\n> Pinning React 18 (dbui is typed for React 18)…\n');
|
|
210
|
-
const [command, commandArgs] = installCommand(pm, REACT_18_PINS);
|
|
211
|
-
run(command, commandArgs, dir);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Installs the pinned design-system version plus any PEER_RANGES peer the project is missing
|
|
215
|
-
// (currently @emotion/react and moment). react/react-dom are handled elsewhere — see PEER_RANGES.
|
|
216
|
-
function installDesignSystem(dir, pm) {
|
|
217
|
-
const present = allDeps(dir);
|
|
218
|
-
const missingPeers = Object.entries(PEER_RANGES)
|
|
219
|
-
.filter(([name]) => !(name in present))
|
|
220
|
-
.map(([name, range]) => `${name}@${range}`);
|
|
221
|
-
const packages = [designSystemSpec(), ...missingPeers];
|
|
222
|
-
console.log(`\n> Installing ${packages.join(', ')} with ${pm}…\n`);
|
|
223
|
-
const [command, commandArgs] = installCommand(pm, packages);
|
|
224
|
-
run(command, commandArgs, dir);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
function scaffoldVite(name) {
|
|
228
|
-
console.log(`\n> Scaffolding a Vite + React + TypeScript project via ${VITE_SCAFFOLDER}…\n`);
|
|
229
|
-
// npx runs the already-`create-`-prefixed package directly (unlike `npm create`, which would
|
|
230
|
-
// prepend a second `create-`), matching how the Next path invokes create-next-app.
|
|
231
|
-
// Force create-vite fully non-interactive — this CLI is run by non-engineers, so its own mode
|
|
232
|
-
// prompt should be the only question. --template picks React+TS and --eslint answers the
|
|
233
|
-
// linter question; --no-interactive suppresses any remaining prompt and --no-immediate keeps
|
|
234
|
-
// create-vite from installing/starting a dev server ahead of our own install steps.
|
|
235
|
-
run('npx', [VITE_SCAFFOLDER, name, '--template', 'react-ts', '--eslint', '--no-interactive', '--no-immediate']);
|
|
236
|
-
|
|
237
|
-
const dir = path.resolve(process.cwd(), name);
|
|
238
|
-
const pm = detectPackageManager(dir);
|
|
239
|
-
pinReact18(dir, pm);
|
|
240
|
-
installDesignSystem(dir, pm);
|
|
241
|
-
|
|
242
|
-
// Own the entry file wholesale — we generated this project, so there is no user code to
|
|
243
|
-
// preserve, and a known-good main.tsx is cleaner than surgically editing create-vite's.
|
|
244
|
-
writeFileEnsuringDir(
|
|
245
|
-
path.join(dir, 'src', 'main.tsx'),
|
|
246
|
-
[
|
|
247
|
-
...CSS_IMPORTS,
|
|
248
|
-
"import './dbui.css';",
|
|
249
|
-
'',
|
|
250
|
-
"import { StrictMode } from 'react';",
|
|
251
|
-
"import { createRoot } from 'react-dom/client';",
|
|
252
|
-
"import { ApplyGlobalStyles, DesignSystemProvider } from '@databricks/design-system';",
|
|
253
|
-
"import { App } from './App';",
|
|
254
|
-
'',
|
|
255
|
-
"createRoot(document.getElementById('root')!).render(",
|
|
256
|
-
' <StrictMode>',
|
|
257
|
-
' <DesignSystemProvider>',
|
|
258
|
-
' <ApplyGlobalStyles />',
|
|
259
|
-
' <App />',
|
|
260
|
-
' </DesignSystemProvider>',
|
|
261
|
-
' </StrictMode>,',
|
|
262
|
-
');',
|
|
263
|
-
'',
|
|
264
|
-
].join('\n'),
|
|
265
|
-
);
|
|
266
|
-
|
|
267
|
-
writeFileEnsuringDir(path.join(dir, 'src', 'dbui.css'), BODY_FONT_CSS);
|
|
268
|
-
writeFileEnsuringDir(path.join(dir, 'src', 'App.tsx'), viteAppFile());
|
|
269
|
-
ensureCssDeclaration(dir, 'vite');
|
|
270
|
-
configureViteEmotion(dir);
|
|
271
|
-
addTsconfigJsxImportSource(path.join(dir, 'tsconfig.app.json'));
|
|
272
|
-
removeViteDemoFiles(dir);
|
|
273
|
-
writeAgentInstructions(dir);
|
|
274
|
-
|
|
275
|
-
printDone(name, pm, 'vite');
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
// create-vite ships a demo splash page (App.css, a styled default index.css, and the Vite/React
|
|
279
|
-
// logo + hero assets). We render our own empty App and rely on dbui's global styles, so delete
|
|
280
|
-
// the demo files to leave a genuinely blank project. Our main.tsx imports none of them.
|
|
281
|
-
function removeViteDemoFiles(dir) {
|
|
282
|
-
for (const rel of ['src/App.css', 'src/index.css', 'src/assets']) {
|
|
283
|
-
fs.rmSync(path.join(dir, rel), { recursive: true, force: true });
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// Writes agent instructions into the generated project so AI coding agents build UI from dbui
|
|
288
|
-
// components. AGENTS.md holds the guidance (its body ships beside this script); CLAUDE.md just
|
|
289
|
-
// imports it, because Claude Code only auto-loads CLAUDE.md, not AGENTS.md. Neither overwrites an
|
|
290
|
-
// existing file — an existing project may already carry its own. Returns whether it wrote AGENTS.md.
|
|
291
|
-
function writeAgentInstructions(dir) {
|
|
292
|
-
let wroteAgents = false;
|
|
293
|
-
const agentsPath = path.join(dir, 'AGENTS.md');
|
|
294
|
-
if (!fs.existsSync(agentsPath)) {
|
|
295
|
-
const body = readScaffoldAgents();
|
|
296
|
-
if (body === undefined) return false;
|
|
297
|
-
writeFileEnsuringDir(agentsPath, body);
|
|
298
|
-
wroteAgents = true;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
// One source of truth: Claude Code follows this import, other agents read AGENTS.md directly.
|
|
302
|
-
const claudePath = path.join(dir, 'CLAUDE.md');
|
|
303
|
-
if (!fs.existsSync(claudePath)) writeFileEnsuringDir(claudePath, '@AGENTS.md\n');
|
|
304
|
-
|
|
305
|
-
return wroteAgents;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
// The AGENTS.md body ships beside this script (copied from npm_publishing/ at publish time) so it
|
|
309
|
-
// can be edited without touching the CLI. A missing file means a packaging problem — skip the agent
|
|
310
|
-
// docs rather than abort a scaffold that has already installed successfully.
|
|
311
|
-
function readScaffoldAgents() {
|
|
312
|
-
try {
|
|
313
|
-
const templatePath = path.join(path.dirname(fileURLToPath(import.meta.url)), 'scaffold-agents.md');
|
|
314
|
-
return fs.readFileSync(templatePath, 'utf8');
|
|
315
|
-
} catch {
|
|
316
|
-
console.warn('> Skipping AGENTS.md/CLAUDE.md (bundled scaffold-agents.md not found).');
|
|
317
|
-
return undefined;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// create-vite's react plugin drives the JSX transform, so the Emotion `css` prop needs its
|
|
322
|
-
// jsxImportSource option — the runtime half of the Emotion setup (the tsconfig half is separate).
|
|
323
|
-
function configureViteEmotion(dir) {
|
|
324
|
-
writeFileEnsuringDir(
|
|
325
|
-
path.join(dir, 'vite.config.ts'),
|
|
326
|
-
[
|
|
327
|
-
"import { defineConfig } from 'vite';",
|
|
328
|
-
"import react from '@vitejs/plugin-react';",
|
|
329
|
-
'',
|
|
330
|
-
'// jsxImportSource wires up Emotion so the `css` prop dbui components use works.',
|
|
331
|
-
'export default defineConfig({',
|
|
332
|
-
" plugins: [react({ jsxImportSource: '@emotion/react' })],",
|
|
333
|
-
'});',
|
|
334
|
-
'',
|
|
335
|
-
].join('\n'),
|
|
336
|
-
);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
function scaffoldNext(name) {
|
|
340
|
-
console.log(`\n> Scaffolding a Next.js (Pages Router) project via ${NEXT_SCAFFOLDER}…\n`);
|
|
341
|
-
// --no-app selects the Pages Router. dbui is client-only (Emotion + React context) and can't be
|
|
342
|
-
// server-rendered; Pages Router lets us load the whole app through next/dynamic with ssr:false
|
|
343
|
-
// so nothing dbui touches the server. App Router's RSC build evaluates every route (even
|
|
344
|
-
// /_not-found) on the server, which dbui can't survive — hence Pages Router for this prototype.
|
|
345
|
-
run('npx', [
|
|
346
|
-
NEXT_SCAFFOLDER,
|
|
347
|
-
name,
|
|
348
|
-
'--ts',
|
|
349
|
-
'--no-app',
|
|
350
|
-
'--eslint',
|
|
351
|
-
'--no-tailwind',
|
|
352
|
-
'--no-src-dir',
|
|
353
|
-
'--import-alias',
|
|
354
|
-
'@/*',
|
|
355
|
-
'--use-npm',
|
|
356
|
-
'--yes',
|
|
357
|
-
]);
|
|
358
|
-
|
|
359
|
-
const dir = path.resolve(process.cwd(), name);
|
|
360
|
-
const pm = detectPackageManager(dir);
|
|
361
|
-
installDesignSystem(dir, pm);
|
|
362
|
-
|
|
363
|
-
// Pages Router requires global CSS to be imported from _app; render the page component plainly.
|
|
364
|
-
writeFileEnsuringDir(
|
|
365
|
-
path.join(dir, 'pages', '_app.tsx'),
|
|
366
|
-
[
|
|
367
|
-
...CSS_IMPORTS,
|
|
368
|
-
"import '../dbui.css';",
|
|
369
|
-
'',
|
|
370
|
-
"import type { AppProps } from 'next/app';",
|
|
371
|
-
'',
|
|
372
|
-
'export default function App({ Component, pageProps }: AppProps) {',
|
|
373
|
-
' return <Component {...pageProps} />;',
|
|
374
|
-
'}',
|
|
375
|
-
'',
|
|
376
|
-
].join('\n'),
|
|
377
|
-
);
|
|
378
|
-
|
|
379
|
-
writeFileEnsuringDir(
|
|
380
|
-
path.join(dir, 'pages', 'index.tsx'),
|
|
381
|
-
[
|
|
382
|
-
"import dynamic from 'next/dynamic';",
|
|
383
|
-
'',
|
|
384
|
-
'// ssr:false renders dbui only on the client, keeping it out of the build-time prerender.',
|
|
385
|
-
"const DbuiApp = dynamic(() => import('../dbui-app'), { ssr: false });",
|
|
386
|
-
'',
|
|
387
|
-
'export default function Home() {',
|
|
388
|
-
' return <DbuiApp />;',
|
|
389
|
-
'}',
|
|
390
|
-
'',
|
|
391
|
-
].join('\n'),
|
|
392
|
-
);
|
|
393
|
-
|
|
394
|
-
writeFileEnsuringDir(path.join(dir, 'dbui-app.tsx'), nextDbuiAppFile());
|
|
395
|
-
writeFileEnsuringDir(path.join(dir, 'dbui.css'), BODY_FONT_CSS);
|
|
396
|
-
ensureCssDeclaration(dir, 'next');
|
|
397
|
-
configureNextEmotion(dir);
|
|
398
|
-
addTsconfigJsxImportSource(path.join(dir, 'tsconfig.json'));
|
|
399
|
-
writeVercelReadme(dir, name);
|
|
400
|
-
writeAgentInstructions(dir);
|
|
401
|
-
|
|
402
|
-
printDone(name, pm, 'next');
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
// Next's SWC compiler has first-class Emotion support; enabling it is the idiomatic Next way to
|
|
406
|
-
// get the `css` prop working. create-next-app may emit next.config.ts | .mjs | .js, so write our
|
|
407
|
-
// config into whichever it created rather than adding a second, conflicting config file.
|
|
408
|
-
function configureNextEmotion(dir) {
|
|
409
|
-
const existing = ['next.config.ts', 'next.config.mjs', 'next.config.js']
|
|
410
|
-
.map((name) => path.join(dir, name))
|
|
411
|
-
.find((configPath) => fs.existsSync(configPath));
|
|
412
|
-
const target = existing ?? path.join(dir, 'next.config.mjs');
|
|
413
|
-
// Match the export style to the file's module format: a .js config is CommonJS (Next's default
|
|
414
|
-
// unless the project opts into ESM), while .mjs/.ts are ESM. Writing the wrong one makes Next
|
|
415
|
-
// fail to load the config.
|
|
416
|
-
const exportLine = target.endsWith('.js') ? 'module.exports = nextConfig;' : 'export default nextConfig;';
|
|
417
|
-
writeFileEnsuringDir(
|
|
418
|
-
target,
|
|
419
|
-
[
|
|
420
|
-
"/** @type {import('next').NextConfig} */",
|
|
421
|
-
'const nextConfig = {',
|
|
422
|
-
' // Enables the Emotion `css` prop that dbui components rely on.',
|
|
423
|
-
' compiler: { emotion: true },',
|
|
424
|
-
'};',
|
|
425
|
-
'',
|
|
426
|
-
exportLine,
|
|
427
|
-
'',
|
|
428
|
-
].join('\n'),
|
|
429
|
-
);
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
// Next.js deploys to Vercel with zero config, so we only leave instructions — no vercel.json is
|
|
433
|
-
// needed, and per the setup we never log in, upload, or deploy anything.
|
|
434
|
-
function writeVercelReadme(dir, name) {
|
|
435
|
-
writeFileEnsuringDir(
|
|
436
|
-
path.join(dir, 'DEPLOY.md'),
|
|
437
|
-
[
|
|
438
|
-
`# Deploying ${name} to Vercel`,
|
|
439
|
-
'',
|
|
440
|
-
'This is a client-only Next.js app, ready to host on Vercel with no extra configuration.',
|
|
441
|
-
'',
|
|
442
|
-
'1. Push this project to a Git repository (GitHub/GitLab/Bitbucket).',
|
|
443
|
-
'2. Import the repo at https://vercel.com/new — Vercel auto-detects Next.js.',
|
|
444
|
-
'',
|
|
445
|
-
'Or deploy straight from this directory with the Vercel CLI:',
|
|
446
|
-
'',
|
|
447
|
-
'```bash',
|
|
448
|
-
'npx vercel',
|
|
449
|
-
'```',
|
|
450
|
-
'',
|
|
451
|
-
].join('\n'),
|
|
452
|
-
);
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
function addToExisting(dir) {
|
|
456
|
-
const detected = detectExistingProject(dir);
|
|
457
|
-
console.log(`\n> Detected project type: ${detected.type}${detected.reason ? ` (${detected.reason})` : ''}`);
|
|
458
|
-
|
|
459
|
-
if (detected.type === 'unknown') {
|
|
460
|
-
console.log('\nCould not identify a React project here. Set it up manually:');
|
|
461
|
-
printManualInstructions('generic');
|
|
462
|
-
return;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
const pm = detectPackageManager(dir);
|
|
466
|
-
installDesignSystem(dir, pm);
|
|
467
|
-
ensureCssDeclaration(dir, detected.type);
|
|
468
|
-
|
|
469
|
-
// Wiring the provider into arbitrary existing app code is fragile, so we make only the safe,
|
|
470
|
-
// idempotent edit (adding the CSS imports where the entry is unambiguous) and print the
|
|
471
|
-
// provider/font/Emotion steps for the user to apply, rather than rewriting their render.
|
|
472
|
-
const entry = existingEntryFile(dir, detected.type);
|
|
473
|
-
if (entry && addImports(entry, CSS_IMPORTS)) {
|
|
474
|
-
console.log(`> Added the dbui CSS imports to ${path.relative(dir, entry)}`);
|
|
475
|
-
}
|
|
476
|
-
if (writeAgentInstructions(dir)) {
|
|
477
|
-
console.log('> Added AGENTS.md instructing agents to use @databricks/design-system for UI');
|
|
478
|
-
}
|
|
479
|
-
printManualInstructions(detected.type);
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
// Best-effort entry file per framework; undefined when we can't confidently name one.
|
|
483
|
-
function existingEntryFile(dir, type) {
|
|
484
|
-
const candidatesByType = {
|
|
485
|
-
next: ['app/layout.tsx', 'app/layout.jsx', 'app/layout.js', 'pages/_app.tsx', 'pages/_app.jsx', 'pages/_app.js'],
|
|
486
|
-
vite: ['src/main.tsx', 'src/main.jsx', 'src/main.ts', 'src/main.js'],
|
|
487
|
-
cra: ['src/index.tsx', 'src/index.jsx', 'src/index.js'],
|
|
488
|
-
react: [
|
|
489
|
-
'src/main.tsx',
|
|
490
|
-
'src/index.tsx',
|
|
491
|
-
'src/main.jsx',
|
|
492
|
-
'src/index.jsx',
|
|
493
|
-
'src/main.ts',
|
|
494
|
-
'src/main.js',
|
|
495
|
-
'src/index.js',
|
|
496
|
-
],
|
|
497
|
-
};
|
|
498
|
-
for (const rel of candidatesByType[type] ?? []) {
|
|
499
|
-
const full = path.join(dir, rel);
|
|
500
|
-
if (fs.existsSync(full)) return full;
|
|
501
|
-
}
|
|
502
|
-
return undefined;
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
function printManualInstructions(type) {
|
|
506
|
-
const providerNote =
|
|
507
|
-
type === 'next'
|
|
508
|
-
? 'dbui is client-only: put DesignSystemProvider + ApplyGlobalStyles in a "use client" component and render it from your entry — app/layout.tsx (App Router) or pages/_app.tsx (Pages Router). For App Router, load it via next/dynamic with { ssr: false }.'
|
|
509
|
-
: 'Wrap your root component in <DesignSystemProvider><ApplyGlobalStyles /> … </DesignSystemProvider>.';
|
|
510
|
-
console.log(
|
|
511
|
-
[
|
|
512
|
-
'',
|
|
513
|
-
'Finish setup:',
|
|
514
|
-
` 1. Import the styles at your entry point:`,
|
|
515
|
-
...CSS_IMPORTS.map((line) => ` ${line}`),
|
|
516
|
-
` 2. ${providerNote}`,
|
|
517
|
-
` 3. Set the body font (ApplyGlobalStyles doesn't): body { font-family: var(--db-font-family); }`,
|
|
518
|
-
` 4. Configure the Emotion JSX runtime (jsxImportSource: '@emotion/react') so the css prop works.`,
|
|
519
|
-
'',
|
|
520
|
-
'See the package AGENTS.md for the full setup reference.',
|
|
521
|
-
'',
|
|
522
|
-
].join('\n'),
|
|
523
|
-
);
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
function sampleBody() {
|
|
527
|
-
return [
|
|
528
|
-
' <div style={{ padding: theme.spacing.lg }}>',
|
|
529
|
-
' <Typography.Title>dbui is set up</Typography.Title>',
|
|
530
|
-
' <Button componentId="starter.get_started_button" type="primary">',
|
|
531
|
-
' Get started',
|
|
532
|
-
' </Button>',
|
|
533
|
-
' </div>',
|
|
534
|
-
].join('\n');
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
function viteAppFile() {
|
|
538
|
-
return ['// Build your app here.', 'export function App() {', ' return null;', '}', ''].join('\n');
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
// The client-only module Next loads with ssr:false: it owns the DesignSystemProvider and the
|
|
542
|
-
// sample, so all dbui usage lives behind the ssr:false boundary and never touches the server.
|
|
543
|
-
function nextDbuiAppFile() {
|
|
544
|
-
return [
|
|
545
|
-
"import { ApplyGlobalStyles, Button, DesignSystemProvider, Typography, useDesignSystemTheme } from '@databricks/design-system';",
|
|
546
|
-
'',
|
|
547
|
-
'function Sample() {',
|
|
548
|
-
' const { theme } = useDesignSystemTheme();',
|
|
549
|
-
' return (',
|
|
550
|
-
sampleBody(),
|
|
551
|
-
' );',
|
|
552
|
-
'}',
|
|
553
|
-
'',
|
|
554
|
-
'export default function DbuiApp() {',
|
|
555
|
-
' return (',
|
|
556
|
-
' <DesignSystemProvider>',
|
|
557
|
-
' <ApplyGlobalStyles />',
|
|
558
|
-
' <Sample />',
|
|
559
|
-
' </DesignSystemProvider>',
|
|
560
|
-
' );',
|
|
561
|
-
'}',
|
|
562
|
-
'',
|
|
563
|
-
].join('\n');
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
function printDone(name, pm, type) {
|
|
567
|
-
const runDev = pm === 'npm' ? 'npm run dev' : `${pm} dev`;
|
|
568
|
-
console.log(
|
|
569
|
-
[
|
|
570
|
-
'',
|
|
571
|
-
`✓ ${name} is ready with @databricks/design-system.`,
|
|
572
|
-
'',
|
|
573
|
-
'Next steps:',
|
|
574
|
-
` cd ${name}`,
|
|
575
|
-
` ${runDev}`,
|
|
576
|
-
...(type === 'next' ? ['', 'To host it: see DEPLOY.md (Vercel).'] : []),
|
|
577
|
-
'',
|
|
578
|
-
].join('\n'),
|
|
579
|
-
);
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
async function promptMode(rl) {
|
|
583
|
-
console.log('What would you like to do?\n');
|
|
584
|
-
console.log(' 1) Scaffold a new Vite project (no hosting)');
|
|
585
|
-
console.log(' 2) Scaffold a new Next.js project (Vercel hosting)');
|
|
586
|
-
console.log(' 3) Add @databricks/design-system to an existing project\n');
|
|
587
|
-
const answer = await ask(rl, 'Enter 1, 2, or 3: ');
|
|
588
|
-
return { 1: 'vite', 2: 'next', 3: 'existing' }[answer];
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
async function main() {
|
|
592
|
-
const args = parseArgs(process.argv.slice(2));
|
|
593
|
-
|
|
594
|
-
// Collect every interactive answer first, then close readline before shelling out. While the
|
|
595
|
-
// interface is open it holds the TTY in raw mode, which passes through to the scaffolders (and
|
|
596
|
-
// to any dev server they'd start), so Ctrl+C would never reach them. Closing it restores the
|
|
597
|
-
// normal terminal so child processes handle their own signals.
|
|
598
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
599
|
-
let mode;
|
|
600
|
-
let name;
|
|
601
|
-
try {
|
|
602
|
-
mode = args.mode ?? (await promptMode(rl));
|
|
603
|
-
if (!mode || !['vite', 'next', 'existing'].includes(mode)) fail('Please choose 1, 2, or 3.');
|
|
604
|
-
if (mode !== 'existing') {
|
|
605
|
-
name = args.name || (await ask(rl, `\nProject name (new directory): `));
|
|
606
|
-
if (!name) fail('A project name is required.');
|
|
607
|
-
}
|
|
608
|
-
} finally {
|
|
609
|
-
rl.close();
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
if (mode === 'existing') {
|
|
613
|
-
addToExisting(process.cwd());
|
|
614
|
-
return;
|
|
615
|
-
}
|
|
616
|
-
if (fs.existsSync(path.resolve(process.cwd(), name))) {
|
|
617
|
-
fail(`\`${name}\` already exists here. Choose a name that isn't taken.`);
|
|
618
|
-
}
|
|
619
|
-
if (mode === 'vite') scaffoldVite(name);
|
|
620
|
-
else scaffoldNext(name);
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
// A bin is symlinked into node_modules/.bin, so compare realpaths (not the raw argv path) to tell
|
|
624
|
-
// direct execution from being imported by a test.
|
|
625
|
-
const invokedDirectly = Boolean(process.argv[1]) && fs.realpathSync(process.argv[1]) === fileURLToPath(import.meta.url);
|
|
626
|
-
if (invokedDirectly) {
|
|
627
|
-
void main();
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
// Exported for unit testing the network-free logic (detection, wiring, arg parsing).
|
|
631
|
-
export {
|
|
632
|
-
parseArgs,
|
|
633
|
-
detectPackageManager,
|
|
634
|
-
detectExistingProject,
|
|
635
|
-
existingEntryFile,
|
|
636
|
-
addImports,
|
|
637
|
-
designSystemSpec,
|
|
638
|
-
CSS_IMPORTS,
|
|
639
|
-
};
|