@keyfunc/keybricks-ds 2.7.0 → 2.8.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.
Files changed (40) hide show
  1. package/DEPLOY.md +3 -3
  2. package/DESIGN.md +8 -1
  3. package/INTEGRATION.md +18 -2
  4. package/_adherence.oxlintrc.json +0 -1
  5. package/_ds_bundle.js +293 -307
  6. package/{components/feedback → _vue-services}/MESSAGE_SERVICES.md +2 -2
  7. package/_vue-services/_internal/MessageBoxView.vue +150 -0
  8. package/{components/feedback → _vue-services}/_internal/service-utils.js +0 -12
  9. package/_vue-services/message.js +87 -0
  10. package/changelog.js +10 -1
  11. package/components/_cards/modal.card.html +8 -2
  12. package/components/_cards/table.card.html +10 -1
  13. package/components/_cards/toast.card.html +11 -1
  14. package/components/_cards/tree.card.html +22 -1
  15. package/components/data/Table.d.ts +5 -0
  16. package/components/data/Table.jsx +10 -5
  17. package/components/data/Table.vue +9 -3
  18. package/components/data/data.prompt.md +2 -0
  19. package/components/data/row-open.js +13 -0
  20. package/components/feedback/Modal.d.ts +58 -7
  21. package/components/feedback/Modal.jsx +46 -16
  22. package/components/feedback/Modal.vue +24 -6
  23. package/components/feedback/Toast.vue +3 -3
  24. package/components/feedback/ToastStack.vue +37 -4
  25. package/components/feedback/feedback.prompt.md +5 -1
  26. package/components/feedback/modal-behavior.js +50 -0
  27. package/components/navigation/Tree.d.ts +5 -1
  28. package/components/navigation/Tree.jsx +9 -7
  29. package/components/navigation/Tree.vue +7 -6
  30. package/components/navigation/navigation.prompt.md +2 -0
  31. package/index.html +3 -3
  32. package/package.json +6 -5
  33. package/site-nav.js +1 -1
  34. package/tokens/tokens.json +1 -1
  35. package/components/feedback/_internal/MessageBoxView.vue +0 -237
  36. package/components/feedback/_internal/MessageView.vue +0 -73
  37. package/components/feedback/message.js +0 -68
  38. /package/{components/feedback → _vue-services}/message-box.d.ts +0 -0
  39. /package/{components/feedback → _vue-services}/message-box.js +0 -0
  40. /package/{components/feedback → _vue-services}/message.d.ts +0 -0
package/_ds_bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /* @ds-bundle: {"format":4,"namespace":"KeybricksDesignSystem_71231a","components":[{"name":"ActionChip","sourcePath":"components/buttons/ActionChip.jsx"},{"name":"Button","sourcePath":"components/buttons/Button.jsx"},{"name":"ButtonGroup","sourcePath":"components/buttons/Button.jsx"},{"name":"IconButton","sourcePath":"components/buttons/IconButton.jsx"},{"name":"Bar3D","sourcePath":"components/charts/Bar3D.jsx"},{"name":"BarChart","sourcePath":"components/charts/BarChart.jsx"},{"name":"BarList","sourcePath":"components/charts/BarList.jsx"},{"name":"BoxPlot","sourcePath":"components/charts/BoxPlot.jsx"},{"name":"BulletChart","sourcePath":"components/charts/BulletChart.jsx"},{"name":"CandlestickChart","sourcePath":"components/charts/CandlestickChart.jsx"},{"name":"ChartLegend","sourcePath":"components/charts/ChartKit.jsx"},{"name":"ChartTooltip","sourcePath":"components/charts/ChartKit.jsx"},{"name":"PlotGrid","sourcePath":"components/charts/ChartKit.jsx"},{"name":"XLabels","sourcePath":"components/charts/ChartKit.jsx"},{"name":"ChartKit","sourcePath":"components/charts/ChartKit.jsx"},{"name":"ChordChart","sourcePath":"components/charts/ChordChart.jsx"},{"name":"DonutChart","sourcePath":"components/charts/DonutChart.jsx"},{"name":"FunnelChart","sourcePath":"components/charts/FunnelChart.jsx"},{"name":"GanttChart","sourcePath":"components/charts/GanttChart.jsx"},{"name":"GaugeChart","sourcePath":"components/charts/GaugeChart.jsx"},{"name":"HeatmapChart","sourcePath":"components/charts/HeatmapChart.jsx"},{"name":"Histogram","sourcePath":"components/charts/Histogram.jsx"},{"name":"LineChart","sourcePath":"components/charts/LineChart.jsx"},{"name":"ParetoChart","sourcePath":"components/charts/ParetoChart.jsx"},{"name":"Pie3D","sourcePath":"components/charts/Pie3D.jsx"},{"name":"RadarChart","sourcePath":"components/charts/RadarChart.jsx"},{"name":"Ribbon3D","sourcePath":"components/charts/Ribbon3D.jsx"},{"name":"SankeyChart","sourcePath":"components/charts/SankeyChart.jsx"},{"name":"Scatter3D","sourcePath":"components/charts/Scatter3D.jsx"},{"name":"ScatterChart","sourcePath":"components/charts/ScatterChart.jsx"},{"name":"Sparkline","sourcePath":"components/charts/Sparkline.jsx"},{"name":"SunburstChart","sourcePath":"components/charts/SunburstChart.jsx"},{"name":"Surface3D","sourcePath":"components/charts/Surface3D.jsx"},{"name":"TreemapChart","sourcePath":"components/charts/TreemapChart.jsx"},{"name":"WaterfallChart","sourcePath":"components/charts/WaterfallChart.jsx"},{"name":"WorldMap","sourcePath":"components/charts/WorldMap.jsx"},{"name":"SERIES","sourcePath":"components/charts/chart-geometry.js"},{"name":"CodeBlock","sourcePath":"components/data/CodeBlock.jsx"},{"name":"DiffValue","sourcePath":"components/data/DiffValue.jsx"},{"name":"FilterBar","sourcePath":"components/data/FilterBar.jsx"},{"name":"KeyValue","sourcePath":"components/data/KeyValue.jsx"},{"name":"KeyValueList","sourcePath":"components/data/KeyValue.jsx"},{"name":"ListRow","sourcePath":"components/data/ListRow.jsx"},{"name":"Pagination","sourcePath":"components/data/Pagination.jsx"},{"name":"SmartTable","sourcePath":"components/data/SmartTable.jsx"},{"name":"Spreadsheet","sourcePath":"components/data/Spreadsheet.jsx"},{"name":"Table","sourcePath":"components/data/Table.jsx"},{"name":"Avatar","sourcePath":"components/display/Avatar.jsx"},{"name":"AvatarGroup","sourcePath":"components/display/Avatar.jsx"},{"name":"StatusBadge","sourcePath":"components/display/Badge.jsx"},{"name":"Badge","sourcePath":"components/display/Badge.jsx"},{"name":"IconTile","sourcePath":"components/display/Badge.jsx"},{"name":"Card","sourcePath":"components/display/Card.jsx"},{"name":"StatCard","sourcePath":"components/display/Card.jsx"},{"name":"Divider","sourcePath":"components/display/Divider.jsx"},{"name":"Kbd","sourcePath":"components/display/Kbd.jsx"},{"name":"ProgressBar","sourcePath":"components/display/ProgressBar.jsx"},{"name":"Donut","sourcePath":"components/display/ProgressBar.jsx"},{"name":"AreaChart","sourcePath":"components/display/ProgressBar.jsx"},{"name":"MiniBars","sourcePath":"components/display/ProgressBar.jsx"},{"name":"Tag","sourcePath":"components/display/Tag.jsx"},{"name":"Accordion","sourcePath":"components/feedback/Accordion.jsx"},{"name":"ActivityItem","sourcePath":"components/feedback/ActivityItem.jsx"},{"name":"DotActivity","sourcePath":"components/feedback/ActivityItem.jsx"},{"name":"LogViewer","sourcePath":"components/feedback/ActivityItem.jsx"},{"name":"Alert","sourcePath":"components/feedback/Alert.jsx"},{"name":"EmptyState","sourcePath":"components/feedback/Alert.jsx"},{"name":"Skeleton","sourcePath":"components/feedback/Alert.jsx"},{"name":"Spinner","sourcePath":"components/feedback/Alert.jsx"},{"name":"Banner","sourcePath":"components/feedback/Banner.jsx"},{"name":"ContextMenu","sourcePath":"components/feedback/ContextMenu.jsx"},{"name":"Drawer","sourcePath":"components/feedback/Drawer.jsx"},{"name":"Menu","sourcePath":"components/feedback/Menu.jsx"},{"name":"Tooltip","sourcePath":"components/feedback/Modal.jsx"},{"name":"Modal","sourcePath":"components/feedback/Modal.jsx"},{"name":"Toast","sourcePath":"components/feedback/Modal.jsx"},{"name":"ToastStack","sourcePath":"components/feedback/Modal.jsx"},{"name":"Stepper","sourcePath":"components/feedback/Stepper.jsx"},{"name":"Timeline","sourcePath":"components/feedback/Timeline.jsx"},{"name":"MessageBox","sourcePath":"components/feedback/message-box.js"},{"name":"Message","sourcePath":"components/feedback/message.js"},{"name":"Checkbox","sourcePath":"components/forms/Checkbox.jsx"},{"name":"Combobox","sourcePath":"components/forms/Combobox.jsx"},{"name":"DatePicker","sourcePath":"components/forms/DatePicker.jsx"},{"name":"Dropzone","sourcePath":"components/forms/Dropzone.jsx"},{"name":"Field","sourcePath":"components/forms/Field.jsx"},{"name":"GLOBAL_SEARCH_LABELS","sourcePath":"components/forms/global-search.js"},{"name":"GlobalSearch","sourcePath":"components/forms/GlobalSearch.jsx"},{"name":"Input","sourcePath":"components/forms/Input.jsx"},{"name":"Textarea","sourcePath":"components/forms/Input.jsx"},{"name":"MultiSelect","sourcePath":"components/forms/MultiSelect.jsx"},{"name":"NumberStepper","sourcePath":"components/forms/NumberStepper.jsx"},{"name":"Radio","sourcePath":"components/forms/Radio.jsx"},{"name":"RadioGroup","sourcePath":"components/forms/Radio.jsx"},{"name":"RelativeTimePicker","sourcePath":"components/forms/RelativeTimePicker.jsx"},{"name":"SearchInput","sourcePath":"components/forms/SearchInput.jsx"},{"name":"Select","sourcePath":"components/forms/Select.jsx"},{"name":"Slider","sourcePath":"components/forms/Slider.jsx"},{"name":"Switch","sourcePath":"components/forms/Switch.jsx"},{"name":"GS_KINDS","sourcePath":"components/forms/global-search.js"},{"name":"GS_ICONS","sourcePath":"components/forms/global-search.js"},{"name":"RELATIVE_TIME_UNITS","sourcePath":"components/forms/relative-time.js"},{"name":"RELATIVE_TIME_LABELS","sourcePath":"components/forms/relative-time.js"},{"name":"ICON_PATHS","sourcePath":"components/icons/Icon.jsx"},{"name":"Icon","sourcePath":"components/icons/Icon.jsx"},{"name":"LUCIDE_VERSION","sourcePath":"components/icons/lucide-loader.js"},{"name":"Lucide","sourcePath":"components/icons/Lucide.jsx"},{"name":"Unicon","sourcePath":"components/icons/Unicon.jsx"},{"name":"FEATHER_PATHS","sourcePath":"components/icons/feather-paths.js"},{"name":"VUE_ICON_PATHS","sourcePath":"components/icons/icon-paths.js"},{"name":"DataTable","sourcePath":"components/index.js"},{"name":"Breadcrumb","sourcePath":"components/navigation/Breadcrumb.jsx"},{"name":"ThemeToggle","sourcePath":"components/navigation/Breadcrumb.jsx"},{"name":"DocTree","sourcePath":"components/navigation/DocTree.jsx"},{"name":"SidePanel","sourcePath":"components/navigation/SidePanel.jsx"},{"name":"KEYBRICKS_MGMT","sourcePath":"components/navigation/nav-model.js"},{"name":"KEYBRICKS_NAV","sourcePath":"components/navigation/nav-model.js"},{"name":"KEYBRICKS_NAV_FOOTER","sourcePath":"components/navigation/nav-model.js"},{"name":"SIDEBAR_COLORS","sourcePath":"components/navigation/chrome-tones.js"},{"name":"Sidebar","sourcePath":"components/navigation/Sidebar.jsx"},{"name":"PageHeading","sourcePath":"components/navigation/TopBar.jsx"},{"name":"PageToolbar","sourcePath":"components/navigation/TopBar.jsx"},{"name":"THEME_OPTIONS","sourcePath":"components/navigation/TopBar.jsx"},{"name":"TopBar","sourcePath":"components/navigation/TopBar.jsx"},{"name":"UserMenu","sourcePath":"components/navigation/TopBar.jsx"},{"name":"Tree","sourcePath":"components/navigation/Tree.jsx"},{"name":"ConfigPanel","sourcePath":"components/pipeline/ConfigPanel.jsx"},{"name":"DataPreview","sourcePath":"components/pipeline/DataPreview.jsx"},{"name":"NodeCard","sourcePath":"components/pipeline/NodeCard.jsx"},{"name":"Port","sourcePath":"components/pipeline/NodeCard.jsx"},{"name":"PortLabel","sourcePath":"components/pipeline/NodeCard.jsx"},{"name":"PIPELINE_CATALOG","sourcePath":"components/pipeline/pipeline-catalog.js"},{"name":"PaletteItem","sourcePath":"components/pipeline/PalettePanel.jsx"},{"name":"PaletteListItem","sourcePath":"components/pipeline/PalettePanel.jsx"},{"name":"PalettePanel","sourcePath":"components/pipeline/PalettePanel.jsx"},{"name":"PipelineCanvas","sourcePath":"components/pipeline/PipelineCanvas.jsx"},{"name":"ZoomControls","sourcePath":"components/pipeline/ZoomControls.jsx"},{"name":"SegmentedControl","sourcePath":"components/tabs/SegmentedControl.jsx"},{"name":"CountBadge","sourcePath":"components/tabs/Tabs.jsx"},{"name":"PanelTabs","sourcePath":"components/tabs/Tabs.jsx"},{"name":"PillTabs","sourcePath":"components/tabs/Tabs.jsx"},{"name":"Tabs","sourcePath":"components/tabs/Tabs.jsx"},{"name":"ViewToggle","sourcePath":"components/tabs/ViewToggle.jsx"}],"sourceHashes":{"changelog.js":"1464b1a52501","components/_shared/card-kit.js":"d1a34446784f","components/_shared/frame-theme.js":"bf16c8945df0","components/_shared/svg-download.js":"9d62db55383f","components/_shared/view-source.js":"fab1363c9ec6","components/buttons/ActionChip.jsx":"14bc07f40ce8","components/buttons/Button.jsx":"8f6d049d411e","components/buttons/IconButton.jsx":"7dc6876baab5","components/buttons/ai-button.js":"b9c77432191b","components/charts/Bar3D.jsx":"831825885981","components/charts/BarChart.jsx":"233a0bc11a9b","components/charts/BarList.jsx":"125a1dbb53ed","components/charts/BoxPlot.jsx":"8248a9768508","components/charts/BulletChart.jsx":"f72c2a568232","components/charts/CandlestickChart.jsx":"06c056166032","components/charts/ChartKit.jsx":"2f186e247fd2","components/charts/ChordChart.jsx":"f637257e4117","components/charts/DonutChart.jsx":"3b941dbb9b59","components/charts/FunnelChart.jsx":"4e0905360b64","components/charts/GanttChart.jsx":"385f02db3353","components/charts/GaugeChart.jsx":"675e34482ee7","components/charts/HeatmapChart.jsx":"563ed883a71b","components/charts/Histogram.jsx":"2cafc5676c9c","components/charts/LineChart.jsx":"4b650646e6d5","components/charts/ParetoChart.jsx":"0f7462fd7b7d","components/charts/Pie3D.jsx":"a712524cd12c","components/charts/RadarChart.jsx":"2c5d2186a949","components/charts/Ribbon3D.jsx":"af1793d05d39","components/charts/SankeyChart.jsx":"954d95f4d065","components/charts/Scatter3D.jsx":"ef50d4381338","components/charts/ScatterChart.jsx":"77c05131ec98","components/charts/Sparkline.jsx":"9d8f3fa12642","components/charts/SunburstChart.jsx":"125f214d8795","components/charts/Surface3D.jsx":"aee8e4b7ee78","components/charts/TreemapChart.jsx":"dda7f388e540","components/charts/WaterfallChart.jsx":"5a330bd1827c","components/charts/WorldMap.jsx":"606387955701","components/charts/chart-3d.js":"3d737da91401","components/charts/chart-geometry.js":"a12030d8657d","components/data/CodeBlock.jsx":"6e690f47fc42","components/data/DiffValue.jsx":"c935ef5dd50b","components/data/FilterBar.jsx":"39f18062ca6f","components/data/KeyValue.jsx":"9bdc389e0d7e","components/data/ListRow.jsx":"e578944ee86a","components/data/Pagination.jsx":"c3bbaae7dc5a","components/data/SmartTable.jsx":"3c8becbc7196","components/data/Spreadsheet.jsx":"a77fd88f3569","components/data/Table.jsx":"e025e97ecf21","components/display/Avatar.jsx":"977b19df247c","components/display/Badge.jsx":"e88da52fcfc4","components/display/Card.jsx":"8a7b8364a215","components/display/Divider.jsx":"bb429e2d0956","components/display/Kbd.jsx":"3c378009453d","components/display/ProgressBar.jsx":"fdde3c872e07","components/display/Tag.jsx":"9273edfc3e38","components/feedback/Accordion.jsx":"73c086d09ba4","components/feedback/ActivityItem.jsx":"0adc1a58c612","components/feedback/Alert.jsx":"f6de26206dae","components/feedback/Banner.jsx":"610a45f96ecd","components/feedback/ContextMenu.jsx":"dfdde5683263","components/feedback/Drawer.jsx":"f19acf9e3a00","components/feedback/Menu.jsx":"6e92100d3d2b","components/feedback/Modal.jsx":"7c39e71ebcac","components/feedback/Stepper.jsx":"a0cb5b659998","components/feedback/Timeline.jsx":"2b8c0f37503e","components/feedback/_internal/service-utils.js":"6efa74b69776","components/feedback/message-box.js":"e79a70456849","components/feedback/message.js":"f81767053319","components/forms/Checkbox.jsx":"db9c8ff69653","components/forms/Combobox.jsx":"8ec375433182","components/forms/DatePicker.jsx":"e7366c603a9f","components/forms/Dropzone.jsx":"5432a672a429","components/forms/Field.jsx":"8e4649e1a18b","components/forms/GlobalSearch.jsx":"432c5899649a","components/forms/Input.jsx":"95922d854a24","components/forms/MultiSelect.jsx":"14636d36331b","components/forms/NumberStepper.jsx":"6e0c940000fe","components/forms/Radio.jsx":"96e36a9b1c79","components/forms/RelativeTimePicker.jsx":"23755d41a8c1","components/forms/SearchInput.jsx":"40dae28d378f","components/forms/Select.jsx":"870c20ebcd67","components/forms/Slider.jsx":"ebd21a287cc3","components/forms/Switch.jsx":"e1303512a946","components/forms/global-search.js":"10bbf84803dc","components/forms/input-base.js":"988c002d8357","components/forms/relative-time.js":"64155d3bcdcf","components/icons/Icon.jsx":"26135ed6632c","components/icons/Lucide.jsx":"42c8091d53f5","components/icons/Unicon.jsx":"03683a8eb3d3","components/icons/feather-paths.js":"f8ca847bbdf3","components/icons/icon-paths.js":"0a50d04574ee","components/icons/lucide-loader.js":"b2fe23ee92fc","components/index.js":"9a4e6fbbb25c","components/navigation/Breadcrumb.jsx":"26b271b8d1dd","components/navigation/DocTree.jsx":"02a7d753e159","components/navigation/SidePanel.jsx":"4691ef93e84e","components/navigation/Sidebar.jsx":"6ce469c00f26","components/navigation/TopBar.jsx":"0b9d74133402","components/navigation/Tree.jsx":"72ac15ee39e6","components/navigation/chrome-tones.js":"073b9df6aef5","components/navigation/nav-model.js":"e091dd62900c","components/navigation/theme-store.js":"c05c61fb0bd2","components/pipeline/ConfigPanel.jsx":"8cf8677f4472","components/pipeline/DataPreview.jsx":"7aaf081fcd16","components/pipeline/NodeCard.jsx":"357042c92033","components/pipeline/PalettePanel.jsx":"1d28f2d3abac","components/pipeline/PipelineCanvas.jsx":"09eb8b7d7f61","components/pipeline/ZoomControls.jsx":"7bd9fa5c4c9b","components/pipeline/pipeline-catalog.js":"9a3250315e88","components/pipeline/port-skin.js":"9bdd304628a6","components/px.js":"4ab7eb225e9d","components/tabs/SegmentedControl.jsx":"ae08c2ef8a1e","components/tabs/Tabs.jsx":"d92fbada1ef2","components/tabs/ViewToggle.jsx":"3a77b9900151","covers.js":"5207b155f561","site-nav.js":"b1085ddfd062","tokens/theme.js":"1848ef09eb46","tokens/tokens.js":"049947750936"},"inlinedExternals":[],"unexposedExports":[{"name":"aiSpinDelay","sourcePath":"components/buttons/ai-button.js"},{"name":"aiStyles","sourcePath":"components/buttons/ai-button.js"},{"name":"applyStoredTheme","sourcePath":"components/navigation/theme-store.js"},{"name":"arcPath","sourcePath":"components/charts/chart-geometry.js"},{"name":"areaPath","sourcePath":"components/charts/chart-geometry.js"},{"name":"changeRelativeAmount","sourcePath":"components/forms/relative-time.js"},{"name":"changeRelativeUnit","sourcePath":"components/forms/relative-time.js"},{"name":"chord","sourcePath":"components/charts/chart-geometry.js"},{"name":"chordRibbon","sourcePath":"components/charts/chart-geometry.js"},{"name":"chromeTone","sourcePath":"components/navigation/chrome-tones.js"},{"name":"closeToBaseline","sourcePath":"components/charts/chart-geometry.js"},{"name":"colName","sourcePath":"components/data/Spreadsheet.jsx"},{"name":"contentNode","sourcePath":"components/feedback/_internal/service-utils.js"},{"name":"cssVar","sourcePath":"tokens/tokens.js"},{"name":"cuboidFaces","sourcePath":"components/charts/chart-3d.js"},{"name":"curvePath","sourcePath":"components/charts/chart-geometry.js"},{"name":"dark","sourcePath":"tokens/tokens.js"},{"name":"dragRotate","sourcePath":"components/charts/chart-3d.js"},{"name":"extent","sourcePath":"components/charts/chart-geometry.js"},{"name":"faceDepth","sourcePath":"components/charts/chart-3d.js"},{"name":"facePath","sourcePath":"components/charts/chart-3d.js"},{"name":"fmtNum","sourcePath":"components/charts/chart-geometry.js"},{"name":"gsAiTile","sourcePath":"components/forms/global-search.js"},{"name":"gsFill","sourcePath":"components/forms/global-search.js"},{"name":"gsFilter","sourcePath":"components/forms/global-search.js"},{"name":"gsIsMac","sourcePath":"components/forms/global-search.js"},{"name":"gsLabels","sourcePath":"components/forms/global-search.js"},{"name":"gsMod","sourcePath":"components/forms/global-search.js"},{"name":"gsPos","sourcePath":"components/forms/global-search.js"},{"name":"gsReveal","sourcePath":"components/forms/global-search.js"},{"name":"gsRows","sourcePath":"components/forms/global-search.js"},{"name":"gsSplit","sourcePath":"components/forms/global-search.js"},{"name":"gsStyles","sourcePath":"components/forms/global-search.js"},{"name":"heatColor","sourcePath":"components/charts/chart-3d.js"},{"name":"heatStep","sourcePath":"components/charts/chart-geometry.js"},{"name":"iconGradientDefs","sourcePath":"components/icons/Icon.jsx"},{"name":"inputBase","sourcePath":"components/forms/input-base.js"},{"name":"light","sourcePath":"tokens/tokens.js"},{"name":"lightOf","sourcePath":"components/charts/chart-3d.js"},{"name":"linePath","sourcePath":"components/charts/chart-geometry.js"},{"name":"loadLucide","sourcePath":"components/icons/lucide-loader.js"},{"name":"lockBody","sourcePath":"components/feedback/_internal/service-utils.js"},{"name":"lucideBody","sourcePath":"components/icons/lucide-loader.js"},{"name":"lucideReady","sourcePath":"components/icons/lucide-loader.js"},{"name":"makeProj","sourcePath":"components/charts/chart-3d.js"},{"name":"mountService","sourcePath":"components/feedback/_internal/service-utils.js"},{"name":"niceTicks","sourcePath":"components/charts/chart-geometry.js"},{"name":"normalizeRelativeTime","sourcePath":"components/forms/relative-time.js"},{"name":"onLucideReady","sourcePath":"components/icons/lucide-loader.js"},{"name":"polar","sourcePath":"components/charts/chart-geometry.js"},{"name":"portSkin","sourcePath":"components/pipeline/port-skin.js"},{"name":"px","sourcePath":"components/px.js"},{"name":"quantize","sourcePath":"components/charts/chart-geometry.js"},{"name":"rampAiSpin","sourcePath":"components/buttons/ai-button.js"},{"name":"relativeTimePosition","sourcePath":"components/forms/relative-time.js"},{"name":"relativeTimeText","sourcePath":"components/forms/relative-time.js"},{"name":"relativeUnitLabel","sourcePath":"components/forms/relative-time.js"},{"name":"resolveRelativeTime","sourcePath":"components/forms/relative-time.js"},{"name":"resolveTarget","sourcePath":"components/feedback/_internal/service-utils.js"},{"name":"rotate3","sourcePath":"components/charts/chart-3d.js"},{"name":"sankey","sourcePath":"components/charts/chart-geometry.js"},{"name":"scaleLin","sourcePath":"components/charts/chart-geometry.js"},{"name":"seriesColor","sourcePath":"components/charts/chart-geometry.js"},{"name":"setLucideSource","sourcePath":"components/icons/lucide-loader.js"},{"name":"shade","sourcePath":"components/charts/chart-3d.js"},{"name":"shapePath","sourcePath":"components/charts/chart-geometry.js"},{"name":"stack","sourcePath":"components/charts/chart-geometry.js"},{"name":"stepPath","sourcePath":"components/charts/chart-geometry.js"},{"name":"summarize","sourcePath":"components/charts/BoxPlot.jsx"},{"name":"thinLabels","sourcePath":"components/charts/ChartKit.jsx"},{"name":"tokenNames","sourcePath":"tokens/tokens.js"},{"name":"treemap","sourcePath":"components/charts/chart-geometry.js"},{"name":"waterfall","sourcePath":"components/charts/chart-geometry.js"},{"name":"wrapStyle","sourcePath":"components/charts/ChartKit.jsx"}]} */
1
+ /* @ds-bundle: {"format":4,"namespace":"KeybricksDesignSystem_71231a","components":[{"name":"ActionChip","sourcePath":"components/buttons/ActionChip.jsx"},{"name":"Button","sourcePath":"components/buttons/Button.jsx"},{"name":"ButtonGroup","sourcePath":"components/buttons/Button.jsx"},{"name":"IconButton","sourcePath":"components/buttons/IconButton.jsx"},{"name":"Bar3D","sourcePath":"components/charts/Bar3D.jsx"},{"name":"BarChart","sourcePath":"components/charts/BarChart.jsx"},{"name":"BarList","sourcePath":"components/charts/BarList.jsx"},{"name":"BoxPlot","sourcePath":"components/charts/BoxPlot.jsx"},{"name":"BulletChart","sourcePath":"components/charts/BulletChart.jsx"},{"name":"CandlestickChart","sourcePath":"components/charts/CandlestickChart.jsx"},{"name":"ChartLegend","sourcePath":"components/charts/ChartKit.jsx"},{"name":"ChartTooltip","sourcePath":"components/charts/ChartKit.jsx"},{"name":"PlotGrid","sourcePath":"components/charts/ChartKit.jsx"},{"name":"XLabels","sourcePath":"components/charts/ChartKit.jsx"},{"name":"ChartKit","sourcePath":"components/charts/ChartKit.jsx"},{"name":"ChordChart","sourcePath":"components/charts/ChordChart.jsx"},{"name":"DonutChart","sourcePath":"components/charts/DonutChart.jsx"},{"name":"FunnelChart","sourcePath":"components/charts/FunnelChart.jsx"},{"name":"GanttChart","sourcePath":"components/charts/GanttChart.jsx"},{"name":"GaugeChart","sourcePath":"components/charts/GaugeChart.jsx"},{"name":"HeatmapChart","sourcePath":"components/charts/HeatmapChart.jsx"},{"name":"Histogram","sourcePath":"components/charts/Histogram.jsx"},{"name":"LineChart","sourcePath":"components/charts/LineChart.jsx"},{"name":"ParetoChart","sourcePath":"components/charts/ParetoChart.jsx"},{"name":"Pie3D","sourcePath":"components/charts/Pie3D.jsx"},{"name":"RadarChart","sourcePath":"components/charts/RadarChart.jsx"},{"name":"Ribbon3D","sourcePath":"components/charts/Ribbon3D.jsx"},{"name":"SankeyChart","sourcePath":"components/charts/SankeyChart.jsx"},{"name":"Scatter3D","sourcePath":"components/charts/Scatter3D.jsx"},{"name":"ScatterChart","sourcePath":"components/charts/ScatterChart.jsx"},{"name":"Sparkline","sourcePath":"components/charts/Sparkline.jsx"},{"name":"SunburstChart","sourcePath":"components/charts/SunburstChart.jsx"},{"name":"Surface3D","sourcePath":"components/charts/Surface3D.jsx"},{"name":"TreemapChart","sourcePath":"components/charts/TreemapChart.jsx"},{"name":"WaterfallChart","sourcePath":"components/charts/WaterfallChart.jsx"},{"name":"WorldMap","sourcePath":"components/charts/WorldMap.jsx"},{"name":"SERIES","sourcePath":"components/charts/chart-geometry.js"},{"name":"CodeBlock","sourcePath":"components/data/CodeBlock.jsx"},{"name":"DiffValue","sourcePath":"components/data/DiffValue.jsx"},{"name":"FilterBar","sourcePath":"components/data/FilterBar.jsx"},{"name":"KeyValue","sourcePath":"components/data/KeyValue.jsx"},{"name":"KeyValueList","sourcePath":"components/data/KeyValue.jsx"},{"name":"ListRow","sourcePath":"components/data/ListRow.jsx"},{"name":"Pagination","sourcePath":"components/data/Pagination.jsx"},{"name":"SmartTable","sourcePath":"components/data/SmartTable.jsx"},{"name":"Spreadsheet","sourcePath":"components/data/Spreadsheet.jsx"},{"name":"Table","sourcePath":"components/data/Table.jsx"},{"name":"Avatar","sourcePath":"components/display/Avatar.jsx"},{"name":"AvatarGroup","sourcePath":"components/display/Avatar.jsx"},{"name":"StatusBadge","sourcePath":"components/display/Badge.jsx"},{"name":"Badge","sourcePath":"components/display/Badge.jsx"},{"name":"IconTile","sourcePath":"components/display/Badge.jsx"},{"name":"Card","sourcePath":"components/display/Card.jsx"},{"name":"StatCard","sourcePath":"components/display/Card.jsx"},{"name":"Divider","sourcePath":"components/display/Divider.jsx"},{"name":"Kbd","sourcePath":"components/display/Kbd.jsx"},{"name":"ProgressBar","sourcePath":"components/display/ProgressBar.jsx"},{"name":"Donut","sourcePath":"components/display/ProgressBar.jsx"},{"name":"AreaChart","sourcePath":"components/display/ProgressBar.jsx"},{"name":"MiniBars","sourcePath":"components/display/ProgressBar.jsx"},{"name":"Tag","sourcePath":"components/display/Tag.jsx"},{"name":"Accordion","sourcePath":"components/feedback/Accordion.jsx"},{"name":"ActivityItem","sourcePath":"components/feedback/ActivityItem.jsx"},{"name":"DotActivity","sourcePath":"components/feedback/ActivityItem.jsx"},{"name":"LogViewer","sourcePath":"components/feedback/ActivityItem.jsx"},{"name":"Alert","sourcePath":"components/feedback/Alert.jsx"},{"name":"EmptyState","sourcePath":"components/feedback/Alert.jsx"},{"name":"Skeleton","sourcePath":"components/feedback/Alert.jsx"},{"name":"Spinner","sourcePath":"components/feedback/Alert.jsx"},{"name":"Banner","sourcePath":"components/feedback/Banner.jsx"},{"name":"ContextMenu","sourcePath":"components/feedback/ContextMenu.jsx"},{"name":"Drawer","sourcePath":"components/feedback/Drawer.jsx"},{"name":"Menu","sourcePath":"components/feedback/Menu.jsx"},{"name":"Tooltip","sourcePath":"components/feedback/Modal.jsx"},{"name":"Modal","sourcePath":"components/feedback/Modal.jsx"},{"name":"Toast","sourcePath":"components/feedback/Modal.jsx"},{"name":"ToastStack","sourcePath":"components/feedback/Modal.jsx"},{"name":"Stepper","sourcePath":"components/feedback/Stepper.jsx"},{"name":"Timeline","sourcePath":"components/feedback/Timeline.jsx"},{"name":"Checkbox","sourcePath":"components/forms/Checkbox.jsx"},{"name":"Combobox","sourcePath":"components/forms/Combobox.jsx"},{"name":"DatePicker","sourcePath":"components/forms/DatePicker.jsx"},{"name":"Dropzone","sourcePath":"components/forms/Dropzone.jsx"},{"name":"Field","sourcePath":"components/forms/Field.jsx"},{"name":"GLOBAL_SEARCH_LABELS","sourcePath":"components/forms/global-search.js"},{"name":"GlobalSearch","sourcePath":"components/forms/GlobalSearch.jsx"},{"name":"Input","sourcePath":"components/forms/Input.jsx"},{"name":"Textarea","sourcePath":"components/forms/Input.jsx"},{"name":"MultiSelect","sourcePath":"components/forms/MultiSelect.jsx"},{"name":"NumberStepper","sourcePath":"components/forms/NumberStepper.jsx"},{"name":"Radio","sourcePath":"components/forms/Radio.jsx"},{"name":"RadioGroup","sourcePath":"components/forms/Radio.jsx"},{"name":"RelativeTimePicker","sourcePath":"components/forms/RelativeTimePicker.jsx"},{"name":"SearchInput","sourcePath":"components/forms/SearchInput.jsx"},{"name":"Select","sourcePath":"components/forms/Select.jsx"},{"name":"Slider","sourcePath":"components/forms/Slider.jsx"},{"name":"Switch","sourcePath":"components/forms/Switch.jsx"},{"name":"GS_KINDS","sourcePath":"components/forms/global-search.js"},{"name":"GS_ICONS","sourcePath":"components/forms/global-search.js"},{"name":"RELATIVE_TIME_UNITS","sourcePath":"components/forms/relative-time.js"},{"name":"RELATIVE_TIME_LABELS","sourcePath":"components/forms/relative-time.js"},{"name":"ICON_PATHS","sourcePath":"components/icons/Icon.jsx"},{"name":"Icon","sourcePath":"components/icons/Icon.jsx"},{"name":"LUCIDE_VERSION","sourcePath":"components/icons/lucide-loader.js"},{"name":"Lucide","sourcePath":"components/icons/Lucide.jsx"},{"name":"Unicon","sourcePath":"components/icons/Unicon.jsx"},{"name":"FEATHER_PATHS","sourcePath":"components/icons/feather-paths.js"},{"name":"VUE_ICON_PATHS","sourcePath":"components/icons/icon-paths.js"},{"name":"DataTable","sourcePath":"components/index.js"},{"name":"Breadcrumb","sourcePath":"components/navigation/Breadcrumb.jsx"},{"name":"ThemeToggle","sourcePath":"components/navigation/Breadcrumb.jsx"},{"name":"DocTree","sourcePath":"components/navigation/DocTree.jsx"},{"name":"SidePanel","sourcePath":"components/navigation/SidePanel.jsx"},{"name":"KEYBRICKS_MGMT","sourcePath":"components/navigation/nav-model.js"},{"name":"KEYBRICKS_NAV","sourcePath":"components/navigation/nav-model.js"},{"name":"KEYBRICKS_NAV_FOOTER","sourcePath":"components/navigation/nav-model.js"},{"name":"SIDEBAR_COLORS","sourcePath":"components/navigation/chrome-tones.js"},{"name":"Sidebar","sourcePath":"components/navigation/Sidebar.jsx"},{"name":"PageHeading","sourcePath":"components/navigation/TopBar.jsx"},{"name":"PageToolbar","sourcePath":"components/navigation/TopBar.jsx"},{"name":"THEME_OPTIONS","sourcePath":"components/navigation/TopBar.jsx"},{"name":"TopBar","sourcePath":"components/navigation/TopBar.jsx"},{"name":"UserMenu","sourcePath":"components/navigation/TopBar.jsx"},{"name":"Tree","sourcePath":"components/navigation/Tree.jsx"},{"name":"ConfigPanel","sourcePath":"components/pipeline/ConfigPanel.jsx"},{"name":"DataPreview","sourcePath":"components/pipeline/DataPreview.jsx"},{"name":"NodeCard","sourcePath":"components/pipeline/NodeCard.jsx"},{"name":"Port","sourcePath":"components/pipeline/NodeCard.jsx"},{"name":"PortLabel","sourcePath":"components/pipeline/NodeCard.jsx"},{"name":"PIPELINE_CATALOG","sourcePath":"components/pipeline/pipeline-catalog.js"},{"name":"PaletteItem","sourcePath":"components/pipeline/PalettePanel.jsx"},{"name":"PaletteListItem","sourcePath":"components/pipeline/PalettePanel.jsx"},{"name":"PalettePanel","sourcePath":"components/pipeline/PalettePanel.jsx"},{"name":"PipelineCanvas","sourcePath":"components/pipeline/PipelineCanvas.jsx"},{"name":"ZoomControls","sourcePath":"components/pipeline/ZoomControls.jsx"},{"name":"SegmentedControl","sourcePath":"components/tabs/SegmentedControl.jsx"},{"name":"CountBadge","sourcePath":"components/tabs/Tabs.jsx"},{"name":"PanelTabs","sourcePath":"components/tabs/Tabs.jsx"},{"name":"PillTabs","sourcePath":"components/tabs/Tabs.jsx"},{"name":"Tabs","sourcePath":"components/tabs/Tabs.jsx"},{"name":"ViewToggle","sourcePath":"components/tabs/ViewToggle.jsx"}],"sourceHashes":{"changelog.js":"ec2195f2b580","components/_shared/card-kit.js":"d1a34446784f","components/_shared/frame-theme.js":"bf16c8945df0","components/_shared/svg-download.js":"9d62db55383f","components/_shared/view-source.js":"fab1363c9ec6","components/buttons/ActionChip.jsx":"14bc07f40ce8","components/buttons/Button.jsx":"8f6d049d411e","components/buttons/IconButton.jsx":"7dc6876baab5","components/buttons/ai-button.js":"b9c77432191b","components/charts/Bar3D.jsx":"831825885981","components/charts/BarChart.jsx":"233a0bc11a9b","components/charts/BarList.jsx":"125a1dbb53ed","components/charts/BoxPlot.jsx":"8248a9768508","components/charts/BulletChart.jsx":"f72c2a568232","components/charts/CandlestickChart.jsx":"06c056166032","components/charts/ChartKit.jsx":"2f186e247fd2","components/charts/ChordChart.jsx":"f637257e4117","components/charts/DonutChart.jsx":"3b941dbb9b59","components/charts/FunnelChart.jsx":"4e0905360b64","components/charts/GanttChart.jsx":"385f02db3353","components/charts/GaugeChart.jsx":"675e34482ee7","components/charts/HeatmapChart.jsx":"563ed883a71b","components/charts/Histogram.jsx":"2cafc5676c9c","components/charts/LineChart.jsx":"4b650646e6d5","components/charts/ParetoChart.jsx":"0f7462fd7b7d","components/charts/Pie3D.jsx":"a712524cd12c","components/charts/RadarChart.jsx":"2c5d2186a949","components/charts/Ribbon3D.jsx":"af1793d05d39","components/charts/SankeyChart.jsx":"954d95f4d065","components/charts/Scatter3D.jsx":"ef50d4381338","components/charts/ScatterChart.jsx":"77c05131ec98","components/charts/Sparkline.jsx":"9d8f3fa12642","components/charts/SunburstChart.jsx":"125f214d8795","components/charts/Surface3D.jsx":"aee8e4b7ee78","components/charts/TreemapChart.jsx":"dda7f388e540","components/charts/WaterfallChart.jsx":"5a330bd1827c","components/charts/WorldMap.jsx":"606387955701","components/charts/chart-3d.js":"3d737da91401","components/charts/chart-geometry.js":"a12030d8657d","components/data/CodeBlock.jsx":"6e690f47fc42","components/data/DiffValue.jsx":"c935ef5dd50b","components/data/FilterBar.jsx":"39f18062ca6f","components/data/KeyValue.jsx":"9bdc389e0d7e","components/data/ListRow.jsx":"e578944ee86a","components/data/Pagination.jsx":"c3bbaae7dc5a","components/data/SmartTable.jsx":"3c8becbc7196","components/data/Spreadsheet.jsx":"a77fd88f3569","components/data/Table.jsx":"b3fa1348d494","components/data/row-open.js":"03bf33bfa4c2","components/display/Avatar.jsx":"977b19df247c","components/display/Badge.jsx":"e88da52fcfc4","components/display/Card.jsx":"8a7b8364a215","components/display/Divider.jsx":"bb429e2d0956","components/display/Kbd.jsx":"3c378009453d","components/display/ProgressBar.jsx":"fdde3c872e07","components/display/Tag.jsx":"9273edfc3e38","components/feedback/Accordion.jsx":"73c086d09ba4","components/feedback/ActivityItem.jsx":"0adc1a58c612","components/feedback/Alert.jsx":"f6de26206dae","components/feedback/Banner.jsx":"610a45f96ecd","components/feedback/ContextMenu.jsx":"dfdde5683263","components/feedback/Drawer.jsx":"f19acf9e3a00","components/feedback/Menu.jsx":"6e92100d3d2b","components/feedback/Modal.jsx":"2841d6ce35f4","components/feedback/Stepper.jsx":"a0cb5b659998","components/feedback/Timeline.jsx":"2b8c0f37503e","components/feedback/modal-behavior.js":"d1300f890f19","components/forms/Checkbox.jsx":"db9c8ff69653","components/forms/Combobox.jsx":"8ec375433182","components/forms/DatePicker.jsx":"e7366c603a9f","components/forms/Dropzone.jsx":"5432a672a429","components/forms/Field.jsx":"8e4649e1a18b","components/forms/GlobalSearch.jsx":"432c5899649a","components/forms/Input.jsx":"95922d854a24","components/forms/MultiSelect.jsx":"14636d36331b","components/forms/NumberStepper.jsx":"6e0c940000fe","components/forms/Radio.jsx":"96e36a9b1c79","components/forms/RelativeTimePicker.jsx":"23755d41a8c1","components/forms/SearchInput.jsx":"40dae28d378f","components/forms/Select.jsx":"870c20ebcd67","components/forms/Slider.jsx":"ebd21a287cc3","components/forms/Switch.jsx":"e1303512a946","components/forms/global-search.js":"10bbf84803dc","components/forms/input-base.js":"988c002d8357","components/forms/relative-time.js":"64155d3bcdcf","components/icons/Icon.jsx":"26135ed6632c","components/icons/Lucide.jsx":"42c8091d53f5","components/icons/Unicon.jsx":"03683a8eb3d3","components/icons/feather-paths.js":"f8ca847bbdf3","components/icons/icon-paths.js":"0a50d04574ee","components/icons/lucide-loader.js":"b2fe23ee92fc","components/index.js":"9a4e6fbbb25c","components/navigation/Breadcrumb.jsx":"26b271b8d1dd","components/navigation/DocTree.jsx":"02a7d753e159","components/navigation/SidePanel.jsx":"4691ef93e84e","components/navigation/Sidebar.jsx":"6ce469c00f26","components/navigation/TopBar.jsx":"0b9d74133402","components/navigation/Tree.jsx":"9ebccb3a8e40","components/navigation/chrome-tones.js":"073b9df6aef5","components/navigation/nav-model.js":"e091dd62900c","components/navigation/theme-store.js":"c05c61fb0bd2","components/pipeline/ConfigPanel.jsx":"8cf8677f4472","components/pipeline/DataPreview.jsx":"7aaf081fcd16","components/pipeline/NodeCard.jsx":"357042c92033","components/pipeline/PalettePanel.jsx":"1d28f2d3abac","components/pipeline/PipelineCanvas.jsx":"09eb8b7d7f61","components/pipeline/ZoomControls.jsx":"7bd9fa5c4c9b","components/pipeline/pipeline-catalog.js":"9a3250315e88","components/pipeline/port-skin.js":"9bdd304628a6","components/px.js":"4ab7eb225e9d","components/tabs/SegmentedControl.jsx":"ae08c2ef8a1e","components/tabs/Tabs.jsx":"d92fbada1ef2","components/tabs/ViewToggle.jsx":"3a77b9900151","covers.js":"5207b155f561","site-nav.js":"46e1e672f269","tokens/theme.js":"1848ef09eb46","tokens/tokens.js":"049947750936"},"inlinedExternals":[],"unexposedExports":[{"name":"aiSpinDelay","sourcePath":"components/buttons/ai-button.js"},{"name":"aiStyles","sourcePath":"components/buttons/ai-button.js"},{"name":"applyStoredTheme","sourcePath":"components/navigation/theme-store.js"},{"name":"arcPath","sourcePath":"components/charts/chart-geometry.js"},{"name":"areaPath","sourcePath":"components/charts/chart-geometry.js"},{"name":"changeRelativeAmount","sourcePath":"components/forms/relative-time.js"},{"name":"changeRelativeUnit","sourcePath":"components/forms/relative-time.js"},{"name":"chord","sourcePath":"components/charts/chart-geometry.js"},{"name":"chordRibbon","sourcePath":"components/charts/chart-geometry.js"},{"name":"chromeTone","sourcePath":"components/navigation/chrome-tones.js"},{"name":"closeToBaseline","sourcePath":"components/charts/chart-geometry.js"},{"name":"colName","sourcePath":"components/data/Spreadsheet.jsx"},{"name":"cssVar","sourcePath":"tokens/tokens.js"},{"name":"cuboidFaces","sourcePath":"components/charts/chart-3d.js"},{"name":"curvePath","sourcePath":"components/charts/chart-geometry.js"},{"name":"dark","sourcePath":"tokens/tokens.js"},{"name":"dragRotate","sourcePath":"components/charts/chart-3d.js"},{"name":"extent","sourcePath":"components/charts/chart-geometry.js"},{"name":"faceDepth","sourcePath":"components/charts/chart-3d.js"},{"name":"facePath","sourcePath":"components/charts/chart-3d.js"},{"name":"fmtNum","sourcePath":"components/charts/chart-geometry.js"},{"name":"gsAiTile","sourcePath":"components/forms/global-search.js"},{"name":"gsFill","sourcePath":"components/forms/global-search.js"},{"name":"gsFilter","sourcePath":"components/forms/global-search.js"},{"name":"gsIsMac","sourcePath":"components/forms/global-search.js"},{"name":"gsLabels","sourcePath":"components/forms/global-search.js"},{"name":"gsMod","sourcePath":"components/forms/global-search.js"},{"name":"gsPos","sourcePath":"components/forms/global-search.js"},{"name":"gsReveal","sourcePath":"components/forms/global-search.js"},{"name":"gsRows","sourcePath":"components/forms/global-search.js"},{"name":"gsSplit","sourcePath":"components/forms/global-search.js"},{"name":"gsStyles","sourcePath":"components/forms/global-search.js"},{"name":"heatColor","sourcePath":"components/charts/chart-3d.js"},{"name":"heatStep","sourcePath":"components/charts/chart-geometry.js"},{"name":"iconGradientDefs","sourcePath":"components/icons/Icon.jsx"},{"name":"inputBase","sourcePath":"components/forms/input-base.js"},{"name":"light","sourcePath":"tokens/tokens.js"},{"name":"lightOf","sourcePath":"components/charts/chart-3d.js"},{"name":"linePath","sourcePath":"components/charts/chart-geometry.js"},{"name":"loadLucide","sourcePath":"components/icons/lucide-loader.js"},{"name":"lucideBody","sourcePath":"components/icons/lucide-loader.js"},{"name":"lucideReady","sourcePath":"components/icons/lucide-loader.js"},{"name":"makeProj","sourcePath":"components/charts/chart-3d.js"},{"name":"modalOpen","sourcePath":"components/feedback/modal-behavior.js"},{"name":"niceTicks","sourcePath":"components/charts/chart-geometry.js"},{"name":"normalizeRelativeTime","sourcePath":"components/forms/relative-time.js"},{"name":"onLucideReady","sourcePath":"components/icons/lucide-loader.js"},{"name":"polar","sourcePath":"components/charts/chart-geometry.js"},{"name":"portSkin","sourcePath":"components/pipeline/port-skin.js"},{"name":"px","sourcePath":"components/px.js"},{"name":"quantize","sourcePath":"components/charts/chart-geometry.js"},{"name":"rampAiSpin","sourcePath":"components/buttons/ai-button.js"},{"name":"relativeTimePosition","sourcePath":"components/forms/relative-time.js"},{"name":"relativeTimeText","sourcePath":"components/forms/relative-time.js"},{"name":"relativeUnitLabel","sourcePath":"components/forms/relative-time.js"},{"name":"resolveRelativeTime","sourcePath":"components/forms/relative-time.js"},{"name":"rotate3","sourcePath":"components/charts/chart-3d.js"},{"name":"rowOpenFromClick","sourcePath":"components/data/row-open.js"},{"name":"sankey","sourcePath":"components/charts/chart-geometry.js"},{"name":"scaleLin","sourcePath":"components/charts/chart-geometry.js"},{"name":"seriesColor","sourcePath":"components/charts/chart-geometry.js"},{"name":"setLucideSource","sourcePath":"components/icons/lucide-loader.js"},{"name":"shade","sourcePath":"components/charts/chart-3d.js"},{"name":"shapePath","sourcePath":"components/charts/chart-geometry.js"},{"name":"stack","sourcePath":"components/charts/chart-geometry.js"},{"name":"stepPath","sourcePath":"components/charts/chart-geometry.js"},{"name":"summarize","sourcePath":"components/charts/BoxPlot.jsx"},{"name":"thinLabels","sourcePath":"components/charts/ChartKit.jsx"},{"name":"tokenNames","sourcePath":"tokens/tokens.js"},{"name":"treemap","sourcePath":"components/charts/chart-geometry.js"},{"name":"waterfall","sourcePath":"components/charts/chart-geometry.js"},{"name":"wrapStyle","sourcePath":"components/charts/ChartKit.jsx"}]} */
2
2
 
3
3
  (() => {
4
4
 
@@ -12,9 +12,35 @@ const __ds_scope = {};
12
12
  try { (() => {
13
13
  /* Keybricks changelog — the source for the Changelog section of index.html. Newest first.
14
14
  Each release: v, date (ISO, "" when not recorded), status ("unreleased" until it is tagged), items.
15
- Each item: tag (new | improved | fixed | breaking | removed) and the text as [en, zh, ja].
15
+ Each item: tag (new | improved | fixed | breaking | removed | rule — a team rule, shown in amber) and the text as [en, zh, ja].
16
16
  INTEGRATION.md keeps the full migration notes; this list is the short, reader-facing summary. */
17
17
  window.KB_CHANGELOG = [{
18
+ v: "2.8.0",
19
+ date: "2026-11-03",
20
+ status: "unreleased",
21
+ items: [{
22
+ tag: "rule",
23
+ t: ["For notices and dialogs use <code>Toast</code> / <code>ToastStack</code> and <code>Modal</code> (Vue services: <code>Message</code> / <code>MessageBox</code>, built on them). Before building any new component, check the component list; only when nothing there fits may you build one — please check with Felix first.", "提示和弹窗一律使用 <code>Toast</code> / <code>ToastStack</code> 和 <code>Modal</code>(Vue 命令式调用用基于它们的 <code>Message</code> / <code>MessageBox</code>)。新建任何组件前先查组件列表,只有找不到现成可用的才能新建,请先问 Felix。", "通知とダイアログには必ず <code>Toast</code> / <code>ToastStack</code> と <code>Modal</code> を使う(Vue の命令的な呼び出しはそれらを使う <code>Message</code> / <code>MessageBox</code>)。新しいコンポーネントを作る前にコンポーネント一覧を確認し、使えるものがない場合のみ作成可。その際はまず Felix に相談してください。"]
24
+ }, {
25
+ tag: "improved",
26
+ t: ["Modal: Esc closes, focus stays inside and returns on close, the page behind stops scrolling; new options to block closing by scrim / Esc / ×, and a must-answer mode.", "弹窗:支持 Esc 关闭,焦点留在弹窗内、关闭后回到原处,打开时背后页面不滚动;新增可选设置:禁止点遮罩 / Esc / × 关闭,以及必须回答模式。", "モーダル:Esc で閉じる、フォーカスを内側に保持し閉じたら元に戻す、背面のスクロールを停止。遮罩 / Esc / × で閉じない設定と、必ず回答するモードを追加。"]
27
+ }, {
28
+ tag: "improved",
29
+ t: ["ToastStack: choose the position (top-center, top-right, bottom-right, bottom-center), auto-dismiss with pause on hover, and “× 2” for repeated messages. Toasts are read out by screen readers.", "轻提示堆叠:可设置位置(顶部居中、右上、右下、底部居中),可自动消失、悬停时暂停,重复消息显示“× 2”。读屏软件会读出提示。", "トーストスタック:表示位置(上中央・右上・右下・下中央)を選択可能、ホバーで一時停止する自動クローズ、同じ通知は「× 2」と表示。スクリーンリーダーが読み上げる。"]
30
+ }, {
31
+ tag: "improved",
32
+ t: ["Vue Message and MessageBox now render with ToastStack and Modal — no second look to maintain. Their source moved to <code>_vue-services/</code>; imports stay the same.", "Vue 的 Message 和 MessageBox 改为直接用 ToastStack 和 Modal 显示,不再另有一套样式;源码移到 <code>_vue-services/</code>,引用方式不变。", "Vue の Message と MessageBox は ToastStack と Modal で表示するように変更し、別の見た目を持たない。ソースは <code>_vue-services/</code> へ移動、インポート方法は変わらない。"]
33
+ }, {
34
+ tag: "new",
35
+ t: ["Table: <code>rowOpen=\"row\"</code> opens a row from a click anywhere on it (hand cursor on the whole row); buttons, checkboxes, inputs, links, the ⋯ menu, the tree arrow and text selection are left alone.", "表格:<code>rowOpen=\"row\"</code> 时点击整行任意空白处即可打开该行(整行显示手型光标);按钮、复选框、输入框、链接、更多菜单、树形箭头和选中文字不受影响。", "テーブル:<code>rowOpen=\"row\"</code> で行のどこをクリックしても開けるように(行全体が手のカーソル)。ボタン、チェックボックス、入力欄、リンク、⋯ メニュー、ツリーの矢印、テキスト選択はそのまま。"]
36
+ }, {
37
+ tag: "improved",
38
+ t: ["Tree follows the size tier of its region: 28px rows and 12px text in sm, unchanged in md.", "树形视图跟随所在区域的尺寸档位:sm 档为 28px 行高、12px 文字,md 档外观不变。", "ツリーが領域のサイズ段階に追従:sm は行高 28px・文字 12px、md は従来どおり。"]
39
+ }, {
40
+ tag: "new",
41
+ t: ["Tree: <code>icon: false</code> on a node drops its icon without leaving a gap — for a root such as “Documents”.", "树形视图:节点设置 <code>icon: false</code> 时不显示图标、也不留空位,适合“Documents”这类根节点。", "ツリー:ノードに <code>icon: false</code> を指定するとアイコンを表示せず余白も残さない。「Documents」のようなルートに。"]
42
+ }]
43
+ }, {
18
44
  v: "2.7.0",
19
45
  date: "2026-11-02",
20
46
  items: [{
@@ -5938,6 +5964,25 @@ function KeyValueList({
5938
5964
  Object.assign(__ds_scope, { KeyValue, KeyValueList });
5939
5965
  })(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/KeyValue.jsx", error: String((e && e.message) || e) }); }
5940
5966
 
5967
+ // components/data/row-open.js
5968
+ try { (() => {
5969
+ /* Table rowOpen="row": decides whether a click on a body row opens it. Clicks on controls inside the row (buttons — the ⋯ menu and
5970
+ the tree arrow included — checkboxes, inputs, links, menus), on the title / tile that open the row themselves, and clicks that end a
5971
+ text selection do not. Header cells and resize handles sit outside the body rows, so they never reach here. */
5972
+ const SKIP = 'button, a[href], input, select, textarea, label, summary, [contenteditable=""], [contenteditable="true"], [role="button"], [role="checkbox"], [role="switch"], [role="radio"], [role="menuitem"], [role="menu"], [role="link"], [role="combobox"], [role="slider"], [data-row-open], [data-row-skip]';
5973
+ function rowOpenFromClick(e) {
5974
+ const tr = e.currentTarget,
5975
+ t = e.target;
5976
+ if (!tr || e.defaultPrevented || e.button != null && e.button !== 0) return false;
5977
+ const hit = t && t.closest ? t.closest(SKIP) : null;
5978
+ if (hit && tr.contains(hit)) return false;
5979
+ const sel = typeof window !== "undefined" && window.getSelection ? window.getSelection() : null;
5980
+ if (sel && !sel.isCollapsed && String(sel).length > 0) return false;
5981
+ return true;
5982
+ }
5983
+ Object.assign(__ds_scope, { rowOpenFromClick });
5984
+ })(); } catch (e) { __ds_ns.__errors.push({ path: "components/data/row-open.js", error: String((e && e.message) || e) }); }
5985
+
5941
5986
  // components/display/Avatar.jsx
5942
5987
  try { (() => {
5943
5988
  const palette = ["var(--cat-join)", "var(--cat-source)", "var(--cat-transform)", "var(--cat-merge)", "var(--cat-output)"];
@@ -6422,269 +6467,89 @@ function MiniBars({
6422
6467
  Object.assign(__ds_scope, { ProgressBar, Donut, AreaChart, MiniBars });
6423
6468
  })(); } catch (e) { __ds_ns.__errors.push({ path: "components/display/ProgressBar.jsx", error: String((e && e.message) || e) }); }
6424
6469
 
6425
- // components/feedback/_internal/service-utils.js
6470
+ // components/feedback/modal-behavior.js
6426
6471
  try { (() => {
6427
- // 默认按文本渲染,只有调用方显式开启时才渲染可信 HTML。
6428
- function contentNode(message, html = false) {
6429
- const value = typeof message === 'function' ? message() : message;
6430
- if (isVNode(value) || Array.isArray(value)) return value;
6431
- return html ? h('span', {
6432
- innerHTML: String(value ?? '')
6433
- }) : String(value ?? '');
6434
- }
6435
- function resolveTarget(options = {}) {
6436
- const target = typeof options.appendTo === 'string' ? document.querySelector(options.appendTo) : options.appendTo || document.body;
6437
- if (!target) throw new Error('Keybricks: appendTo 未找到挂载目标');
6438
- return target;
6439
- }
6440
- function mountService(component, props, options = {}, appContext) {
6441
- const target = resolveTarget(options);
6442
- const container = document.createElement('div');
6443
- const vnode = h(component, props);
6444
- vnode.appContext = appContext || null;
6445
- target.appendChild(container);
6446
- try {
6447
- render(vnode, container);
6448
- } catch (error) {
6449
- render(null, container);
6450
- container.remove();
6451
- throw error;
6452
- }
6453
- return () => {
6454
- render(null, container);
6455
- container.remove();
6456
- };
6457
- }
6458
- let locks = 0;
6459
- let previousOverflow;
6460
- function lockBody() {
6461
- if (locks++ === 0) {
6462
- previousOverflow = document.body.style.overflow;
6463
- document.body.style.overflow = 'hidden';
6464
- }
6465
- return () => {
6466
- if (--locks === 0) document.body.style.overflow = previousOverflow;
6467
- };
6468
- }
6469
- Object.assign(__ds_scope, { contentNode, resolveTarget, mountService, lockBody });
6470
- })(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/_internal/service-utils.js", error: String((e && e.message) || e) }); }
6471
-
6472
- __ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls$jzzomx = __ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls !== undefined ? __ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls : __ds_scope.MessageBoxView;
6473
-
6474
- // components/feedback/message-box.js
6475
- try { (() => {
6476
- const queue = [];
6477
- let active;
6478
- let seed = 0;
6479
- function next() {
6480
- if (active || !queue.length) return;
6481
- const entry = active = queue.shift();
6482
- try {
6483
- entry.dispose = __ds_scope.mountService(__ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls$jzzomx, {
6484
- options: entry.state,
6485
- onAction: action => requestAction(entry, action)
6486
- }, entry.state, entry.context);
6487
- } catch (error) {
6488
- active = undefined;
6489
- entry.reject(error);
6490
- next();
6491
- }
6492
- }
6493
- function finish(entry, action) {
6494
- if (active !== entry || entry.closed) return;
6495
- entry.closed = true;
6496
- entry.dispose?.();
6497
- active = undefined;
6498
- const result = entry.state.showInput ? {
6499
- value: entry.state.inputValue,
6500
- action
6501
- } : action;
6502
- try {
6503
- if (entry.state.callback) entry.state.callback(result, entry.state);else if (action === 'confirm') entry.resolve(result);else entry.reject(action === 'close' && !entry.state.distinguishCancelAndClose ? 'cancel' : action);
6504
- } finally {
6505
- next();
6506
- }
6507
- }
6508
- function requestAction(entry, action) {
6509
- if (entry.closed || active !== entry) return;
6510
- entry.state.action = action;
6511
- const done = () => finish(entry, action);
6512
- if (entry.state.beforeClose) entry.state.beforeClose(action, entry.state, done);else done();
6513
- }
6514
-
6515
- /** Vue 弹窗服务;队列内同一时刻只显示一个确认框。 */
6516
- function MessageBox(value = {}, appContext) {
6517
- if (typeof document === 'undefined') return Promise.reject(new Error('Keybricks MessageBox 需要浏览器环境'));
6518
- const options = typeof value === 'string' || typeof value === 'function' || isVNode(value) ? {
6519
- message: value
6520
- } : value;
6521
- const state = reactive({
6522
- id: `kb-message-box-${++seed}`,
6523
- title: '',
6524
- message: '',
6525
- type: '',
6526
- showClose: true,
6527
- showConfirmButton: true,
6528
- showCancelButton: false,
6529
- closeOnClickModal: true,
6530
- closeOnPressEscape: true,
6531
- lockScroll: true,
6532
- autofocus: true,
6533
- inputValue: '',
6534
- inputType: 'text',
6535
- inputErrorMessage: '',
6536
- confirmButtonLoading: false,
6537
- cancelButtonLoading: false,
6538
- confirmButtonDisabled: false,
6539
- cancelButtonDisabled: false,
6540
- ...MessageBox.defaults,
6541
- ...options
6542
- });
6543
- return new Promise((resolve, reject) => {
6544
- queue.push({
6545
- state,
6546
- resolve,
6547
- reject,
6548
- context: appContext || getCurrentInstance()?.appContext
6549
- });
6550
- next();
6551
- });
6552
- }
6553
- for (const kind of ['alert', 'confirm', 'prompt']) {
6554
- MessageBox[kind] = (message, title, options, appContext) => {
6555
- if (title && typeof title === 'object' && !isVNode(title)) {
6556
- appContext = options;
6557
- options = title;
6558
- title = undefined;
6559
- }
6560
- return MessageBox({
6561
- boxType: kind,
6562
- showCancelButton: kind !== 'alert',
6563
- showInput: kind === 'prompt',
6564
- closeOnClickModal: kind !== 'alert',
6565
- closeOnPressEscape: kind !== 'alert',
6566
- ...options,
6567
- message,
6568
- ...(title === undefined ? {} : {
6569
- title
6570
- })
6571
- }, appContext);
6472
+ /* Modal keyboard + focus behaviour, shared by Modal.jsx and Modal.vue (framework-neutral).
6473
+ While a dialog is open: focus moves into it ([data-autofocus] first, else the panel), Tab / Shift+Tab cycle inside it,
6474
+ Esc closes only the topmost dialog, the page behind stops scrolling (counted, so stacked dialogs unlock once),
6475
+ and on close focus returns to the element that had it. */
6476
+ const stack = [];
6477
+ let locks = 0,
6478
+ prevOverflow = "";
6479
+ const FOCUSABLE = 'button:not(:disabled), [href], input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"])';
6480
+
6481
+ /** Call when the panel is in the DOM. Returns the cleanup to call on close / unmount. opts: { closeOnEsc, lockScroll, autoFocus, onEsc } */
6482
+ function modalOpen(panel, opts) {
6483
+ if (!panel || typeof document === "undefined") return () => {};
6484
+ const entry = {
6485
+ panel,
6486
+ opts
6572
6487
  };
6573
- }
6574
-
6575
- // 与 ElMessageBox.close 一致:清空所有弹窗,不触发用户操作回调或结算 Promise。
6576
- MessageBox.close = () => {
6577
- queue.length = 0;
6578
- if (active) {
6579
- const entry = active;
6580
- active = undefined;
6581
- entry.closed = true;
6582
- entry.dispose?.();
6488
+ stack.push(entry);
6489
+ const top = () => stack[stack.length - 1] === entry;
6490
+ const prev = document.activeElement;
6491
+ if (opts.lockScroll !== false && locks++ === 0) {
6492
+ prevOverflow = document.body.style.overflow;
6493
+ document.body.style.overflow = "hidden";
6583
6494
  }
6584
- };
6585
- MessageBox.defaults = {};
6586
- Object.assign(__ds_scope, { MessageBox, __ds_default_components_feedback_message_box_wroo95: MessageBox });
6587
- })(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/message-box.js", error: String((e && e.message) || e) }); }
6588
-
6589
- __ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev$1qk09ay = __ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev !== undefined ? __ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev : __ds_scope.MessageView;
6590
-
6591
- // components/feedback/message.js
6592
- try { (() => {
6593
- const instances = [];
6594
- let seed = 0;
6595
- const normalize = value => typeof value === 'string' || typeof value === 'function' || isVNode(value) ? {
6596
- message: value
6597
- } : {
6598
- ...value
6599
- };
6600
-
6601
- /** Vue 消息服务;样式由 Toast 提供,业务错误脱敏仍由应用处理。 */
6602
- function Message(value = {}, appContext) {
6603
- if (typeof document === 'undefined') return {
6604
- close() {}
6605
- };
6606
- const options = {
6607
- type: 'info',
6608
- duration: 3000,
6609
- offset: 16,
6610
- ...Message.defaults,
6611
- ...normalize(value)
6612
- };
6613
- const target = __ds_scope.resolveTarget(options);
6614
- if (options.grouping) {
6615
- const existing = instances.find(item => item.target === target && item.options.message === options.message);
6616
- if (existing) {
6617
- existing.options.repeatNum++;
6618
- existing.options.type = options.type;
6619
- existing.options.restart++;
6620
- return existing.handle;
6495
+ const onKey = e => {
6496
+ if (!top()) return;
6497
+ if (e.key === "Escape") {
6498
+ if (e.isComposing) return;
6499
+ e.preventDefault();
6500
+ e.stopImmediatePropagation();
6501
+ if (entry.opts.closeOnEsc !== false && entry.opts.onEsc) entry.opts.onEsc(e);
6502
+ return;
6621
6503
  }
6622
- }
6623
- const state = reactive({
6624
- ...options,
6625
- id: `kb-message-${++seed}`,
6626
- repeatNum: 1,
6627
- restart: 0,
6628
- height: 0,
6629
- top: options.offset
6630
- });
6631
- let dispose;
6632
- let closed = false;
6633
- const handle = {
6634
- close() {
6635
- if (closed) return;
6636
- closed = true;
6637
- instances.splice(instances.indexOf(entry), 1);
6638
- dispose?.();
6639
- reflow();
6640
- options.onClose?.(handle);
6504
+ if (e.key !== "Tab") return;
6505
+ const list = [...panel.querySelectorAll(FOCUSABLE)].filter(n => n.getClientRects().length);
6506
+ if (!list.length) {
6507
+ e.preventDefault();
6508
+ panel.focus();
6509
+ return;
6510
+ }
6511
+ const first = list[0],
6512
+ last = list[list.length - 1],
6513
+ at = document.activeElement;
6514
+ if (e.shiftKey && (at === first || !panel.contains(at))) {
6515
+ e.preventDefault();
6516
+ last.focus();
6517
+ } else if (!e.shiftKey && (at === last || !panel.contains(at))) {
6518
+ e.preventDefault();
6519
+ first.focus();
6641
6520
  }
6642
6521
  };
6643
- const entry = {
6644
- options: state,
6645
- handle,
6646
- target
6522
+ const onFocusIn = e => {
6523
+ if (top() && !panel.contains(e.target)) panel.focus();
6647
6524
  };
6648
- function reflow() {
6649
- const tops = new Map();
6650
- for (const item of instances) {
6651
- const target = item.target;
6652
- item.options.top = Math.max(Number(item.options.offset) || 0, tops.get(target) || 0);
6653
- tops.set(target, item.options.top + item.options.height + 16);
6525
+ document.addEventListener("keydown", onKey, true);
6526
+ document.addEventListener("focusin", onFocusIn);
6527
+ if (opts.autoFocus !== false) {
6528
+ const a = panel.querySelector("[data-autofocus]");
6529
+ const t = a && (a.matches(FOCUSABLE) ? a : a.querySelector(FOCUSABLE)) || panel;
6530
+ try {
6531
+ t.focus({
6532
+ preventScroll: true
6533
+ });
6534
+ } catch (err) {
6535
+ t.focus();
6654
6536
  }
6537
+ if (t.select && t.tagName !== "BUTTON") t.select();
6655
6538
  }
6656
- instances.push(entry);
6657
- try {
6658
- dispose = __ds_scope.mountService(__ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev$1qk09ay, {
6659
- options: state,
6660
- onClose: handle.close,
6661
- onHeight: height => {
6662
- state.height = height;
6663
- reflow();
6664
- }
6665
- }, options, appContext || getCurrentInstance()?.appContext);
6666
- } catch (error) {
6667
- instances.splice(instances.indexOf(entry), 1);
6668
- reflow();
6669
- throw error;
6670
- }
6671
- reflow();
6672
- return handle;
6673
- }
6674
- for (const type of ['success', 'info', 'warning', 'error']) {
6675
- Message[type] = (value, appContext) => Message({
6676
- ...normalize(value),
6677
- type
6678
- }, appContext);
6539
+ let done = false;
6540
+ return () => {
6541
+ if (done) return;
6542
+ done = true;
6543
+ document.removeEventListener("keydown", onKey, true);
6544
+ document.removeEventListener("focusin", onFocusIn);
6545
+ const i = stack.indexOf(entry);
6546
+ if (i >= 0) stack.splice(i, 1);
6547
+ if (opts.lockScroll !== false && --locks === 0) document.body.style.overflow = prevOverflow;
6548
+ if (prev && prev.isConnected && prev.focus) prev.focus();
6549
+ };
6679
6550
  }
6680
- Message.closeAll = type => {
6681
- for (const entry of [...instances]) {
6682
- if (!type || entry.options.type === type) entry.handle.close();
6683
- }
6684
- };
6685
- Message.defaults = {};
6686
- Object.assign(__ds_scope, { Message, __ds_default_components_feedback_message_gqn72r: Message });
6687
- })(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/message.js", error: String((e && e.message) || e) }); }
6551
+ Object.assign(__ds_scope, { modalOpen });
6552
+ })(); } catch (e) { __ds_ns.__errors.push({ path: "components/feedback/modal-behavior.js", error: String((e && e.message) || e) }); }
6688
6553
 
6689
6554
  // components/forms/Field.jsx
6690
6555
  try { (() => {
@@ -10383,8 +10248,10 @@ function Tooltip({
10383
10248
  }, label) : null);
10384
10249
  }
10385
10250
 
10386
- /** Centered modal dialog with scrim. width defaults to 440. */
10387
- /** Modal dialog. A size region that defaults to lg (40px controls) whatever the page behind it uses — a dialog does not compete for space; pass `size` to override. 24px padding, footer buttons 8px apart. */
10251
+ /** Modal dialog. A size region that defaults to lg (40px controls) whatever the page behind it uses — a dialog does not compete for space; pass `size` to override. 24px padding, footer buttons 8px apart.
10252
+ * Keyboard and focus (always): focus moves into the dialog ([data-autofocus] first) and Tab stays inside it; on close focus returns to where it was.
10253
+ * Options (defaults keep the usual dialog): closeOnEsc · closeOnScrim · showClose · lockScroll · scrim · alert (role="alertdialog" for confirmations) · zIndex.
10254
+ * onClose(reason): "close" (×) | "esc" | "scrim". */
10388
10255
  function Modal({
10389
10256
  open,
10390
10257
  title,
@@ -10393,30 +10260,59 @@ function Modal({
10393
10260
  footer,
10394
10261
  width = 440,
10395
10262
  size = "lg",
10263
+ alert,
10264
+ closeOnEsc = true,
10265
+ closeOnScrim = true,
10266
+ showClose = true,
10267
+ lockScroll = true,
10268
+ scrim = true,
10269
+ autoFocus = true,
10270
+ zIndex,
10271
+ closeLabel = "Close",
10396
10272
  children,
10397
10273
  style
10398
10274
  }) {
10275
+ const panel = React.useRef(null);
10276
+ const uid = React.useId();
10277
+ const opts = React.useRef({});
10278
+ opts.current.closeOnEsc = closeOnEsc;
10279
+ opts.current.onEsc = () => onClose && onClose("esc");
10280
+ React.useEffect(() => {
10281
+ if (!open) return undefined;
10282
+ return __ds_scope.modalOpen(panel.current, Object.assign(opts.current, {
10283
+ lockScroll,
10284
+ autoFocus
10285
+ }));
10286
+ }, [open]);
10399
10287
  if (!open) return null;
10288
+ const close = reason => onClose && onClose(reason);
10400
10289
  return /*#__PURE__*/React.createElement("div", {
10401
10290
  style: {
10402
10291
  position: "fixed",
10403
10292
  inset: 0,
10404
- zIndex: "var(--z-modal)",
10405
- background: "var(--bg-scrim)",
10293
+ zIndex: zIndex ?? "var(--z-modal)",
10294
+ background: scrim ? "var(--bg-scrim)" : "transparent",
10406
10295
  display: "flex",
10407
10296
  alignItems: "center",
10408
10297
  justifyContent: "center",
10409
10298
  animation: "kb-fade-in var(--dur-fast) var(--ease-out)"
10410
10299
  },
10411
- onClick: onClose
10300
+ onClick: closeOnScrim ? () => close("scrim") : undefined
10412
10301
  }, /*#__PURE__*/React.createElement("div", {
10413
- role: "dialog",
10302
+ ref: panel,
10303
+ role: alert ? "alertdialog" : "dialog",
10414
10304
  "aria-modal": "true",
10305
+ "aria-labelledby": uid + "-t",
10306
+ tabIndex: -1,
10415
10307
  "data-size": size,
10416
10308
  onClick: e => e.stopPropagation(),
10417
10309
  style: {
10418
10310
  width,
10419
10311
  maxWidth: "92vw",
10312
+ maxHeight: "92vh",
10313
+ overflow: "auto",
10314
+ boxSizing: "border-box",
10315
+ outline: "none",
10420
10316
  background: "var(--bg-raised)",
10421
10317
  borderRadius: "var(--radius-lg)",
10422
10318
  border: "1px solid var(--border-card)",
@@ -10436,16 +10332,19 @@ function Modal({
10436
10332
  style: {
10437
10333
  display: "flex",
10438
10334
  flexDirection: "column",
10439
- gap: 2
10335
+ gap: 2,
10336
+ minWidth: 0
10440
10337
  }
10441
10338
  }, /*#__PURE__*/React.createElement("span", {
10339
+ id: uid + "-t",
10442
10340
  style: {
10443
10341
  fontFamily: "var(--font-sans)",
10444
10342
  fontWeight: "var(--weight-semibold)",
10445
10343
  fontSize: "var(--text-md)",
10446
10344
  lineHeight: "var(--leading-md)",
10447
10345
  letterSpacing: "var(--tracking-md)",
10448
- color: "var(--text-heading)"
10346
+ color: "var(--text-heading)",
10347
+ overflowWrap: "anywhere"
10449
10348
  }
10450
10349
  }, title), subtitle ? /*#__PURE__*/React.createElement("span", {
10451
10350
  style: {
@@ -10454,14 +10353,14 @@ function Modal({
10454
10353
  lineHeight: "var(--leading-xs)",
10455
10354
  color: "var(--text-secondary)"
10456
10355
  }
10457
- }, subtitle) : null), /*#__PURE__*/React.createElement(__ds_scope.IconButton, {
10356
+ }, subtitle) : null), showClose ? /*#__PURE__*/React.createElement(__ds_scope.IconButton, {
10458
10357
  icon: "x",
10459
- onClick: onClose,
10460
- label: "Close",
10358
+ onClick: () => close("close"),
10359
+ label: closeLabel,
10461
10360
  style: {
10462
10361
  margin: "calc((var(--leading-md) - var(--control-h)) / 2) -6px 0 0"
10463
10362
  }
10464
- })), children ? /*#__PURE__*/React.createElement("div", {
10363
+ }) : null), children ? /*#__PURE__*/React.createElement("div", {
10465
10364
  style: {
10466
10365
  padding: "20px 24px 0"
10467
10366
  }
@@ -10507,6 +10406,7 @@ function Toast({
10507
10406
  title,
10508
10407
  meta,
10509
10408
  icon,
10409
+ count,
10510
10410
  closeLabel = "Dismiss",
10511
10411
  onClose,
10512
10412
  children,
@@ -10514,6 +10414,7 @@ function Toast({
10514
10414
  }) {
10515
10415
  const t = toastTones[tone] || toastTones.info;
10516
10416
  return /*#__PURE__*/React.createElement("div", {
10417
+ role: tone === "danger" || tone === "warning" ? "alert" : "status",
10517
10418
  style: {
10518
10419
  display: "flex",
10519
10420
  alignItems: "flex-start",
@@ -10557,7 +10458,13 @@ function Toast({
10557
10458
  color: t.fg,
10558
10459
  overflowWrap: "anywhere"
10559
10460
  }
10560
- }, children ?? title), meta ? /*#__PURE__*/React.createElement("span", {
10461
+ }, children ?? title, count > 1 ? /*#__PURE__*/React.createElement("span", {
10462
+ style: {
10463
+ color: "var(--text-secondary)",
10464
+ fontWeight: "var(--weight-regular)",
10465
+ fontVariantNumeric: "tabular-nums"
10466
+ }
10467
+ }, " \xD7 ", count) : null), meta ? /*#__PURE__*/React.createElement("span", {
10561
10468
  style: {
10562
10469
  fontFamily: "var(--font-sans)",
10563
10470
  fontSize: "var(--text-xs)",
@@ -10576,30 +10483,94 @@ function Toast({
10576
10483
  }
10577
10484
  }) : null);
10578
10485
  }
10486
+ const STACK_PLACE = {
10487
+ "top-center": o => ({
10488
+ top: o,
10489
+ left: "50%",
10490
+ transform: "translateX(-50%)",
10491
+ alignItems: "center"
10492
+ }),
10493
+ "top-right": o => ({
10494
+ top: o,
10495
+ right: o,
10496
+ alignItems: "flex-end"
10497
+ }),
10498
+ "bottom-right": o => ({
10499
+ bottom: o,
10500
+ right: o,
10501
+ alignItems: "flex-end"
10502
+ }),
10503
+ "bottom-center": o => ({
10504
+ bottom: o,
10505
+ left: "50%",
10506
+ transform: "translateX(-50%)",
10507
+ alignItems: "center"
10508
+ })
10509
+ };
10510
+ function StackItem({
10511
+ t,
10512
+ duration,
10513
+ onDismiss
10514
+ }) {
10515
+ const [paused, setPaused] = React.useState(false);
10516
+ const ms = t.duration ?? duration;
10517
+ React.useEffect(() => {
10518
+ if (paused || !(ms > 0)) return undefined;
10519
+ const h = setTimeout(() => onDismiss && onDismiss(t.id, "timeout"), ms);
10520
+ return () => clearTimeout(h);
10521
+ }, [paused, ms, t.count, t.id]);
10522
+ const icon = typeof t.icon === "string" ? /*#__PURE__*/React.createElement(__ds_scope.Icon, {
10523
+ name: t.icon,
10524
+ size: 16
10525
+ }) : t.icon;
10526
+ return /*#__PURE__*/React.createElement("div", {
10527
+ className: t.className,
10528
+ style: {
10529
+ maxWidth: "92vw"
10530
+ },
10531
+ onMouseEnter: () => setPaused(true),
10532
+ onMouseLeave: () => setPaused(false),
10533
+ onFocus: () => setPaused(true),
10534
+ onBlur: () => setPaused(false)
10535
+ }, /*#__PURE__*/React.createElement(Toast, {
10536
+ tone: t.tone,
10537
+ title: t.title,
10538
+ meta: t.meta,
10539
+ icon: icon,
10540
+ count: t.count,
10541
+ closeLabel: t.closeLabel,
10542
+ style: t.style,
10543
+ onClose: t.dismissible === false ? undefined : () => onDismiss && onDismiss(t.id, "close")
10544
+ }, t.content));
10545
+ }
10579
10546
 
10580
- /** Fixed bottom-right stack of toasts. */
10547
+ /** Fixed stack of toasts. placement: "bottom-right" (default) | "top-center" | "top-right" | "bottom-center"; offset from the edges (default 24).
10548
+ * duration (ms, default 0 = stay) auto-dismisses — paused while the pointer or focus is on a toast, restarted when its count changes.
10549
+ * Items: { id, tone, title, meta, content, icon, count, duration, dismissible, closeLabel, className, style }. onDismiss(id, "close" | "timeout"). */
10581
10550
  function ToastStack({
10582
10551
  toasts = [],
10583
10552
  onDismiss,
10553
+ placement = "bottom-right",
10554
+ offset = 24,
10555
+ duration = 0,
10556
+ zIndex,
10584
10557
  style
10585
10558
  }) {
10586
10559
  return /*#__PURE__*/React.createElement("div", {
10587
10560
  style: {
10588
10561
  position: "fixed",
10589
- right: 24,
10590
- bottom: 24,
10591
- zIndex: "var(--z-toast)",
10562
+ zIndex: zIndex ?? "var(--z-toast)",
10592
10563
  display: "flex",
10593
10564
  flexDirection: "column",
10594
10565
  gap: 8,
10566
+ ...(STACK_PLACE[placement] || STACK_PLACE["bottom-right"])(offset),
10595
10567
  ...style
10596
10568
  }
10597
- }, toasts.map(t => /*#__PURE__*/React.createElement(Toast, {
10569
+ }, toasts.map(t => /*#__PURE__*/React.createElement(StackItem, {
10598
10570
  key: t.id,
10599
- tone: t.tone,
10600
- title: t.title,
10601
- meta: t.meta,
10602
- onClose: () => onDismiss && onDismiss(t.id)
10571
+ t: t,
10572
+ duration: duration,
10573
+ onDismiss: onDismiss
10603
10574
  })));
10604
10575
  }
10605
10576
  Object.assign(__ds_scope, { Tooltip, Modal, Toast, ToastStack });
@@ -11183,6 +11154,7 @@ function TitleCell({
11183
11154
  minWidth: 0
11184
11155
  }
11185
11156
  }, icon ? /*#__PURE__*/React.createElement("span", {
11157
+ "data-row-open": open ? "" : undefined,
11186
11158
  onClick: open || undefined,
11187
11159
  style: {
11188
11160
  display: "inline-flex",
@@ -11218,6 +11190,7 @@ function TitleCell({
11218
11190
  } : null)
11219
11191
  }
11220
11192
  }, open ? {
11193
+ "data-row-open": "",
11221
11194
  role: "button",
11222
11195
  tabIndex: 0,
11223
11196
  onClick: open,
@@ -11251,6 +11224,9 @@ function TitleCell({
11251
11224
  * (defaultSort to seed it uncontrolled); compare(a, b, rowA, rowB) overrides the default comparison; manualSort keeps rows as given.
11252
11225
  * twoLine — the name column of a document list: icon tile, title over a description, optional mark ("favorite" = filled star), trailing ⋯
11253
11226
  * (onRowMore(row, index, event)); onRowOpen(row, index, event) makes the tile and the title open the row (hand cursor, Enter / Space on the title).
11227
+ * rowOpen — "title" (default): only the tile and the title open a row. "row": a click anywhere on a body row calls onRowOpen(row, index, event) and the
11228
+ * whole row shows the hand cursor — except clicks on buttons (⋯, tree arrow), checkboxes, inputs, links, menus, and clicks that end a text
11229
+ * selection. The tile and title still open it once (never twice). Tree folders: decide in onRowOpen whether to expand or enter.
11254
11230
  * tree — rows nest through `children` (or `hasChildren` for rows you load on demand); the twoLine column indents 24px per level with an
11255
11231
  * expand arrow; expandedKeys / defaultExpandedKeys / onExpandChange(row, expanded, keys); rowKey names the key field (default "id").
11256
11232
  * labels — { sortAsc, sortDesc, sortClear, more, expand, collapse } for every word the table draws (English by default).
@@ -11293,6 +11269,7 @@ function Table({
11293
11269
  onColumnResize,
11294
11270
  onRowMore,
11295
11271
  onRowOpen,
11272
+ rowOpen = "title",
11296
11273
  sort,
11297
11274
  defaultSort = null,
11298
11275
  onSortChange,
@@ -11417,6 +11394,7 @@ function Table({
11417
11394
  if (onExpandChange) onExpandChange(item.r, !item.open, next);
11418
11395
  };
11419
11396
  const tier = size || (dense ? "sm" : undefined);
11397
+ const rowMode = rowOpen === "row" && !!onRowOpen;
11420
11398
  const flushTop = bordered || framed;
11421
11399
  const colCount = columns.length || 1;
11422
11400
  const [localW, setLocalW] = React.useState({});
@@ -11608,10 +11586,16 @@ function Table({
11608
11586
  "data-row": "",
11609
11587
  "aria-level": tree ? item.level + 1 : undefined,
11610
11588
  "aria-expanded": item.kids ? item.open : undefined,
11589
+ onClick: rowMode ? e => {
11590
+ if (__ds_scope.rowOpenFromClick(e)) onRowOpen(r, ri, e);
11591
+ } : undefined,
11611
11592
  style: {
11612
11593
  ...(dis ? {
11613
11594
  "--row-wash": "initial"
11614
11595
  } : null),
11596
+ ...(rowMode ? {
11597
+ cursor: "pointer"
11598
+ } : null),
11615
11599
  height: "var(--bar-h)",
11616
11600
  background: pinInfo && pinInfo.sel.has(ri) ? "var(--row-wash, var(--bg-inset))" : "var(--row-wash, transparent)",
11617
11601
  transition: "var(--t-hover)",
@@ -11635,6 +11619,7 @@ function Table({
11635
11619
  ...cellFont(c)
11636
11620
  }
11637
11621
  }, selectable && i === 0 ? /*#__PURE__*/React.createElement("span", {
11622
+ "data-row-skip": "",
11638
11623
  style: checkSlot,
11639
11624
  title: dis && disabledReason ? disabledReason(r, ri) : undefined
11640
11625
  }, /*#__PURE__*/React.createElement(__ds_scope.Checkbox, {
@@ -15283,7 +15268,7 @@ function Row({
15283
15268
  onMouseLeave: () => setHover(false),
15284
15269
  style: {
15285
15270
  position: "relative",
15286
- minHeight: "var(--h-tree-item)",
15271
+ minHeight: "var(--control-h)",
15287
15272
  borderRadius: "var(--radius-md)",
15288
15273
  display: "flex",
15289
15274
  alignItems: "center",
@@ -15322,7 +15307,7 @@ function Row({
15322
15307
  disabled: disabled || node.disableCheckbox,
15323
15308
  tabIndex: -1,
15324
15309
  onChange: () => api.check(key)
15325
- })) : null, cfg.showIcon ? /*#__PURE__*/React.createElement("span", {
15310
+ })) : null, cfg.showIcon && node.icon !== false ? /*#__PURE__*/React.createElement("span", {
15326
15311
  style: {
15327
15312
  color: branch ? "var(--text-muted)" : docHues[node.hue || "gray"],
15328
15313
  display: "inline-flex",
@@ -15330,12 +15315,17 @@ function Row({
15330
15315
  }
15331
15316
  }, /*#__PURE__*/React.createElement(__ds_scope.Icon, {
15332
15317
  name: node.icon || (branch ? open ? "folder-open" : "folder" : "file-text"),
15333
- size: 15
15318
+ size: 15,
15319
+ style: {
15320
+ width: "calc(var(--control-icon) - 1px)",
15321
+ height: "calc(var(--control-icon) - 1px)"
15322
+ }
15334
15323
  })) : null, /*#__PURE__*/React.createElement("span", {
15335
15324
  style: {
15336
15325
  fontFamily: "var(--font-sans)",
15337
- fontSize: "var(--text-base)",
15338
- lineHeight: "var(--leading-base)",
15326
+ fontSize: "var(--control-text)",
15327
+ lineHeight: "var(--control-leading)",
15328
+ letterSpacing: "var(--control-tracking)",
15339
15329
  fontWeight: selected ? "var(--weight-medium)" : "var(--weight-regular)",
15340
15330
  color: disabled ? "var(--text-muted)" : "var(--text-heading)",
15341
15331
  whiteSpace: "nowrap",
@@ -15380,7 +15370,7 @@ function Row({
15380
15370
  fontFamily: "var(--font-sans)",
15381
15371
  fontSize: "var(--text-xs)",
15382
15372
  color: "var(--text-muted)",
15383
- height: "var(--h-tree-item)",
15373
+ height: "var(--control-h)",
15384
15374
  display: "flex",
15385
15375
  alignItems: "center"
15386
15376
  }
@@ -15392,7 +15382,9 @@ function Row({
15392
15382
  * (with indeterminate parents and `checkStrictly` opt-out), disabled nodes and disabled
15393
15383
  * checkboxes, connector lines, async child loading, search highlighting, drag to move,
15394
15384
  * and full keyboard navigation. Node shape: { key, title, icon, hue, count, tag, children,
15395
- * disabled, disableCheckbox, selectable, checkable, isLeaf }.
15385
+ * disabled, disableCheckbox, selectable, checkable, isLeaf }. icon: false drops that row's glyph (no gap kept), e.g. a root.
15386
+ * Follows the size tier of its region: row --control-h (sm 28 · md 32 · lg 40), text --control-text / -leading / -tracking,
15387
+ * glyph --control-icon − 1px (md 15, as before).
15396
15388
  */
15397
15389
  function Tree({
15398
15390
  items = [],
@@ -15671,7 +15663,8 @@ function Tree({
15671
15663
  style: {
15672
15664
  padding: "10px 8px",
15673
15665
  fontFamily: "var(--font-sans)",
15674
- fontSize: "var(--text-base)",
15666
+ fontSize: "var(--control-text)",
15667
+ lineHeight: "var(--control-leading)",
15675
15668
  color: "var(--text-muted)"
15676
15669
  }
15677
15670
  }, "No matching items") : rows.map(r => /*#__PURE__*/React.createElement(Row, {
@@ -20290,11 +20283,11 @@ window.KB_CARDS = [{
20290
20283
  "group": "Components",
20291
20284
  "name": "Modal",
20292
20285
  "viewport": "700x520",
20293
- "subtitle": "Default · destructive footer · with form content · no subtitle",
20286
+ "subtitle": "Focus · Esc · must-answer dialogs · Default · destructive footer · with form content · no subtitle",
20294
20287
  "zh": "弹窗",
20295
20288
  "ja": "モーダル",
20296
- "subtitleZh": "默认 · 危险操作底栏 · 含表单内容 · 无副标题",
20297
- "subtitleJa": "既定 · 破壊的操作のフッター · フォーム付き · 副題なし"
20289
+ "subtitleZh": "焦点 · Esc 关闭 · 必须回答的弹窗 · 默认 · 危险操作底栏 · 含表单内容 · 无副标题",
20290
+ "subtitleJa": "フォーカス · Esc で閉じる · 必ず回答するダイアログ · 既定 · 破壊的操作のフッター · フォーム付き · 副題なし"
20298
20291
  }, {
20299
20292
  "path": "components/_cards/multi-select.card.html",
20300
20293
  "group": "Components",
@@ -20459,12 +20452,12 @@ window.KB_CARDS = [{
20459
20452
  "path": "components/_cards/table.card.html",
20460
20453
  "group": "Components",
20461
20454
  "name": "Table",
20462
- "viewport": "700x11184",
20463
- "subtitle": "Anatomy · densities · column types · two-line name · sorting · selection · frames · column resize · states · composition",
20455
+ "viewport": "700x11729",
20456
+ "subtitle": "Anatomy · densities · column types · two-line name · whole-row open · sorting · selection · frames · column resize · states · composition",
20464
20457
  "zh": "表格",
20465
20458
  "ja": "テーブル",
20466
- "subtitleZh": "结构 · 密度 · 列类型 · 两行名称 · 排序 · 选择 · 边框方式 · 列宽拖拽 · 状态 · 组合用法",
20467
- "subtitleJa": "構造 · 密度 · 列タイプ · 2行の名前 · 並べ替え · 選択 · フレーム · 列幅ドラッグ · 状態 · 組み合わせ"
20459
+ "subtitleZh": "结构 · 密度 · 列类型 · 两行名称 · 整行点击打开 · 排序 · 选择 · 边框方式 · 列宽拖拽 · 状态 · 组合用法",
20460
+ "subtitleJa": "構造 · 密度 · 列タイプ · 2行の名前 · 行全体クリックで開く · 並べ替え · 選択 · フレーム · 列幅ドラッグ · 状態 · 組み合わせ"
20468
20461
  }, {
20469
20462
  "path": "components/_cards/tabs.card.html",
20470
20463
  "group": "Components",
@@ -20509,12 +20502,12 @@ window.KB_CARDS = [{
20509
20502
  "path": "components/_cards/toast.card.html",
20510
20503
  "group": "Components",
20511
20504
  "name": "Toast",
20512
- "viewport": "700x744",
20513
- "subtitle": "Tones · with/without meta · live ToastStack demo",
20505
+ "viewport": "700x1087",
20506
+ "subtitle": "Placement · auto-dismiss · repeat count · Tones · with/without meta · live ToastStack demo",
20514
20507
  "zh": "轻提示",
20515
20508
  "ja": "トースト通知",
20516
- "subtitleZh": "多种色调 · 含/不含附加信息 · 实时 ToastStack 演示",
20517
- "subtitleJa": "トーン違い · メタ情報の有無 · ToastStack のライブデモ"
20509
+ "subtitleZh": "位置 · 自动消失 · 重复计数 · 多种色调 · 含/不含附加信息 · 实时 ToastStack 演示",
20510
+ "subtitleJa": "表示位置 · 自動で閉じる · 繰り返し回数 · トーン違い · メタ情報の有無 · ToastStack のライブデモ"
20518
20511
  }, {
20519
20512
  "path": "components/_cards/toggles.card.html",
20520
20513
  "group": "Components",
@@ -20539,12 +20532,12 @@ window.KB_CARDS = [{
20539
20532
  "path": "components/_cards/tree.card.html",
20540
20533
  "group": "Components",
20541
20534
  "name": "Tree",
20542
- "viewport": "700x3171",
20543
- "subtitle": "Cascading checkboxes · disabled nodes · lines · async load · search · drag · reorder · keyboard",
20535
+ "viewport": "700x3385",
20536
+ "subtitle": "Size tiers · rows without an icon · Cascading checkboxes · disabled nodes · lines · async load · search · drag · reorder · keyboard",
20544
20537
  "zh": "树形视图",
20545
20538
  "ja": "ツリービュー",
20546
- "subtitleZh": "级联勾选 · 禁用节点 · 连接线 · 异步加载 · 搜索 · 拖拽 · 排序 · 键盘操作",
20547
- "subtitleJa": "カスケードチェック · 無効ノード · 接続線 · 非同期読み込み · 検索 · ドラッグ · 並べ替え · キーボード操作"
20539
+ "subtitleZh": "尺寸档位 · 无图标行 · 级联勾选 · 禁用节点 · 连接线 · 异步加载 · 搜索 · 拖拽 · 排序 · 键盘操作",
20540
+ "subtitleJa": "サイズ段階 · アイコンなしの行 · カスケードチェック · 無効ノード · 接続線 · 非同期読み込み · 検索 · ドラッグ · 並べ替え · キーボード操作"
20548
20541
  }, {
20549
20542
  "path": "components/_cards/icons-0-usage.card.html",
20550
20543
  "group": "Icons",
@@ -22218,9 +22211,6 @@ try {
22218
22211
  Object.assign(__ds_scope, { cssVar, light, dark, tokenNames, __ds_default_tokens_tokens_padim4 });
22219
22212
  })(); } catch (e) { __ds_ns.__errors.push({ path: "tokens/tokens.js", error: String((e && e.message) || e) }); }
22220
22213
 
22221
- if (__ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls$jzzomx === undefined) __ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls$jzzomx = __ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls !== undefined ? __ds_scope.__ds_default_components_feedback__internal_MessageBoxView_vue_1c0bdls : __ds_scope.MessageBoxView;
22222
- if (__ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev$1qk09ay === undefined) __ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev$1qk09ay = __ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev !== undefined ? __ds_scope.__ds_default_components_feedback__internal_MessageView_vue_19lfgev : __ds_scope.MessageView;
22223
-
22224
22214
  __ds_ns.ActionChip = __ds_scope.ActionChip;
22225
22215
 
22226
22216
  __ds_ns.Button = __ds_scope.Button;
@@ -22379,10 +22369,6 @@ __ds_ns.Stepper = __ds_scope.Stepper;
22379
22369
 
22380
22370
  __ds_ns.Timeline = __ds_scope.Timeline;
22381
22371
 
22382
- __ds_ns.MessageBox = __ds_scope.MessageBox;
22383
-
22384
- __ds_ns.Message = __ds_scope.Message;
22385
-
22386
22372
  __ds_ns.Checkbox = __ds_scope.Checkbox;
22387
22373
 
22388
22374
  __ds_ns.Combobox = __ds_scope.Combobox;