@neo4j-ndl/react 4.25.8 → 5.0.0-alpha.0.3d763f7
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/lib/cjs/_generated/style-rules/index.js +5 -11
- package/lib/cjs/_generated/style-rules/index.js.map +1 -1
- package/lib/cjs/_generated/style-rules/literal-guards.js +50 -0
- package/lib/cjs/_generated/style-rules/literal-guards.js.map +1 -0
- package/lib/cjs/_generated/style-rules/literal-schemas.js +6 -21
- package/lib/cjs/_generated/style-rules/literal-schemas.js.map +1 -1
- package/lib/cjs/{text-overflow/index.js → _generated/style-rules/literal-types.js} +9 -6
- package/lib/cjs/_generated/style-rules/literal-types.js.map +1 -0
- package/lib/cjs/_generated/style-rules/numeric-utils.js.map +1 -1
- package/lib/cjs/_generated/style-rules/range-utils.js.map +1 -1
- package/lib/cjs/ai/presence/stories/ai-presence-default.story.js +1 -1
- package/lib/cjs/ai/presence/stories/ai-presence-default.story.js.map +1 -1
- package/lib/cjs/ai/presence/stories/ai-presence-thinking.story.js +1 -1
- package/lib/cjs/ai/presence/stories/ai-presence-thinking.story.js.map +1 -1
- package/lib/cjs/ai/reasoning/Reasoning.js +1 -1
- package/lib/cjs/ai/reasoning/Reasoning.js.map +1 -1
- package/lib/cjs/ai/reasoning/stories/reasoning-full.story.js +1 -1
- package/lib/cjs/ai/reasoning/stories/reasoning-full.story.js.map +1 -1
- package/lib/cjs/ai/response/Response.js +1 -1
- package/lib/cjs/ai/response/Response.js.map +1 -1
- package/lib/cjs/ai/response/stories/response-full-example.story.js +3 -3
- package/lib/cjs/ai/response/stories/response-full-example.story.js.map +1 -1
- package/lib/cjs/ai/suggestion/stories/suggestion-sizes.story.js +1 -1
- package/lib/cjs/ai/suggestion/stories/suggestion-sizes.story.js.map +1 -1
- package/lib/cjs/ai/user-bubble/stories/user-bubble-and-files.story.js +1 -1
- package/lib/cjs/ai/user-bubble/stories/user-bubble-and-files.story.js.map +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-custom-icons.story.js +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-custom-icons.story.js.map +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js.map +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-injected-urgent.story.js +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-injected-urgent.story.js.map +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-present-at-page-render.story.js +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-present-at-page-render.story.js.map +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-variants.story.js +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-variants.story.js.map +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-with-page-content.story.js +1 -1
- package/lib/cjs/announcement-banner/stories/announcement-banner-with-page-content.story.js.map +1 -1
- package/lib/cjs/avatar/stories/avatar-custom-icon.story.js +1 -1
- package/lib/cjs/avatar/stories/avatar-custom-icon.story.js.map +1 -1
- package/lib/cjs/avatar/stories/avatar-shapes.story.js +1 -1
- package/lib/cjs/avatar/stories/avatar-shapes.story.js.map +1 -1
- package/lib/cjs/avatar/stories/avatar-sizes.story.js +1 -1
- package/lib/cjs/avatar/stories/avatar-sizes.story.js.map +1 -1
- package/lib/cjs/avatar/stories/avatar-statuses.story.js +1 -1
- package/lib/cjs/avatar/stories/avatar-statuses.story.js.map +1 -1
- package/lib/cjs/avatar/stories/avatar-types.story.js +1 -1
- package/lib/cjs/avatar/stories/avatar-types.story.js.map +1 -1
- package/lib/cjs/banner/stories/banner-variants.story.js +1 -1
- package/lib/cjs/banner/stories/banner-variants.story.js.map +1 -1
- package/lib/cjs/banner/stories/banner-with-icons.story.js +1 -1
- package/lib/cjs/banner/stories/banner-with-icons.story.js.map +1 -1
- package/lib/cjs/breadcrumbs/stories/breadcrumbs-header.story.js +1 -1
- package/lib/cjs/breadcrumbs/stories/breadcrumbs-header.story.js.map +1 -1
- package/lib/cjs/button/ButtonBase.js +1 -3
- package/lib/cjs/button/ButtonBase.js.map +1 -1
- package/lib/cjs/button/stories/button-sizes.story.js +1 -1
- package/lib/cjs/button/stories/button-sizes.story.js.map +1 -1
- package/lib/cjs/button/stories/button-variants.story.js +1 -1
- package/lib/cjs/button/stories/button-variants.story.js.map +1 -1
- package/lib/cjs/checkbox/stories/checkbox-full.story.js +2 -2
- package/lib/cjs/checkbox/stories/checkbox-full.story.js.map +1 -1
- package/lib/cjs/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js +1 -1
- package/lib/cjs/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js.map +1 -1
- package/lib/cjs/clean-icon-button/stories/clean-icon-button-sizes.story.js +1 -1
- package/lib/cjs/clean-icon-button/stories/clean-icon-button-sizes.story.js.map +1 -1
- package/lib/cjs/clean-icon-button/stories/clean-icon-button-tone.story.js +1 -1
- package/lib/cjs/clean-icon-button/stories/clean-icon-button-tone.story.js.map +1 -1
- package/lib/cjs/clipboard-button/stories/clipboard-button-sizes.story.js +1 -1
- package/lib/cjs/clipboard-button/stories/clipboard-button-sizes.story.js.map +1 -1
- package/lib/cjs/code-block/CodeBlock.js +3 -7
- package/lib/cjs/code-block/CodeBlock.js.map +1 -1
- package/lib/cjs/code-block/stories/code-disabled.story.js +2 -2
- package/lib/cjs/code-block/stories/code-disabled.story.js.map +1 -1
- package/lib/cjs/code-block/stories/code-full.story.js +2 -2
- package/lib/cjs/code-block/stories/code-full.story.js.map +1 -1
- package/lib/cjs/code-block/stories/code-languages.story.js +1 -1
- package/lib/cjs/code-block/stories/code-languages.story.js.map +1 -1
- package/lib/cjs/code-block/stories/code-with-actions.story.js +2 -2
- package/lib/cjs/code-block/stories/code-with-actions.story.js.map +1 -1
- package/lib/cjs/color-picker/ColorPicker.js +0 -3
- package/lib/cjs/color-picker/ColorPicker.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-dialog.story.js +1 -1
- package/lib/cjs/color-picker/stories/color-picker-dialog.story.js.map +1 -1
- package/lib/cjs/color-picker/stories/color-picker-popover.story.js +1 -1
- package/lib/cjs/color-picker/stories/color-picker-popover.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-action-on-select.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-action-on-select.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-actions.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-actions.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-async.story.js +2 -2
- package/lib/cjs/combobox/stories/combobox-async.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-disabled.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-disabled.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-fluid.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-fluid.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-hidden-label.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-hidden-label.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-in-popover-dialog.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-in-popover-dialog.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-in-popover.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-in-popover.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-native-form.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-native-form.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-sizes.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-sizes.story.js.map +1 -1
- package/lib/cjs/combobox/stories/combobox-validation.story.js +1 -1
- package/lib/cjs/combobox/stories/combobox-validation.story.js.map +1 -1
- package/lib/cjs/conditional-wrap/stories/conditional-wrap-default.story.js +1 -1
- package/lib/cjs/conditional-wrap/stories/conditional-wrap-default.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-compact-mode.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-compact-mode.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-component-overriding.story.js +2 -2
- package/lib/cjs/data-grid/stories/datagrid-component-overriding.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-in-dialog.story.js +2 -2
- package/lib/cjs/data-grid/stories/datagrid-in-dialog.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-keyboard-navigation.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-keyboard-navigation.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-kitchen-sink.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-kitchen-sink.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-percentage-width-columns.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-percentage-width-columns.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-pinned-columns.stories.js +3 -3
- package/lib/cjs/data-grid/stories/datagrid-pinned-columns.stories.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-placeholder-states.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-placeholder-states.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-resizable-column.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-resizable-column.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-rule-based-styling-datetime.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-rule-based-styling-datetime.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-rule-based-styling.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-rule-based-styling.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-search-and-filters.stories.js +5 -5
- package/lib/cjs/data-grid/stories/datagrid-search-and-filters.stories.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-simple.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-simple.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-single-selectable.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-single-selectable.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-skeleton-loading.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-skeleton-loading.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-sortable.story.js +1 -1
- package/lib/cjs/data-grid/stories/datagrid-sortable.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-using-editable-cells.story.js +2 -2
- package/lib/cjs/data-grid/stories/datagrid-using-editable-cells.story.js.map +1 -1
- package/lib/cjs/data-grid/stories/datagrid-virtualization.story.js +3 -3
- package/lib/cjs/data-grid/stories/datagrid-virtualization.story.js.map +1 -1
- package/lib/cjs/data-grid/style-rules/guard.js +47 -0
- package/lib/cjs/data-grid/style-rules/guard.js.map +1 -0
- package/lib/cjs/data-grid/style-rules/index.js +3 -19
- package/lib/cjs/data-grid/style-rules/index.js.map +1 -1
- package/lib/cjs/data-grid/style-rules/internal/schemas.js +213 -0
- package/lib/cjs/data-grid/style-rules/internal/schemas.js.map +1 -0
- package/lib/cjs/data-grid/style-rules/types.js +0 -205
- package/lib/cjs/data-grid/style-rules/types.js.map +1 -1
- package/lib/cjs/date-picker/DatePicker.js +8 -6
- package/lib/cjs/date-picker/DatePicker.js.map +1 -1
- package/lib/cjs/date-picker/stories/date-picker-in-dialog.story.js +1 -1
- package/lib/cjs/date-picker/stories/date-picker-in-dialog.story.js.map +1 -1
- package/lib/cjs/date-picker/stories/date-picker-in-popover-dialog.story.js +1 -1
- package/lib/cjs/date-picker/stories/date-picker-in-popover-dialog.story.js.map +1 -1
- package/lib/cjs/dialog/Dialog.js +1 -2
- package/lib/cjs/dialog/Dialog.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-danger.story.js +1 -1
- package/lib/cjs/dialog/stories/dialog-danger.story.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-default.story.js +1 -1
- package/lib/cjs/dialog/stories/dialog-default.story.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-image.story.js +1 -1
- package/lib/cjs/dialog/stories/dialog-image.story.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-info.story.js +1 -1
- package/lib/cjs/dialog/stories/dialog-info.story.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-top-aligned.story.js +2 -2
- package/lib/cjs/dialog/stories/dialog-top-aligned.story.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-variants.story.js +1 -1
- package/lib/cjs/dialog/stories/dialog-variants.story.js.map +1 -1
- package/lib/cjs/dialog/stories/dialog-warning.story.js +1 -1
- package/lib/cjs/dialog/stories/dialog-warning.story.js.map +1 -1
- package/lib/cjs/dismissible-tag/stories/dismissible-tag-colors.story.js +1 -1
- package/lib/cjs/dismissible-tag/stories/dismissible-tag-colors.story.js.map +1 -1
- package/lib/cjs/dismissible-tag/stories/dismissible-tag-sizes.story.js +1 -1
- package/lib/cjs/dismissible-tag/stories/dismissible-tag-sizes.story.js.map +1 -1
- package/lib/cjs/drawer/Drawer.js +7 -6
- package/lib/cjs/drawer/Drawer.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-full.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-full.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-not-closeable.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-not-closeable.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-overlay.story.js +1 -1
- package/lib/cjs/drawer/stories/drawer-overlay.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-portaled.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-portaled.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-push.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-push.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-resizable.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-resizable.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-right-side.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-right-side.story.js.map +1 -1
- package/lib/cjs/drawer/stories/drawer-scrollable.story.js +2 -2
- package/lib/cjs/drawer/stories/drawer-scrollable.story.js.map +1 -1
- package/lib/cjs/dropzone/stories/dropzone-full.story.js +3 -3
- package/lib/cjs/dropzone/stories/dropzone-full.story.js.map +1 -1
- package/lib/cjs/flex/stories/flex-default.story.js +1 -1
- package/lib/cjs/flex/stories/flex-default.story.js.map +1 -1
- package/lib/cjs/graph-label/stories/graph-label-color.story.js +1 -1
- package/lib/cjs/graph-label/stories/graph-label-color.story.js.map +1 -1
- package/lib/cjs/graph-label/stories/graph-label-sizes.story.js +1 -1
- package/lib/cjs/graph-label/stories/graph-label-sizes.story.js.map +1 -1
- package/lib/cjs/graph-label/stories/graph-label-types.story.js +1 -1
- package/lib/cjs/graph-label/stories/graph-label-types.story.js.map +1 -1
- package/lib/cjs/hooks/use-debounce-callback/index.js +6 -6
- package/lib/cjs/hooks/use-debounce-callback/index.js.map +1 -1
- package/lib/cjs/icon-button/stories/icon-button-sizes.story.js +1 -1
- package/lib/cjs/icon-button/stories/icon-button-sizes.story.js.map +1 -1
- package/lib/cjs/icon-button/stories/icon-button-tone.story.js +1 -1
- package/lib/cjs/icon-button/stories/icon-button-tone.story.js.map +1 -1
- package/lib/cjs/icon-button-array/stories/icon-button-array-sizes.story.js +1 -1
- package/lib/cjs/icon-button-array/stories/icon-button-array-sizes.story.js.map +1 -1
- package/lib/cjs/icon-button-base/IconButtonBase.js +1 -3
- package/lib/cjs/icon-button-base/IconButtonBase.js.map +1 -1
- package/lib/cjs/icons/generated/custom/index.js +3 -17
- package/lib/cjs/icons/generated/custom/index.js.map +1 -1
- package/lib/cjs/inline-edit/InlineEdit.js +3 -2
- package/lib/cjs/inline-edit/InlineEdit.js.map +1 -1
- package/lib/cjs/kbd/Kbd.js +0 -1
- package/lib/cjs/kbd/Kbd.js.map +1 -1
- package/lib/cjs/loading-spinner/stories/loading-spinner-sizes.story.js +1 -1
- package/lib/cjs/loading-spinner/stories/loading-spinner-sizes.story.js.map +1 -1
- package/lib/cjs/logo/stories/logo-black.story.js +1 -1
- package/lib/cjs/logo/stories/logo-black.story.js.map +1 -1
- package/lib/cjs/logo/stories/logo-default.story.js +1 -1
- package/lib/cjs/logo/stories/logo-default.story.js.map +1 -1
- package/lib/cjs/logo/stories/logo-icon.story.js +1 -1
- package/lib/cjs/logo/stories/logo-icon.story.js.map +1 -1
- package/lib/cjs/menu/Menu.js +2 -2
- package/lib/cjs/menu/Menu.js.map +1 -1
- package/lib/cjs/menu/menu-types.js.map +1 -1
- package/lib/cjs/menu/stories/menu-custom-items.story.js +1 -1
- package/lib/cjs/menu/stories/menu-custom-items.story.js.map +1 -1
- package/lib/cjs/menu/stories/menu-in-dialog.story.js +2 -2
- package/lib/cjs/menu/stories/menu-in-dialog.story.js.map +1 -1
- package/lib/cjs/menu/stories/menu-nested.story.js +1 -1
- package/lib/cjs/menu/stories/menu-nested.story.js.map +1 -1
- package/lib/cjs/menu/stories/menu-radio-and-normal.story.js +1 -1
- package/lib/cjs/menu/stories/menu-radio-and-normal.story.js.map +1 -1
- package/lib/cjs/menu/stories/menu-radio-items.story.js +1 -1
- package/lib/cjs/menu/stories/menu-radio-items.story.js.map +1 -1
- package/lib/cjs/menu/stories/menu-with-icon.story.js +1 -1
- package/lib/cjs/menu/stories/menu-with-icon.story.js.map +1 -1
- package/lib/cjs/next/tree-view/TreeView.js +3 -3
- package/lib/cjs/next/tree-view/TreeView.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-large.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-large.story.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-multiple-replace.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-multiple-replace.story.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-root-selection.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-root-selection.story.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-tooltip.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-tooltip.story.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-trailing.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-trailing.story.js.map +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-uncontrolled.story.js +1 -1
- package/lib/cjs/next/tree-view/stories/tree-view-uncontrolled.story.js.map +1 -1
- package/lib/cjs/popover/Popover.js +6 -6
- package/lib/cjs/popover/Popover.js.map +1 -1
- package/lib/cjs/popover/stories/popover-controlled.story.js +1 -1
- package/lib/cjs/popover/stories/popover-controlled.story.js.map +1 -1
- package/lib/cjs/popover/stories/popover-custom-offset.story.js +1 -1
- package/lib/cjs/popover/stories/popover-custom-offset.story.js.map +1 -1
- package/lib/cjs/popover/stories/popover-default.story.js +1 -1
- package/lib/cjs/popover/stories/popover-default.story.js.map +1 -1
- package/lib/cjs/popover/stories/popover-in-dialog.story.js +1 -1
- package/lib/cjs/popover/stories/popover-in-dialog.story.js.map +1 -1
- package/lib/cjs/popover/stories/popover-no-button-wrapper.story.js +1 -1
- package/lib/cjs/popover/stories/popover-no-button-wrapper.story.js.map +1 -1
- package/lib/cjs/popover/stories/popover-separate-anchor.story.js +1 -1
- package/lib/cjs/popover/stories/popover-separate-anchor.story.js.map +1 -1
- package/lib/cjs/popover/use-popover.js +7 -9
- package/lib/cjs/popover/use-popover.js.map +1 -1
- package/lib/cjs/progress-bar/stories/progress-bar-sizes.story.js +1 -1
- package/lib/cjs/progress-bar/stories/progress-bar-sizes.story.js.map +1 -1
- package/lib/cjs/radio/stories/radio-disabled.story.js +1 -1
- package/lib/cjs/radio/stories/radio-disabled.story.js.map +1 -1
- package/lib/cjs/radio/stories/radio-truncated-label.story.js +1 -1
- package/lib/cjs/radio/stories/radio-truncated-label.story.js.map +1 -1
- package/lib/cjs/read-only-tag/stories/read-only-tag-colors.story.js +1 -1
- package/lib/cjs/read-only-tag/stories/read-only-tag-colors.story.js.map +1 -1
- package/lib/cjs/read-only-tag/stories/read-only-tag-sizes.story.js +1 -1
- package/lib/cjs/read-only-tag/stories/read-only-tag-sizes.story.js.map +1 -1
- package/lib/cjs/segmented-control/stories/segmented-control-sizes.story.js +1 -1
- package/lib/cjs/segmented-control/stories/segmented-control-sizes.story.js.map +1 -1
- package/lib/cjs/select/stories/select-controlled.story.js +1 -1
- package/lib/cjs/select/stories/select-controlled.story.js.map +1 -1
- package/lib/cjs/select/stories/select-custom-label.story.js +1 -1
- package/lib/cjs/select/stories/select-custom-label.story.js.map +1 -1
- package/lib/cjs/select/stories/select-inside-dialog.story.js +1 -1
- package/lib/cjs/select/stories/select-inside-dialog.story.js.map +1 -1
- package/lib/cjs/select/stories/select-menu-positionings.story.js +1 -1
- package/lib/cjs/select/stories/select-menu-positionings.story.js.map +1 -1
- package/lib/cjs/select/stories/select-required.story.js +1 -1
- package/lib/cjs/select/stories/select-required.story.js.map +1 -1
- package/lib/cjs/select/stories/select-sizes.story.js +1 -1
- package/lib/cjs/select/stories/select-sizes.story.js.map +1 -1
- package/lib/cjs/select-icon-button/stories/select-icon-button-sizes.story.js +1 -1
- package/lib/cjs/select-icon-button/stories/select-icon-button-sizes.story.js.map +1 -1
- package/lib/cjs/select-icon-button/stories/select-icon-button-states.story.js +1 -1
- package/lib/cjs/select-icon-button/stories/select-icon-button-states.story.js.map +1 -1
- package/lib/cjs/selectable-tag/stories/selectable-tag-disabled.story.js +1 -1
- package/lib/cjs/selectable-tag/stories/selectable-tag-disabled.story.js.map +1 -1
- package/lib/cjs/selectable-tag/stories/selectable-tag-sizes.story.js +1 -1
- package/lib/cjs/selectable-tag/stories/selectable-tag-sizes.story.js.map +1 -1
- package/lib/cjs/side-navigation/SideNavigation.js.map +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-badges.story.js +2 -2
- package/lib/cjs/side-navigation/stories/side-nav-badges.story.js.map +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-compact.story.js +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-compact.story.js.map +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-default.story.js +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-default.story.js.map +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-secondary.story.js +1 -1
- package/lib/cjs/side-navigation/stories/side-nav-secondary.story.js.map +1 -1
- package/lib/cjs/skeleton/stories/skeleton-circular.story.js +1 -1
- package/lib/cjs/skeleton/stories/skeleton-circular.story.js.map +1 -1
- package/lib/cjs/skeleton/stories/skeleton-default.story.js +1 -1
- package/lib/cjs/skeleton/stories/skeleton-default.story.js.map +1 -1
- package/lib/cjs/skeleton/stories/skeleton-full-example.story.js +1 -1
- package/lib/cjs/skeleton/stories/skeleton-full-example.story.js.map +1 -1
- package/lib/cjs/skeleton/stories/skeleton-inherit-height.story.js +1 -1
- package/lib/cjs/skeleton/stories/skeleton-inherit-height.story.js.map +1 -1
- package/lib/cjs/skeleton/stories/skeleton-inherit-width.story.js +1 -1
- package/lib/cjs/skeleton/stories/skeleton-inherit-width.story.js.map +1 -1
- package/lib/cjs/slider/Slider.js +3 -3
- package/lib/cjs/slider/Slider.js.map +1 -1
- package/lib/cjs/slider/stories/slider-custom-step-length.story.js +1 -1
- package/lib/cjs/slider/stories/slider-custom-step-length.story.js.map +1 -1
- package/lib/cjs/slider/stories/slider-range.story.js +1 -1
- package/lib/cjs/slider/stories/slider-range.story.js.map +1 -1
- package/lib/cjs/slider/stories/slider-show-steps.story.js +1 -1
- package/lib/cjs/slider/stories/slider-show-steps.story.js.map +1 -1
- package/lib/cjs/slider/stories/slider-show-values.story.js +1 -1
- package/lib/cjs/slider/stories/slider-show-values.story.js.map +1 -1
- package/lib/cjs/slider/stories/slider-single-controlled.story.js +2 -2
- package/lib/cjs/slider/stories/slider-single-controlled.story.js.map +1 -1
- package/lib/cjs/slider/stories/slider-single.story.js +1 -1
- package/lib/cjs/slider/stories/slider-single.story.js.map +1 -1
- package/lib/cjs/spotlight/Spotlight.js +3 -3
- package/lib/cjs/spotlight/Spotlight.js.map +1 -1
- package/lib/cjs/spotlight/SpotlightTarget.js +3 -3
- package/lib/cjs/spotlight/SpotlightTarget.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-fixed-positioning.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-fixed-positioning.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-in-dialog.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-in-dialog.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-in-side-nav.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-in-side-nav.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-on-tabs.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-on-tabs.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-tour.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-tour.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-icon.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-icon.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-image.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-image.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-label.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-label.story.js.map +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-pointer.story.js +1 -1
- package/lib/cjs/spotlight/stories/spotlight-with-pointer.story.js.map +1 -1
- package/lib/cjs/spotlight/use-spotlight.js +5 -5
- package/lib/cjs/spotlight/use-spotlight.js.map +1 -1
- package/lib/cjs/status-indicator/stories/status-indicator-variants.story.js +1 -1
- package/lib/cjs/status-indicator/stories/status-indicator-variants.story.js.map +1 -1
- package/lib/cjs/status-label/stories/status-label-colors.story.js +1 -1
- package/lib/cjs/status-label/stories/status-label-colors.story.js.map +1 -1
- package/lib/cjs/status-label/stories/status-label-fills.story.js +1 -1
- package/lib/cjs/status-label/stories/status-label-fills.story.js.map +1 -1
- package/lib/cjs/status-label/stories/status-label-with-icons.story.js +1 -1
- package/lib/cjs/status-label/stories/status-label-with-icons.story.js.map +1 -1
- package/lib/cjs/tabs/Tabs.js +2 -2
- package/lib/cjs/tabs/Tabs.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-badge.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-badge.story.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-default.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-default.story.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-disabled.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-disabled.story.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-fill-variants.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-fill-variants.story.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-overflow.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-overflow.story.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-sizes.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-sizes.story.js.map +1 -1
- package/lib/cjs/tabs/stories/tabs-with-icons.story.js +1 -1
- package/lib/cjs/tabs/stories/tabs-with-icons.story.js.map +1 -1
- package/lib/cjs/tag/stories/tag-sizes.story.js +1 -1
- package/lib/cjs/tag/stories/tag-sizes.story.js.map +1 -1
- package/lib/cjs/tag/stories/tag-types.story.js +1 -1
- package/lib/cjs/tag/stories/tag-types.story.js.map +1 -1
- package/lib/cjs/tag-base/stories/tag-variants.story.js +1 -1
- package/lib/cjs/tag-base/stories/tag-variants.story.js.map +1 -1
- package/lib/cjs/text-area/stories/text-area-sizes.story.js +1 -1
- package/lib/cjs/text-area/stories/text-area-sizes.story.js.map +1 -1
- package/lib/cjs/text-input/TextInput.js.map +1 -1
- package/lib/cjs/text-input/stories/text-input-loading-spinner.story.js +1 -1
- package/lib/cjs/text-input/stories/text-input-loading-spinner.story.js.map +1 -1
- package/lib/cjs/text-input/stories/text-input-optional.story.js +1 -1
- package/lib/cjs/text-input/stories/text-input-optional.story.js.map +1 -1
- package/lib/cjs/text-input/stories/text-input-sizes.story.js +1 -1
- package/lib/cjs/text-input/stories/text-input-sizes.story.js.map +1 -1
- package/lib/cjs/text-link/TextLink.js +2 -6
- package/lib/cjs/text-link/TextLink.js.map +1 -1
- package/lib/cjs/text-link/stories/index.js +5 -17
- package/lib/cjs/text-link/stories/index.js.map +1 -1
- package/lib/cjs/text-link/stories/text-link-external.story.js +1 -1
- package/lib/cjs/text-link/stories/text-link-external.story.js.map +1 -1
- package/lib/cjs/text-link/stories/{text-link-internal-underline.story.js → text-link-internal.story.js} +2 -2
- package/lib/cjs/text-link/stories/text-link-internal.story.js.map +1 -0
- package/lib/cjs/time-picker/stories/time-picker-in-popover-dialog.story.js +1 -1
- package/lib/cjs/time-picker/stories/time-picker-in-popover-dialog.story.js.map +1 -1
- package/lib/cjs/timezone-picker/stories/timezone-picker-in-dialog.story.js +1 -1
- package/lib/cjs/timezone-picker/stories/timezone-picker-in-dialog.story.js.map +1 -1
- package/lib/cjs/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js +1 -1
- package/lib/cjs/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-action-story.js +1 -1
- package/lib/cjs/toast/stories/toast-action-story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-closeable-story.js +1 -1
- package/lib/cjs/toast/stories/toast-closeable-story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-controlled-story.js +1 -1
- package/lib/cjs/toast/stories/toast-controlled-story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-custom-story.js +1 -1
- package/lib/cjs/toast/stories/toast-custom-story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-danger-story.js +1 -1
- package/lib/cjs/toast/stories/toast-danger-story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-neutral-story.js +1 -1
- package/lib/cjs/toast/stories/toast-neutral-story.js.map +1 -1
- package/lib/cjs/toast/stories/toast-progress-bar.js +1 -1
- package/lib/cjs/toast/stories/toast-progress-bar.js.map +1 -1
- package/lib/cjs/toast/stories/toast-success-story.js +1 -1
- package/lib/cjs/toast/stories/toast-success-story.js.map +1 -1
- package/lib/cjs/tooltip/Tooltip.js.map +1 -1
- package/lib/cjs/tooltip/stories/tooltip-in-dialog.story.js +1 -1
- package/lib/cjs/tooltip/stories/tooltip-in-dialog.story.js.map +1 -1
- package/lib/cjs/tooltip/stories/tooltip-placements.story.js +1 -1
- package/lib/cjs/tooltip/stories/tooltip-placements.story.js.map +1 -1
- package/lib/cjs/tooltip/use-tooltip.js.map +1 -1
- package/lib/cjs/tree-view/TreeView.js +3 -0
- package/lib/cjs/tree-view/TreeView.js.map +1 -1
- package/lib/cjs/tree-view/TreeViewItem.js.map +1 -1
- package/lib/cjs/tree-view/stories/treeview-custom.story.js +2 -2
- package/lib/cjs/tree-view/stories/treeview-custom.story.js.map +1 -1
- package/lib/cjs/tree-view/tree-view-utils.js.map +1 -1
- package/lib/cjs/typography/Typography.js +7 -1
- package/lib/cjs/typography/Typography.js.map +1 -1
- package/lib/esm/_generated/style-rules/index.js +1 -1
- package/lib/esm/_generated/style-rules/index.js.map +1 -1
- package/lib/esm/_generated/style-rules/literal-guards.js +45 -0
- package/lib/esm/_generated/style-rules/literal-guards.js.map +1 -0
- package/lib/esm/_generated/style-rules/literal-schemas.js +6 -18
- package/lib/esm/_generated/style-rules/literal-schemas.js.map +1 -1
- package/lib/esm/{text-overflow/index.js → _generated/style-rules/literal-types.js} +8 -2
- package/lib/esm/_generated/style-rules/literal-types.js.map +1 -0
- package/lib/esm/_generated/style-rules/numeric-utils.js.map +1 -1
- package/lib/esm/_generated/style-rules/range-utils.js.map +1 -1
- package/lib/esm/ai/presence/stories/ai-presence-default.story.js +1 -1
- package/lib/esm/ai/presence/stories/ai-presence-default.story.js.map +1 -1
- package/lib/esm/ai/presence/stories/ai-presence-thinking.story.js +1 -1
- package/lib/esm/ai/presence/stories/ai-presence-thinking.story.js.map +1 -1
- package/lib/esm/ai/reasoning/Reasoning.js +1 -1
- package/lib/esm/ai/reasoning/Reasoning.js.map +1 -1
- package/lib/esm/ai/reasoning/stories/reasoning-full.story.js +1 -1
- package/lib/esm/ai/reasoning/stories/reasoning-full.story.js.map +1 -1
- package/lib/esm/ai/response/Response.js +1 -1
- package/lib/esm/ai/response/Response.js.map +1 -1
- package/lib/esm/ai/response/stories/response-full-example.story.js +3 -3
- package/lib/esm/ai/response/stories/response-full-example.story.js.map +1 -1
- package/lib/esm/ai/suggestion/stories/suggestion-sizes.story.js +1 -1
- package/lib/esm/ai/suggestion/stories/suggestion-sizes.story.js.map +1 -1
- package/lib/esm/ai/user-bubble/stories/user-bubble-and-files.story.js +1 -1
- package/lib/esm/ai/user-bubble/stories/user-bubble-and-files.story.js.map +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-custom-icons.story.js +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-custom-icons.story.js.map +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-injected-non-urgent.story.js.map +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-injected-urgent.story.js +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-injected-urgent.story.js.map +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-present-at-page-render.story.js +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-present-at-page-render.story.js.map +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-variants.story.js +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-variants.story.js.map +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-with-page-content.story.js +1 -1
- package/lib/esm/announcement-banner/stories/announcement-banner-with-page-content.story.js.map +1 -1
- package/lib/esm/avatar/stories/avatar-custom-icon.story.js +1 -1
- package/lib/esm/avatar/stories/avatar-custom-icon.story.js.map +1 -1
- package/lib/esm/avatar/stories/avatar-shapes.story.js +1 -1
- package/lib/esm/avatar/stories/avatar-shapes.story.js.map +1 -1
- package/lib/esm/avatar/stories/avatar-sizes.story.js +1 -1
- package/lib/esm/avatar/stories/avatar-sizes.story.js.map +1 -1
- package/lib/esm/avatar/stories/avatar-statuses.story.js +1 -1
- package/lib/esm/avatar/stories/avatar-statuses.story.js.map +1 -1
- package/lib/esm/avatar/stories/avatar-types.story.js +1 -1
- package/lib/esm/avatar/stories/avatar-types.story.js.map +1 -1
- package/lib/esm/banner/stories/banner-variants.story.js +1 -1
- package/lib/esm/banner/stories/banner-variants.story.js.map +1 -1
- package/lib/esm/banner/stories/banner-with-icons.story.js +1 -1
- package/lib/esm/banner/stories/banner-with-icons.story.js.map +1 -1
- package/lib/esm/breadcrumbs/stories/breadcrumbs-header.story.js +1 -1
- package/lib/esm/breadcrumbs/stories/breadcrumbs-header.story.js.map +1 -1
- package/lib/esm/button/ButtonBase.js +1 -3
- package/lib/esm/button/ButtonBase.js.map +1 -1
- package/lib/esm/button/stories/button-sizes.story.js +1 -1
- package/lib/esm/button/stories/button-sizes.story.js.map +1 -1
- package/lib/esm/button/stories/button-variants.story.js +1 -1
- package/lib/esm/button/stories/button-variants.story.js.map +1 -1
- package/lib/esm/checkbox/stories/checkbox-full.story.js +2 -2
- package/lib/esm/checkbox/stories/checkbox-full.story.js.map +1 -1
- package/lib/esm/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js +1 -1
- package/lib/esm/clean-icon-button/stories/clean-icon-button-keyboard-display.story.js.map +1 -1
- package/lib/esm/clean-icon-button/stories/clean-icon-button-sizes.story.js +1 -1
- package/lib/esm/clean-icon-button/stories/clean-icon-button-sizes.story.js.map +1 -1
- package/lib/esm/clean-icon-button/stories/clean-icon-button-tone.story.js +1 -1
- package/lib/esm/clean-icon-button/stories/clean-icon-button-tone.story.js.map +1 -1
- package/lib/esm/clipboard-button/stories/clipboard-button-sizes.story.js +1 -1
- package/lib/esm/clipboard-button/stories/clipboard-button-sizes.story.js.map +1 -1
- package/lib/esm/code-block/CodeBlock.js +3 -7
- package/lib/esm/code-block/CodeBlock.js.map +1 -1
- package/lib/esm/code-block/stories/code-disabled.story.js +2 -2
- package/lib/esm/code-block/stories/code-disabled.story.js.map +1 -1
- package/lib/esm/code-block/stories/code-full.story.js +2 -2
- package/lib/esm/code-block/stories/code-full.story.js.map +1 -1
- package/lib/esm/code-block/stories/code-languages.story.js +1 -1
- package/lib/esm/code-block/stories/code-languages.story.js.map +1 -1
- package/lib/esm/code-block/stories/code-with-actions.story.js +2 -2
- package/lib/esm/code-block/stories/code-with-actions.story.js.map +1 -1
- package/lib/esm/color-picker/ColorPicker.js +0 -3
- package/lib/esm/color-picker/ColorPicker.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-dialog.story.js +1 -1
- package/lib/esm/color-picker/stories/color-picker-dialog.story.js.map +1 -1
- package/lib/esm/color-picker/stories/color-picker-popover.story.js +1 -1
- package/lib/esm/color-picker/stories/color-picker-popover.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-action-on-select.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-action-on-select.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-actions.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-actions.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-async.story.js +2 -2
- package/lib/esm/combobox/stories/combobox-async.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-disabled.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-disabled.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-fluid.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-fluid.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-hidden-label.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-hidden-label.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-in-popover-dialog.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-in-popover-dialog.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-in-popover.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-in-popover.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-native-form.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-native-form.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-sizes.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-sizes.story.js.map +1 -1
- package/lib/esm/combobox/stories/combobox-validation.story.js +1 -1
- package/lib/esm/combobox/stories/combobox-validation.story.js.map +1 -1
- package/lib/esm/conditional-wrap/stories/conditional-wrap-default.story.js +1 -1
- package/lib/esm/conditional-wrap/stories/conditional-wrap-default.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-compact-mode.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-compact-mode.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-component-overriding.story.js +2 -2
- package/lib/esm/data-grid/stories/datagrid-component-overriding.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-custom-cell-with-style-rules.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-in-dialog.story.js +2 -2
- package/lib/esm/data-grid/stories/datagrid-in-dialog.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-keyboard-navigation.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-keyboard-navigation.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-kitchen-sink.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-kitchen-sink.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-percentage-width-columns.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-percentage-width-columns.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-pinned-columns.stories.js +3 -3
- package/lib/esm/data-grid/stories/datagrid-pinned-columns.stories.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-placeholder-states.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-placeholder-states.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-resizable-column.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-resizable-column.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-rule-based-styling-datetime.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-rule-based-styling-datetime.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-rule-based-styling.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-rule-based-styling.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-search-and-filters.stories.js +5 -5
- package/lib/esm/data-grid/stories/datagrid-search-and-filters.stories.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-simple.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-simple.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-single-selectable.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-single-selectable.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-skeleton-loading.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-skeleton-loading.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-sortable.story.js +1 -1
- package/lib/esm/data-grid/stories/datagrid-sortable.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-using-editable-cells.story.js +2 -2
- package/lib/esm/data-grid/stories/datagrid-using-editable-cells.story.js.map +1 -1
- package/lib/esm/data-grid/stories/datagrid-virtualization.story.js +3 -3
- package/lib/esm/data-grid/stories/datagrid-virtualization.story.js.map +1 -1
- package/lib/esm/data-grid/style-rules/guard.js +43 -0
- package/lib/esm/data-grid/style-rules/guard.js.map +1 -0
- package/lib/esm/data-grid/style-rules/index.js +1 -3
- package/lib/esm/data-grid/style-rules/index.js.map +1 -1
- package/lib/esm/data-grid/style-rules/internal/schemas.js +210 -0
- package/lib/esm/data-grid/style-rules/internal/schemas.js.map +1 -0
- package/lib/esm/data-grid/style-rules/types.js +1 -203
- package/lib/esm/data-grid/style-rules/types.js.map +1 -1
- package/lib/esm/date-picker/DatePicker.js +8 -6
- package/lib/esm/date-picker/DatePicker.js.map +1 -1
- package/lib/esm/date-picker/stories/date-picker-in-dialog.story.js +1 -1
- package/lib/esm/date-picker/stories/date-picker-in-dialog.story.js.map +1 -1
- package/lib/esm/date-picker/stories/date-picker-in-popover-dialog.story.js +1 -1
- package/lib/esm/date-picker/stories/date-picker-in-popover-dialog.story.js.map +1 -1
- package/lib/esm/dialog/Dialog.js +1 -2
- package/lib/esm/dialog/Dialog.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-danger.story.js +1 -1
- package/lib/esm/dialog/stories/dialog-danger.story.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-default.story.js +1 -1
- package/lib/esm/dialog/stories/dialog-default.story.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-image.story.js +1 -1
- package/lib/esm/dialog/stories/dialog-image.story.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-info.story.js +1 -1
- package/lib/esm/dialog/stories/dialog-info.story.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-top-aligned.story.js +2 -2
- package/lib/esm/dialog/stories/dialog-top-aligned.story.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-variants.story.js +1 -1
- package/lib/esm/dialog/stories/dialog-variants.story.js.map +1 -1
- package/lib/esm/dialog/stories/dialog-warning.story.js +1 -1
- package/lib/esm/dialog/stories/dialog-warning.story.js.map +1 -1
- package/lib/esm/dismissible-tag/stories/dismissible-tag-colors.story.js +1 -1
- package/lib/esm/dismissible-tag/stories/dismissible-tag-colors.story.js.map +1 -1
- package/lib/esm/dismissible-tag/stories/dismissible-tag-sizes.story.js +1 -1
- package/lib/esm/dismissible-tag/stories/dismissible-tag-sizes.story.js.map +1 -1
- package/lib/esm/drawer/Drawer.js +7 -6
- package/lib/esm/drawer/Drawer.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-full.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-full.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-not-closeable.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-not-closeable.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-overlay.story.js +1 -1
- package/lib/esm/drawer/stories/drawer-overlay.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-portaled.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-portaled.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-push.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-push.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-resizable.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-resizable.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-right-side.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-right-side.story.js.map +1 -1
- package/lib/esm/drawer/stories/drawer-scrollable.story.js +2 -2
- package/lib/esm/drawer/stories/drawer-scrollable.story.js.map +1 -1
- package/lib/esm/dropzone/stories/dropzone-full.story.js +3 -3
- package/lib/esm/dropzone/stories/dropzone-full.story.js.map +1 -1
- package/lib/esm/flex/stories/flex-default.story.js +1 -1
- package/lib/esm/flex/stories/flex-default.story.js.map +1 -1
- package/lib/esm/graph-label/stories/graph-label-color.story.js +1 -1
- package/lib/esm/graph-label/stories/graph-label-color.story.js.map +1 -1
- package/lib/esm/graph-label/stories/graph-label-sizes.story.js +1 -1
- package/lib/esm/graph-label/stories/graph-label-sizes.story.js.map +1 -1
- package/lib/esm/graph-label/stories/graph-label-types.story.js +1 -1
- package/lib/esm/graph-label/stories/graph-label-types.story.js.map +1 -1
- package/lib/esm/hooks/use-debounce-callback/index.js +6 -6
- package/lib/esm/hooks/use-debounce-callback/index.js.map +1 -1
- package/lib/esm/icon-button/stories/icon-button-sizes.story.js +1 -1
- package/lib/esm/icon-button/stories/icon-button-sizes.story.js.map +1 -1
- package/lib/esm/icon-button/stories/icon-button-tone.story.js +1 -1
- package/lib/esm/icon-button/stories/icon-button-tone.story.js.map +1 -1
- package/lib/esm/icon-button-array/stories/icon-button-array-sizes.story.js +1 -1
- package/lib/esm/icon-button-array/stories/icon-button-array-sizes.story.js.map +1 -1
- package/lib/esm/icon-button-base/IconButtonBase.js +1 -3
- package/lib/esm/icon-button-base/IconButtonBase.js.map +1 -1
- package/lib/esm/icons/generated/custom/index.js +0 -7
- package/lib/esm/icons/generated/custom/index.js.map +1 -1
- package/lib/esm/inline-edit/InlineEdit.js +3 -2
- package/lib/esm/inline-edit/InlineEdit.js.map +1 -1
- package/lib/esm/kbd/Kbd.js +0 -1
- package/lib/esm/kbd/Kbd.js.map +1 -1
- package/lib/esm/loading-spinner/stories/loading-spinner-sizes.story.js +1 -1
- package/lib/esm/loading-spinner/stories/loading-spinner-sizes.story.js.map +1 -1
- package/lib/esm/logo/stories/logo-black.story.js +1 -1
- package/lib/esm/logo/stories/logo-black.story.js.map +1 -1
- package/lib/esm/logo/stories/logo-default.story.js +1 -1
- package/lib/esm/logo/stories/logo-default.story.js.map +1 -1
- package/lib/esm/logo/stories/logo-icon.story.js +1 -1
- package/lib/esm/logo/stories/logo-icon.story.js.map +1 -1
- package/lib/esm/menu/Menu.js +2 -2
- package/lib/esm/menu/Menu.js.map +1 -1
- package/lib/esm/menu/menu-types.js.map +1 -1
- package/lib/esm/menu/stories/menu-custom-items.story.js +1 -1
- package/lib/esm/menu/stories/menu-custom-items.story.js.map +1 -1
- package/lib/esm/menu/stories/menu-in-dialog.story.js +2 -2
- package/lib/esm/menu/stories/menu-in-dialog.story.js.map +1 -1
- package/lib/esm/menu/stories/menu-nested.story.js +1 -1
- package/lib/esm/menu/stories/menu-nested.story.js.map +1 -1
- package/lib/esm/menu/stories/menu-radio-and-normal.story.js +1 -1
- package/lib/esm/menu/stories/menu-radio-and-normal.story.js.map +1 -1
- package/lib/esm/menu/stories/menu-radio-items.story.js +1 -1
- package/lib/esm/menu/stories/menu-radio-items.story.js.map +1 -1
- package/lib/esm/menu/stories/menu-with-icon.story.js +1 -1
- package/lib/esm/menu/stories/menu-with-icon.story.js.map +1 -1
- package/lib/esm/next/tree-view/TreeView.js +3 -3
- package/lib/esm/next/tree-view/TreeView.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-large.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-large.story.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-multiple-replace.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-multiple-replace.story.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-root-selection.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-root-selection.story.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-tooltip.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-tooltip.story.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-trailing.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-trailing.story.js.map +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-uncontrolled.story.js +1 -1
- package/lib/esm/next/tree-view/stories/tree-view-uncontrolled.story.js.map +1 -1
- package/lib/esm/popover/Popover.js +6 -6
- package/lib/esm/popover/Popover.js.map +1 -1
- package/lib/esm/popover/stories/popover-controlled.story.js +1 -1
- package/lib/esm/popover/stories/popover-controlled.story.js.map +1 -1
- package/lib/esm/popover/stories/popover-custom-offset.story.js +1 -1
- package/lib/esm/popover/stories/popover-custom-offset.story.js.map +1 -1
- package/lib/esm/popover/stories/popover-default.story.js +1 -1
- package/lib/esm/popover/stories/popover-default.story.js.map +1 -1
- package/lib/esm/popover/stories/popover-in-dialog.story.js +1 -1
- package/lib/esm/popover/stories/popover-in-dialog.story.js.map +1 -1
- package/lib/esm/popover/stories/popover-no-button-wrapper.story.js +1 -1
- package/lib/esm/popover/stories/popover-no-button-wrapper.story.js.map +1 -1
- package/lib/esm/popover/stories/popover-separate-anchor.story.js +1 -1
- package/lib/esm/popover/stories/popover-separate-anchor.story.js.map +1 -1
- package/lib/esm/popover/use-popover.js +7 -9
- package/lib/esm/popover/use-popover.js.map +1 -1
- package/lib/esm/progress-bar/stories/progress-bar-sizes.story.js +1 -1
- package/lib/esm/progress-bar/stories/progress-bar-sizes.story.js.map +1 -1
- package/lib/esm/radio/stories/radio-disabled.story.js +1 -1
- package/lib/esm/radio/stories/radio-disabled.story.js.map +1 -1
- package/lib/esm/radio/stories/radio-truncated-label.story.js +1 -1
- package/lib/esm/radio/stories/radio-truncated-label.story.js.map +1 -1
- package/lib/esm/read-only-tag/stories/read-only-tag-colors.story.js +1 -1
- package/lib/esm/read-only-tag/stories/read-only-tag-colors.story.js.map +1 -1
- package/lib/esm/read-only-tag/stories/read-only-tag-sizes.story.js +1 -1
- package/lib/esm/read-only-tag/stories/read-only-tag-sizes.story.js.map +1 -1
- package/lib/esm/segmented-control/stories/segmented-control-sizes.story.js +1 -1
- package/lib/esm/segmented-control/stories/segmented-control-sizes.story.js.map +1 -1
- package/lib/esm/select/stories/select-controlled.story.js +1 -1
- package/lib/esm/select/stories/select-controlled.story.js.map +1 -1
- package/lib/esm/select/stories/select-custom-label.story.js +1 -1
- package/lib/esm/select/stories/select-custom-label.story.js.map +1 -1
- package/lib/esm/select/stories/select-inside-dialog.story.js +1 -1
- package/lib/esm/select/stories/select-inside-dialog.story.js.map +1 -1
- package/lib/esm/select/stories/select-menu-positionings.story.js +1 -1
- package/lib/esm/select/stories/select-menu-positionings.story.js.map +1 -1
- package/lib/esm/select/stories/select-required.story.js +1 -1
- package/lib/esm/select/stories/select-required.story.js.map +1 -1
- package/lib/esm/select/stories/select-sizes.story.js +1 -1
- package/lib/esm/select/stories/select-sizes.story.js.map +1 -1
- package/lib/esm/select-icon-button/stories/select-icon-button-sizes.story.js +1 -1
- package/lib/esm/select-icon-button/stories/select-icon-button-sizes.story.js.map +1 -1
- package/lib/esm/select-icon-button/stories/select-icon-button-states.story.js +1 -1
- package/lib/esm/select-icon-button/stories/select-icon-button-states.story.js.map +1 -1
- package/lib/esm/selectable-tag/stories/selectable-tag-disabled.story.js +1 -1
- package/lib/esm/selectable-tag/stories/selectable-tag-disabled.story.js.map +1 -1
- package/lib/esm/selectable-tag/stories/selectable-tag-sizes.story.js +1 -1
- package/lib/esm/selectable-tag/stories/selectable-tag-sizes.story.js.map +1 -1
- package/lib/esm/side-navigation/SideNavigation.js.map +1 -1
- package/lib/esm/side-navigation/stories/side-nav-badges.story.js +2 -2
- package/lib/esm/side-navigation/stories/side-nav-badges.story.js.map +1 -1
- package/lib/esm/side-navigation/stories/side-nav-compact.story.js +1 -1
- package/lib/esm/side-navigation/stories/side-nav-compact.story.js.map +1 -1
- package/lib/esm/side-navigation/stories/side-nav-default.story.js +1 -1
- package/lib/esm/side-navigation/stories/side-nav-default.story.js.map +1 -1
- package/lib/esm/side-navigation/stories/side-nav-secondary.story.js +1 -1
- package/lib/esm/side-navigation/stories/side-nav-secondary.story.js.map +1 -1
- package/lib/esm/skeleton/stories/skeleton-circular.story.js +1 -1
- package/lib/esm/skeleton/stories/skeleton-circular.story.js.map +1 -1
- package/lib/esm/skeleton/stories/skeleton-default.story.js +1 -1
- package/lib/esm/skeleton/stories/skeleton-default.story.js.map +1 -1
- package/lib/esm/skeleton/stories/skeleton-full-example.story.js +1 -1
- package/lib/esm/skeleton/stories/skeleton-full-example.story.js.map +1 -1
- package/lib/esm/skeleton/stories/skeleton-inherit-height.story.js +1 -1
- package/lib/esm/skeleton/stories/skeleton-inherit-height.story.js.map +1 -1
- package/lib/esm/skeleton/stories/skeleton-inherit-width.story.js +1 -1
- package/lib/esm/skeleton/stories/skeleton-inherit-width.story.js.map +1 -1
- package/lib/esm/slider/Slider.js +3 -3
- package/lib/esm/slider/Slider.js.map +1 -1
- package/lib/esm/slider/stories/slider-custom-step-length.story.js +1 -1
- package/lib/esm/slider/stories/slider-custom-step-length.story.js.map +1 -1
- package/lib/esm/slider/stories/slider-range.story.js +1 -1
- package/lib/esm/slider/stories/slider-range.story.js.map +1 -1
- package/lib/esm/slider/stories/slider-show-steps.story.js +1 -1
- package/lib/esm/slider/stories/slider-show-steps.story.js.map +1 -1
- package/lib/esm/slider/stories/slider-show-values.story.js +1 -1
- package/lib/esm/slider/stories/slider-show-values.story.js.map +1 -1
- package/lib/esm/slider/stories/slider-single-controlled.story.js +2 -2
- package/lib/esm/slider/stories/slider-single-controlled.story.js.map +1 -1
- package/lib/esm/slider/stories/slider-single.story.js +1 -1
- package/lib/esm/slider/stories/slider-single.story.js.map +1 -1
- package/lib/esm/spotlight/Spotlight.js +3 -3
- package/lib/esm/spotlight/Spotlight.js.map +1 -1
- package/lib/esm/spotlight/SpotlightTarget.js +3 -3
- package/lib/esm/spotlight/SpotlightTarget.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-fixed-positioning.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-fixed-positioning.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-in-dialog.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-in-dialog.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-in-side-nav.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-in-side-nav.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-on-tabs.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-on-tabs.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-tour.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-tour.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-icon.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-icon.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-image.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-image.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-label.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-label.story.js.map +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-pointer.story.js +1 -1
- package/lib/esm/spotlight/stories/spotlight-with-pointer.story.js.map +1 -1
- package/lib/esm/spotlight/use-spotlight.js +5 -5
- package/lib/esm/spotlight/use-spotlight.js.map +1 -1
- package/lib/esm/status-indicator/stories/status-indicator-variants.story.js +1 -1
- package/lib/esm/status-indicator/stories/status-indicator-variants.story.js.map +1 -1
- package/lib/esm/status-label/stories/status-label-colors.story.js +1 -1
- package/lib/esm/status-label/stories/status-label-colors.story.js.map +1 -1
- package/lib/esm/status-label/stories/status-label-fills.story.js +1 -1
- package/lib/esm/status-label/stories/status-label-fills.story.js.map +1 -1
- package/lib/esm/status-label/stories/status-label-with-icons.story.js +1 -1
- package/lib/esm/status-label/stories/status-label-with-icons.story.js.map +1 -1
- package/lib/esm/tabs/Tabs.js +2 -2
- package/lib/esm/tabs/Tabs.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-badge.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-badge.story.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-default.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-default.story.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-disabled.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-disabled.story.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-fill-variants.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-fill-variants.story.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-overflow.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-overflow.story.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-sizes.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-sizes.story.js.map +1 -1
- package/lib/esm/tabs/stories/tabs-with-icons.story.js +1 -1
- package/lib/esm/tabs/stories/tabs-with-icons.story.js.map +1 -1
- package/lib/esm/tag/stories/tag-sizes.story.js +1 -1
- package/lib/esm/tag/stories/tag-sizes.story.js.map +1 -1
- package/lib/esm/tag/stories/tag-types.story.js +1 -1
- package/lib/esm/tag/stories/tag-types.story.js.map +1 -1
- package/lib/esm/tag-base/stories/tag-variants.story.js +1 -1
- package/lib/esm/tag-base/stories/tag-variants.story.js.map +1 -1
- package/lib/esm/text-area/stories/text-area-sizes.story.js +1 -1
- package/lib/esm/text-area/stories/text-area-sizes.story.js.map +1 -1
- package/lib/esm/text-input/TextInput.js.map +1 -1
- package/lib/esm/text-input/stories/text-input-loading-spinner.story.js +1 -1
- package/lib/esm/text-input/stories/text-input-loading-spinner.story.js.map +1 -1
- package/lib/esm/text-input/stories/text-input-optional.story.js +1 -1
- package/lib/esm/text-input/stories/text-input-optional.story.js.map +1 -1
- package/lib/esm/text-input/stories/text-input-sizes.story.js +1 -1
- package/lib/esm/text-input/stories/text-input-sizes.story.js.map +1 -1
- package/lib/esm/text-link/TextLink.js +2 -6
- package/lib/esm/text-link/TextLink.js.map +1 -1
- package/lib/esm/text-link/stories/index.js +3 -12
- package/lib/esm/text-link/stories/index.js.map +1 -1
- package/lib/esm/text-link/stories/text-link-external.story.js +3 -3
- package/lib/esm/text-link/stories/text-link-external.story.js.map +1 -1
- package/lib/esm/text-link/stories/{text-link-internal-underline.story.js → text-link-internal.story.js} +2 -2
- package/lib/esm/text-link/stories/text-link-internal.story.js.map +1 -0
- package/lib/esm/time-picker/stories/time-picker-in-popover-dialog.story.js +1 -1
- package/lib/esm/time-picker/stories/time-picker-in-popover-dialog.story.js.map +1 -1
- package/lib/esm/timezone-picker/stories/timezone-picker-in-dialog.story.js +1 -1
- package/lib/esm/timezone-picker/stories/timezone-picker-in-dialog.story.js.map +1 -1
- package/lib/esm/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js +1 -1
- package/lib/esm/timezone-picker/stories/timezone-picker-in-popover-dialog.story.js.map +1 -1
- package/lib/esm/toast/stories/toast-action-story.js +1 -1
- package/lib/esm/toast/stories/toast-action-story.js.map +1 -1
- package/lib/esm/toast/stories/toast-closeable-story.js +1 -1
- package/lib/esm/toast/stories/toast-closeable-story.js.map +1 -1
- package/lib/esm/toast/stories/toast-controlled-story.js +1 -1
- package/lib/esm/toast/stories/toast-controlled-story.js.map +1 -1
- package/lib/esm/toast/stories/toast-custom-story.js +1 -1
- package/lib/esm/toast/stories/toast-custom-story.js.map +1 -1
- package/lib/esm/toast/stories/toast-danger-story.js +1 -1
- package/lib/esm/toast/stories/toast-danger-story.js.map +1 -1
- package/lib/esm/toast/stories/toast-neutral-story.js +1 -1
- package/lib/esm/toast/stories/toast-neutral-story.js.map +1 -1
- package/lib/esm/toast/stories/toast-progress-bar.js +1 -1
- package/lib/esm/toast/stories/toast-progress-bar.js.map +1 -1
- package/lib/esm/toast/stories/toast-success-story.js +1 -1
- package/lib/esm/toast/stories/toast-success-story.js.map +1 -1
- package/lib/esm/tooltip/Tooltip.js.map +1 -1
- package/lib/esm/tooltip/stories/tooltip-in-dialog.story.js +1 -1
- package/lib/esm/tooltip/stories/tooltip-in-dialog.story.js.map +1 -1
- package/lib/esm/tooltip/stories/tooltip-placements.story.js +1 -1
- package/lib/esm/tooltip/stories/tooltip-placements.story.js.map +1 -1
- package/lib/esm/tooltip/use-tooltip.js.map +1 -1
- package/lib/esm/tree-view/TreeView.js +3 -0
- package/lib/esm/tree-view/TreeView.js.map +1 -1
- package/lib/esm/tree-view/TreeViewItem.js.map +1 -1
- package/lib/esm/tree-view/stories/treeview-custom.story.js +2 -2
- package/lib/esm/tree-view/stories/treeview-custom.story.js.map +1 -1
- package/lib/esm/tree-view/tree-view-utils.js.map +1 -1
- package/lib/esm/typography/Typography.js +7 -1
- package/lib/esm/typography/Typography.js.map +1 -1
- package/lib/types/_generated/style-rules/index.d.ts +2 -2
- package/lib/types/_generated/style-rules/index.d.ts.map +1 -1
- package/lib/{cjs/text-link/stories/text-link-default.story.js → types/_generated/style-rules/literal-guards.d.ts} +8 -10
- package/lib/types/_generated/style-rules/literal-guards.d.ts.map +1 -0
- package/lib/types/_generated/style-rules/literal-schemas.d.ts +0 -12
- package/lib/types/_generated/style-rules/literal-schemas.d.ts.map +1 -1
- package/lib/types/_generated/style-rules/literal-types.d.ts +80 -0
- package/lib/types/_generated/style-rules/literal-types.d.ts.map +1 -0
- package/lib/types/_generated/style-rules/numeric-utils.d.ts +1 -1
- package/lib/types/_generated/style-rules/numeric-utils.d.ts.map +1 -1
- package/lib/types/_generated/style-rules/range-utils.d.ts +1 -1
- package/lib/types/_generated/style-rules/range-utils.d.ts.map +1 -1
- package/lib/types/ai/reasoning/Reasoning.d.ts +1 -10
- package/lib/types/ai/reasoning/Reasoning.d.ts.map +1 -1
- package/lib/types/ai/reasoning/stories/reasoning-full.story.d.ts.map +1 -1
- package/lib/types/button/ButtonBase.d.ts.map +1 -1
- package/lib/types/code-block/CodeBlock.d.ts +2 -2
- package/lib/types/code-block/CodeBlock.d.ts.map +1 -1
- package/lib/types/color-picker/ColorPicker.d.ts.map +1 -1
- package/lib/types/data-grid/style-rules/guard.d.ts +43 -0
- package/lib/types/data-grid/style-rules/guard.d.ts.map +1 -0
- package/lib/types/data-grid/style-rules/index.d.ts +1 -2
- package/lib/types/data-grid/style-rules/index.d.ts.map +1 -1
- package/lib/types/data-grid/style-rules/internal/schemas.d.ts +321 -0
- package/lib/types/data-grid/style-rules/internal/schemas.d.ts.map +1 -0
- package/lib/types/data-grid/style-rules/types.d.ts +60 -284
- package/lib/types/data-grid/style-rules/types.d.ts.map +1 -1
- package/lib/types/date-picker/DatePicker.d.ts.map +1 -1
- package/lib/types/dialog/Dialog.d.ts.map +1 -1
- package/lib/types/drawer/Drawer.d.ts +7 -13
- package/lib/types/drawer/Drawer.d.ts.map +1 -1
- package/lib/types/drawer/stories/drawer-overlay.story.d.ts.map +1 -1
- package/lib/types/dropzone/stories/dropzone-full.story.d.ts.map +1 -1
- package/lib/types/hooks/use-debounce-callback/index.d.ts +2 -2
- package/lib/types/hooks/use-debounce-callback/index.d.ts.map +1 -1
- package/lib/types/icon-button-base/IconButtonBase.d.ts.map +1 -1
- package/lib/types/icons/generated/custom/index.d.ts +0 -7
- package/lib/types/icons/generated/custom/index.d.ts.map +1 -1
- package/lib/types/inline-edit/InlineEdit.d.ts +6 -1
- package/lib/types/inline-edit/InlineEdit.d.ts.map +1 -1
- package/lib/types/kbd/Kbd.d.ts +1 -1
- package/lib/types/kbd/Kbd.d.ts.map +1 -1
- package/lib/types/menu/Menu.d.ts +1 -1
- package/lib/types/menu/Menu.d.ts.map +1 -1
- package/lib/types/menu/menu-types.d.ts +2 -2
- package/lib/types/menu/menu-types.d.ts.map +1 -1
- package/lib/types/next/tree-view/TreeView.d.ts +2 -2
- package/lib/types/next/tree-view/TreeView.d.ts.map +1 -1
- package/lib/types/popover/Popover.d.ts +15 -12
- package/lib/types/popover/Popover.d.ts.map +1 -1
- package/lib/types/popover/stories/popover-controlled.story.d.ts.map +1 -1
- package/lib/types/popover/stories/popover-default.story.d.ts.map +1 -1
- package/lib/types/popover/stories/popover-no-button-wrapper.story.d.ts.map +1 -1
- package/lib/types/popover/use-popover.d.ts +14 -9
- package/lib/types/popover/use-popover.d.ts.map +1 -1
- package/lib/types/side-navigation/SideNavigation.d.ts.map +1 -1
- package/lib/types/slider/Slider.d.ts +3 -3
- package/lib/types/slider/Slider.d.ts.map +1 -1
- package/lib/types/spotlight/Spotlight.d.ts +2 -2
- package/lib/types/spotlight/Spotlight.d.ts.map +1 -1
- package/lib/types/spotlight/SpotlightTarget.d.ts +3 -3
- package/lib/types/spotlight/SpotlightTarget.d.ts.map +1 -1
- package/lib/types/spotlight/stories/spotlight-tour.story.d.ts.map +1 -1
- package/lib/types/spotlight/stories/spotlight-with-image.story.d.ts.map +1 -1
- package/lib/types/spotlight/use-spotlight.d.ts +4 -4
- package/lib/types/spotlight/use-spotlight.d.ts.map +1 -1
- package/lib/types/tabs/Tabs.d.ts +3 -1
- package/lib/types/tabs/Tabs.d.ts.map +1 -1
- package/lib/types/text-link/TextLink.d.ts +2 -13
- package/lib/types/text-link/TextLink.d.ts.map +1 -1
- package/lib/types/text-link/stories/index.d.ts +2 -8
- package/lib/types/text-link/stories/index.d.ts.map +1 -1
- package/lib/types/text-link/stories/text-link-external.story.d.ts.map +1 -1
- package/lib/types/{text-overflow/stories/character-limit.story.d.ts → text-link/stories/text-link-internal.story.d.ts} +1 -1
- package/lib/types/text-link/stories/text-link-internal.story.d.ts.map +1 -0
- package/lib/types/tooltip/Tooltip.d.ts +0 -1
- package/lib/types/tooltip/Tooltip.d.ts.map +1 -1
- package/lib/types/tooltip/use-tooltip.d.ts.map +1 -1
- package/lib/types/tree-view/TreeView.d.ts +3 -0
- package/lib/types/tree-view/TreeView.d.ts.map +1 -1
- package/lib/types/tree-view/TreeViewItem.d.ts.map +1 -1
- package/lib/types/tree-view/tree-view-utils.d.ts.map +1 -1
- package/lib/types/typography/Typography.d.ts +6 -0
- package/lib/types/typography/Typography.d.ts.map +1 -1
- package/package.json +4 -3
- package/skills/ndl-react/SKILL.md +21 -19
- package/skills/ndl-react/components/ai/presence.md +3 -3
- package/skills/ndl-react/components/ai/reasoning.md +2 -6
- package/skills/ndl-react/components/ai/response.md +17 -17
- package/skills/ndl-react/components/ai/suggestion.md +1 -1
- package/skills/ndl-react/components/ai/user-bubble.md +2 -2
- package/skills/ndl-react/components/announcement-banner.md +10 -10
- package/skills/ndl-react/components/avatar.md +5 -5
- package/skills/ndl-react/components/banner.md +2 -2
- package/skills/ndl-react/components/breadcrumbs.md +3 -3
- package/skills/ndl-react/components/checkbox.md +4 -4
- package/skills/ndl-react/components/clean-icon-button.md +17 -17
- package/skills/ndl-react/components/clipboard-button.md +1 -1
- package/skills/ndl-react/components/code-block.md +8 -9
- package/skills/ndl-react/components/color-picker.md +3 -3
- package/skills/ndl-react/components/combobox.md +20 -20
- package/skills/ndl-react/components/conditional-wrap.md +1 -1
- package/skills/ndl-react/components/data-grid.md +28 -28
- package/skills/ndl-react/components/date-picker.md +3 -3
- package/skills/ndl-react/components/dialog.md +9 -9
- package/skills/ndl-react/components/dismissible-tag.md +2 -2
- package/skills/ndl-react/components/drawer.md +39 -37
- package/skills/ndl-react/components/dropzone.md +10 -13
- package/skills/ndl-react/components/flex.md +1 -1
- package/skills/ndl-react/components/graph-label.md +3 -3
- package/skills/ndl-react/components/icon-button-array.md +1 -1
- package/skills/ndl-react/components/icon-button.md +7 -7
- package/skills/ndl-react/components/inline-edit.md +4 -1
- package/skills/ndl-react/components/loading-spinner.md +1 -1
- package/skills/ndl-react/components/logo.md +3 -3
- package/skills/ndl-react/components/menu.md +14 -14
- package/skills/ndl-react/components/next/tree-view.md +18 -18
- package/skills/ndl-react/components/popover.md +15 -21
- package/skills/ndl-react/components/progress-bar.md +1 -1
- package/skills/ndl-react/components/radio.md +2 -2
- package/skills/ndl-react/components/read-only-tag.md +2 -2
- package/skills/ndl-react/components/segmented-control.md +1 -1
- package/skills/ndl-react/components/select-icon-button.md +8 -8
- package/skills/ndl-react/components/select.md +8 -8
- package/skills/ndl-react/components/selectable-tag.md +2 -2
- package/skills/ndl-react/components/side-navigation.md +19 -19
- package/skills/ndl-react/components/skeleton.md +13 -13
- package/skills/ndl-react/components/slider.md +13 -13
- package/skills/ndl-react/components/spotlight.md +43 -27
- package/skills/ndl-react/components/status-indicator.md +6 -6
- package/skills/ndl-react/components/status-label.md +3 -3
- package/skills/ndl-react/components/tabs.md +21 -20
- package/skills/ndl-react/components/tag.md +2 -2
- package/skills/ndl-react/components/text-area.md +1 -1
- package/skills/ndl-react/components/text-input.md +3 -3
- package/skills/ndl-react/components/text-link.md +12 -63
- package/skills/ndl-react/components/time-picker.md +2 -2
- package/skills/ndl-react/components/timezone-picker.md +4 -4
- package/skills/ndl-react/components/tooltip.md +3 -3
- package/skills/ndl-react/components/tree-view.md +6 -4
- package/skills/ndl-react/components/typography.md +4 -0
- package/skills/ndl-react/references/styling.md +56 -48
- package/lib/cjs/icons/generated/custom/AddNode.js +0 -31
- package/lib/cjs/icons/generated/custom/AddNode.js.map +0 -1
- package/lib/cjs/icons/generated/custom/PanelBottom.js +0 -31
- package/lib/cjs/icons/generated/custom/PanelBottom.js.map +0 -1
- package/lib/cjs/icons/generated/custom/PanelLeft.js +0 -31
- package/lib/cjs/icons/generated/custom/PanelLeft.js.map +0 -1
- package/lib/cjs/icons/generated/custom/PanelLeftCollapsed.js +0 -31
- package/lib/cjs/icons/generated/custom/PanelLeftCollapsed.js.map +0 -1
- package/lib/cjs/icons/generated/custom/PanelLeftExpanded.js +0 -31
- package/lib/cjs/icons/generated/custom/PanelLeftExpanded.js.map +0 -1
- package/lib/cjs/icons/generated/custom/PanelRight.js +0 -31
- package/lib/cjs/icons/generated/custom/PanelRight.js.map +0 -1
- package/lib/cjs/icons/generated/custom/ThreePanel.js +0 -31
- package/lib/cjs/icons/generated/custom/ThreePanel.js.map +0 -1
- package/lib/cjs/text-link/stories/text-link-default.story.js.map +0 -1
- package/lib/cjs/text-link/stories/text-link-external-underline.story.js +0 -30
- package/lib/cjs/text-link/stories/text-link-external-underline.story.js.map +0 -1
- package/lib/cjs/text-link/stories/text-link-internal-icon.story.js +0 -30
- package/lib/cjs/text-link/stories/text-link-internal-icon.story.js.map +0 -1
- package/lib/cjs/text-link/stories/text-link-internal-underline.story.js.map +0 -1
- package/lib/cjs/text-overflow/TextOverflow.js +0 -146
- package/lib/cjs/text-overflow/TextOverflow.js.map +0 -1
- package/lib/cjs/text-overflow/constants.js +0 -44
- package/lib/cjs/text-overflow/constants.js.map +0 -1
- package/lib/cjs/text-overflow/index.js.map +0 -1
- package/lib/cjs/text-overflow/stories/character-limit.story.js +0 -32
- package/lib/cjs/text-overflow/stories/character-limit.story.js.map +0 -1
- package/lib/cjs/text-overflow/stories/expand-collapse-buttons.story.js +0 -32
- package/lib/cjs/text-overflow/stories/expand-collapse-buttons.story.js.map +0 -1
- package/lib/cjs/text-overflow/stories/index.js +0 -48
- package/lib/cjs/text-overflow/stories/index.js.map +0 -1
- package/lib/cjs/text-overflow/stories/line-clamp.story.js +0 -32
- package/lib/cjs/text-overflow/stories/line-clamp.story.js.map +0 -1
- package/lib/cjs/text-overflow/stories/mixed-content.story.js +0 -31
- package/lib/cjs/text-overflow/stories/mixed-content.story.js.map +0 -1
- package/lib/cjs/text-overflow/stories/width-based-truncation.story.js +0 -32
- package/lib/cjs/text-overflow/stories/width-based-truncation.story.js.map +0 -1
- package/lib/cjs/text-overflow/text-overflow-utils.js +0 -167
- package/lib/cjs/text-overflow/text-overflow-utils.js.map +0 -1
- package/lib/cjs/text-overflow/use-ellipsis-observer.js +0 -66
- package/lib/cjs/text-overflow/use-ellipsis-observer.js.map +0 -1
- package/lib/cjs/text-overflow/use-truncate-with-button.js +0 -205
- package/lib/cjs/text-overflow/use-truncate-with-button.js.map +0 -1
- package/lib/esm/icons/generated/custom/AddNode.js +0 -29
- package/lib/esm/icons/generated/custom/AddNode.js.map +0 -1
- package/lib/esm/icons/generated/custom/PanelBottom.js +0 -29
- package/lib/esm/icons/generated/custom/PanelBottom.js.map +0 -1
- package/lib/esm/icons/generated/custom/PanelLeft.js +0 -29
- package/lib/esm/icons/generated/custom/PanelLeft.js.map +0 -1
- package/lib/esm/icons/generated/custom/PanelLeftCollapsed.js +0 -29
- package/lib/esm/icons/generated/custom/PanelLeftCollapsed.js.map +0 -1
- package/lib/esm/icons/generated/custom/PanelLeftExpanded.js +0 -29
- package/lib/esm/icons/generated/custom/PanelLeftExpanded.js.map +0 -1
- package/lib/esm/icons/generated/custom/PanelRight.js +0 -29
- package/lib/esm/icons/generated/custom/PanelRight.js.map +0 -1
- package/lib/esm/icons/generated/custom/ThreePanel.js +0 -29
- package/lib/esm/icons/generated/custom/ThreePanel.js.map +0 -1
- package/lib/esm/text-link/stories/text-link-default.story.js +0 -28
- package/lib/esm/text-link/stories/text-link-default.story.js.map +0 -1
- package/lib/esm/text-link/stories/text-link-external-underline.story.js +0 -28
- package/lib/esm/text-link/stories/text-link-external-underline.story.js.map +0 -1
- package/lib/esm/text-link/stories/text-link-internal-icon.story.js +0 -28
- package/lib/esm/text-link/stories/text-link-internal-icon.story.js.map +0 -1
- package/lib/esm/text-link/stories/text-link-internal-underline.story.js.map +0 -1
- package/lib/esm/text-overflow/TextOverflow.js +0 -139
- package/lib/esm/text-overflow/TextOverflow.js.map +0 -1
- package/lib/esm/text-overflow/constants.js +0 -41
- package/lib/esm/text-overflow/constants.js.map +0 -1
- package/lib/esm/text-overflow/index.js.map +0 -1
- package/lib/esm/text-overflow/stories/character-limit.story.js +0 -30
- package/lib/esm/text-overflow/stories/character-limit.story.js.map +0 -1
- package/lib/esm/text-overflow/stories/expand-collapse-buttons.story.js +0 -30
- package/lib/esm/text-overflow/stories/expand-collapse-buttons.story.js.map +0 -1
- package/lib/esm/text-overflow/stories/index.js +0 -37
- package/lib/esm/text-overflow/stories/index.js.map +0 -1
- package/lib/esm/text-overflow/stories/line-clamp.story.js +0 -30
- package/lib/esm/text-overflow/stories/line-clamp.story.js.map +0 -1
- package/lib/esm/text-overflow/stories/mixed-content.story.js +0 -29
- package/lib/esm/text-overflow/stories/mixed-content.story.js.map +0 -1
- package/lib/esm/text-overflow/stories/width-based-truncation.story.js +0 -30
- package/lib/esm/text-overflow/stories/width-based-truncation.story.js.map +0 -1
- package/lib/esm/text-overflow/text-overflow-utils.js +0 -159
- package/lib/esm/text-overflow/text-overflow-utils.js.map +0 -1
- package/lib/esm/text-overflow/use-ellipsis-observer.js +0 -63
- package/lib/esm/text-overflow/use-ellipsis-observer.js.map +0 -1
- package/lib/esm/text-overflow/use-truncate-with-button.js +0 -202
- package/lib/esm/text-overflow/use-truncate-with-button.js.map +0 -1
- package/lib/types/icons/generated/custom/AddNode.d.ts +0 -30
- package/lib/types/icons/generated/custom/AddNode.d.ts.map +0 -1
- package/lib/types/icons/generated/custom/PanelBottom.d.ts +0 -30
- package/lib/types/icons/generated/custom/PanelBottom.d.ts.map +0 -1
- package/lib/types/icons/generated/custom/PanelLeft.d.ts +0 -30
- package/lib/types/icons/generated/custom/PanelLeft.d.ts.map +0 -1
- package/lib/types/icons/generated/custom/PanelLeftCollapsed.d.ts +0 -30
- package/lib/types/icons/generated/custom/PanelLeftCollapsed.d.ts.map +0 -1
- package/lib/types/icons/generated/custom/PanelLeftExpanded.d.ts +0 -30
- package/lib/types/icons/generated/custom/PanelLeftExpanded.d.ts.map +0 -1
- package/lib/types/icons/generated/custom/PanelRight.d.ts +0 -30
- package/lib/types/icons/generated/custom/PanelRight.d.ts.map +0 -1
- package/lib/types/icons/generated/custom/ThreePanel.d.ts +0 -30
- package/lib/types/icons/generated/custom/ThreePanel.d.ts.map +0 -1
- package/lib/types/text-link/stories/text-link-default.story.d.ts +0 -24
- package/lib/types/text-link/stories/text-link-default.story.d.ts.map +0 -1
- package/lib/types/text-link/stories/text-link-external-underline.story.d.ts +0 -24
- package/lib/types/text-link/stories/text-link-external-underline.story.d.ts.map +0 -1
- package/lib/types/text-link/stories/text-link-internal-icon.story.d.ts +0 -24
- package/lib/types/text-link/stories/text-link-internal-icon.story.d.ts.map +0 -1
- package/lib/types/text-link/stories/text-link-internal-underline.story.d.ts +0 -24
- package/lib/types/text-link/stories/text-link-internal-underline.story.d.ts.map +0 -1
- package/lib/types/text-overflow/TextOverflow.d.ts +0 -63
- package/lib/types/text-overflow/TextOverflow.d.ts.map +0 -1
- package/lib/types/text-overflow/constants.d.ts +0 -41
- package/lib/types/text-overflow/constants.d.ts.map +0 -1
- package/lib/types/text-overflow/index.d.ts +0 -22
- package/lib/types/text-overflow/index.d.ts.map +0 -1
- package/lib/types/text-overflow/stories/character-limit.story.d.ts.map +0 -1
- package/lib/types/text-overflow/stories/expand-collapse-buttons.story.d.ts +0 -24
- package/lib/types/text-overflow/stories/expand-collapse-buttons.story.d.ts.map +0 -1
- package/lib/types/text-overflow/stories/index.d.ts +0 -31
- package/lib/types/text-overflow/stories/index.d.ts.map +0 -1
- package/lib/types/text-overflow/stories/line-clamp.story.d.ts +0 -24
- package/lib/types/text-overflow/stories/line-clamp.story.d.ts.map +0 -1
- package/lib/types/text-overflow/stories/mixed-content.story.d.ts +0 -24
- package/lib/types/text-overflow/stories/mixed-content.story.d.ts.map +0 -1
- package/lib/types/text-overflow/stories/width-based-truncation.story.d.ts +0 -24
- package/lib/types/text-overflow/stories/width-based-truncation.story.d.ts.map +0 -1
- package/lib/types/text-overflow/text-overflow-utils.d.ts +0 -35
- package/lib/types/text-overflow/text-overflow-utils.d.ts.map +0 -1
- package/lib/types/text-overflow/use-ellipsis-observer.d.ts +0 -28
- package/lib/types/text-overflow/use-ellipsis-observer.d.ts.map +0 -1
- package/lib/types/text-overflow/use-truncate-with-button.d.ts +0 -45
- package/lib/types/text-overflow/use-truncate-with-button.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-nested.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-nested.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAErC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAI,EACxD,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,UAAU,SAAG,EACrC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,WAAW,EAAC,iBAAiB,GAAG,EACvD,MAAC,IAAI,IACH,KAAK,EAAC,SAAS,EACf,WAAW,EAAC,sBAAsB,EAClC,
|
|
1
|
+
{"version":3,"file":"menu-nested.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-nested.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,aAErC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAI,EACxD,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,UAAU,SAAG,EACrC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,WAAW,EAAC,iBAAiB,GAAG,EACvD,MAAC,IAAI,IACH,KAAK,EAAC,SAAS,EACf,WAAW,EAAC,sBAAsB,EAClC,aAAa,EAAE,KAAC,uBAAuB,KAAG,aAE1C,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aACjB,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,IACrB,EACP,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,IACtB,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,aACjB,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,WAAW,GAAG,IAC1B,IACF,EACP,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,GAAG,EAAE,QAAQ,mBACC,MAAM,0BAGL,IAChB,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DropdownButton, Menu } from '@neo4j-ndl/react';\nimport { Square2StackIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n htmlAttributes={{ id: 'nested-menu' }}\n >\n <Menu.Item title=\"Undo\" onClick={() => alert('Undo')} />\n <Menu.Item title=\"Redo\" isDisabled />\n <Menu.Item title=\"Cut\" description=\"Copy and remove\" />\n <Menu\n title=\"Copy as\"\n description=\"Copying as something\"\n leadingVisual={<Square2StackIconOutline />}\n >\n <Menu.Item title=\"Text\" />\n <Menu.Item title=\"Video\" />\n <Menu title=\"Image\">\n <Menu.Item title=\".png\" />\n <Menu.Item title=\".jpg\" />\n <Menu.Item title=\".svg\" />\n <Menu.Item title=\".gif\" />\n </Menu>\n <Menu.Item title=\"Audio\" />\n </Menu>\n <Menu title=\"Share\">\n <Menu.Item title=\"Mail\" />\n <Menu.Item title=\"Instagram\" />\n </Menu>\n </Menu>\n <DropdownButton\n isOpen={isOpen}\n onClick={() => setIsOpen(true)}\n ref={anchorEl}\n aria-haspopup=\"menu\"\n >\n Open Menu\n </DropdownButton>\n </>\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -36,7 +36,7 @@ const Component = () => {
|
|
|
36
36
|
alert('Action 1');
|
|
37
37
|
} }), _jsx(Menu.Item, { title: "Action 2", onClick: () => {
|
|
38
38
|
alert('Action 2');
|
|
39
|
-
} })] })] }), _jsxs("div", { className: "
|
|
39
|
+
} })] })] }), _jsxs("div", { className: "flex flex-col gap-token-4 items-center", children: [_jsxs(Typography, { variant: "body-medium", children: ["Selected option: ", _jsx("strong", { children: selectedOption })] }), _jsx(DropdownButton, { isOpen: isOpen, onClick: () => setIsOpen(true), ref: anchorEl, "aria-haspopup": "menu", children: "Open menu" })] })] }));
|
|
40
40
|
};
|
|
41
41
|
export default Component;
|
|
42
42
|
//# sourceMappingURL=menu-radio-and-normal.story.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-radio-and-normal.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-radio-and-normal.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,UAAU,CACX,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,uBAAuB,EAAE,aAE/C,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;oCACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;oCACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAChC,CAAC,GACD,IACS,EACb,KAAC,IAAI,CAAC,OAAO,KAAG,EAChB,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,IAAI,IACR,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,CAAC,UAAU,CAAC,CAAC;gCACpB,CAAC,GACD,EACF,KAAC,IAAI,CAAC,IAAI,IACR,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,CAAC,UAAU,CAAC,CAAC;gCACpB,CAAC,GACD,IACS,IACR,EACP,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"menu-radio-and-normal.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-radio-and-normal.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,UAAU,CACX,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,uBAAuB,EAAE,aAE/C,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;oCACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;oCACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAChC,CAAC,GACD,IACS,EACb,KAAC,IAAI,CAAC,OAAO,KAAG,EAChB,MAAC,IAAI,CAAC,KAAK,eACT,KAAC,IAAI,CAAC,IAAI,IACR,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,CAAC,UAAU,CAAC,CAAC;gCACpB,CAAC,GACD,EACF,KAAC,IAAI,CAAC,IAAI,IACR,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,CAAC,UAAU,CAAC,CAAC;gCACpB,CAAC,GACD,IACS,IACR,EACP,eAAK,SAAS,EAAC,wCAAwC,aACrD,MAAC,UAAU,IAAC,OAAO,EAAC,aAAa,kCACd,2BAAS,cAAc,GAAU,IACvC,EACb,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,GAAG,EAAE,QAAQ,mBACC,MAAM,0BAGL,IACb,IACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DropdownButton, Menu, Typography } from '@neo4j-ndl/react';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [selectedOption, setSelectedOption] = useState<string | null>(\n 'option-1',\n );\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n htmlAttributes={{ id: 'radio-and-normal-menu' }}\n >\n <Menu.Group>\n <Menu.RadioItem\n title=\"Option 1\"\n isChecked={selectedOption === 'option-1'}\n onClick={() => {\n setSelectedOption('option-1');\n }}\n />\n <Menu.RadioItem\n title=\"Option 2\"\n isChecked={selectedOption === 'option-2'}\n onClick={() => {\n setSelectedOption('option-2');\n }}\n />\n </Menu.Group>\n <Menu.Divider />\n <Menu.Group>\n <Menu.Item\n title=\"Action 1\"\n onClick={() => {\n alert('Action 1');\n }}\n />\n <Menu.Item\n title=\"Action 2\"\n onClick={() => {\n alert('Action 2');\n }}\n />\n </Menu.Group>\n </Menu>\n <div className=\"flex flex-col gap-token-4 items-center\">\n <Typography variant=\"body-medium\">\n Selected option: <strong>{selectedOption}</strong>\n </Typography>\n <DropdownButton\n isOpen={isOpen}\n onClick={() => setIsOpen(true)}\n ref={anchorEl}\n aria-haspopup=\"menu\"\n >\n Open menu\n </DropdownButton>\n </div>\n </>\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -37,7 +37,7 @@ const Component = () => {
|
|
|
37
37
|
setSelectedOption('option-3');
|
|
38
38
|
} }), _jsx(Menu.RadioItem, { title: "Option 4", trailingContent: _jsx(Kbd, { keys: ['A'] }), isChecked: selectedOption === 'option-4', onClick: () => {
|
|
39
39
|
setSelectedOption('option-4');
|
|
40
|
-
} })] }), _jsxs("div", { className: "
|
|
40
|
+
} })] }), _jsxs("div", { className: "flex flex-col gap-token-4 items-center", children: [_jsxs(Typography, { variant: "body-medium", children: ["Selected option: ", _jsx("strong", { children: selectedOption })] }), _jsx(DropdownButton, { isOpen: isOpen, onClick: () => setIsOpen(true), ref: anchorEl, "aria-haspopup": "menu", children: "Open menu" })] })] }));
|
|
41
41
|
};
|
|
42
42
|
export default Component;
|
|
43
43
|
//# sourceMappingURL=menu-radio-items.story.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-radio-items.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-radio-items.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,UAAU,CACX,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAE1C,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,aAAa,EAAE,KAAC,cAAc,KAAG,EACjC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,4BAA4B,EACxC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,eAAe,EAAE,KAAC,GAAG,IAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAI,EACrC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,IACG,EACP,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"menu-radio-items.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-radio-items.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,UAAU,CACX,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,aAE1C,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,aAAa,EAAE,KAAC,cAAc,KAAG,EACjC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,4BAA4B,EACxC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,EACF,KAAC,IAAI,CAAC,SAAS,IACb,KAAK,EAAC,UAAU,EAChB,eAAe,EAAE,KAAC,GAAG,IAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAI,EACrC,SAAS,EAAE,cAAc,KAAK,UAAU,EACxC,OAAO,EAAE,GAAG,EAAE;4BACZ,iBAAiB,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC,GACD,IACG,EACP,eAAK,SAAS,EAAC,wCAAwC,aACrD,MAAC,UAAU,IAAC,OAAO,EAAC,aAAa,kCACd,2BAAS,cAAc,GAAU,IACvC,EACb,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,GAAG,EAAE,QAAQ,mBACC,MAAM,0BAGL,IACb,IACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DropdownButton, Kbd, Menu, Typography } from '@neo4j-ndl/react';\nimport { MoonIconOutline, SunIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [selectedOption, setSelectedOption] = useState<string | null>(\n 'option-1',\n );\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n htmlAttributes={{ id: 'radio-items-menu' }}\n >\n <Menu.RadioItem\n title=\"Option 1\"\n leadingVisual={<SunIconOutline />}\n isChecked={selectedOption === 'option-1'}\n onClick={() => {\n setSelectedOption('option-1');\n }}\n />\n <Menu.RadioItem\n title=\"Option 2\"\n leadingVisual={<MoonIconOutline />}\n isChecked={selectedOption === 'option-2'}\n onClick={() => {\n setSelectedOption('option-2');\n }}\n />\n <Menu.RadioItem\n title=\"Option 3\"\n description=\"Option 3 has a description\"\n isChecked={selectedOption === 'option-3'}\n onClick={() => {\n setSelectedOption('option-3');\n }}\n />\n <Menu.RadioItem\n title=\"Option 4\"\n trailingContent={<Kbd keys={['A']} />}\n isChecked={selectedOption === 'option-4'}\n onClick={() => {\n setSelectedOption('option-4');\n }}\n />\n </Menu>\n <div className=\"flex flex-col gap-token-4 items-center\">\n <Typography variant=\"body-medium\">\n Selected option: <strong>{selectedOption}</strong>\n </Typography>\n <DropdownButton\n isOpen={isOpen}\n onClick={() => setIsOpen(true)}\n ref={anchorEl}\n aria-haspopup=\"menu\"\n >\n Open menu\n </DropdownButton>\n </div>\n </>\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -28,7 +28,7 @@ const Component = () => {
|
|
|
28
28
|
const [isOpen, setIsOpen] = useState(false);
|
|
29
29
|
return (_jsxs(_Fragment, { children: [_jsxs(Menu, { isOpen: isOpen, anchorRef: anchorEl, onClose: (_event, _data) => {
|
|
30
30
|
setIsOpen(false);
|
|
31
|
-
}, htmlAttributes: { id: 'icon-menu' }, children: [_jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 1", onClick: () => alert('Action1') }), _jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 2", onClick: () => alert('Action2') }), _jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 3", description: "Action 3 is disabled", isDisabled: true, onClick: () => alert('Action3') }), _jsxs(Menu, { title: "Action 3.1", description: "Action with sub menu",
|
|
31
|
+
}, htmlAttributes: { id: 'icon-menu' }, children: [_jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 1", onClick: () => alert('Action1') }), _jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 2", onClick: () => alert('Action2') }), _jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 3", description: "Action 3 is disabled", isDisabled: true, onClick: () => alert('Action3') }), _jsxs(Menu, { title: "Action 3.1", description: "Action with sub menu", leadingVisual: _jsx(PlusIconOutline, {}), children: [_jsx(Menu.Item, { title: "Text" }), _jsx(Menu.Item, { title: "Video" }), _jsxs(Menu, { title: "Image", leadingVisual: _jsx(PhotoIconOutline, {}), children: [_jsx(Menu.Item, { title: ".png" }), _jsx(Menu.Item, { title: ".jpg" })] }), _jsx(Menu.Item, { title: "Audio" })] }), _jsx(Menu.Item, { leadingVisual: _jsx(PlusIconOutline, {}), title: "Action 4", description: "Action 4 is awesome", onClick: () => alert('Action4') })] }), _jsx(DropdownButton, { isOpen: isOpen, onClick: () => setIsOpen(true), ref: anchorEl, "aria-haspopup": "menu", children: "Open Menu" })] }));
|
|
32
32
|
};
|
|
33
33
|
export default Component;
|
|
34
34
|
//# sourceMappingURL=menu-with-icon.story.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-with-icon.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-icon.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,aAEnC,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,sBAAsB,EAClC,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,MAAC,IAAI,IACH,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,sBAAsB,EAClC,
|
|
1
|
+
{"version":3,"file":"menu-with-icon.story.js","sourceRoot":"","sources":["../../../../src/menu/stories/menu-with-icon.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzC,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,8BACE,MAAC,IAAI,IACH,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACzB,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC,EACD,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,aAEnC,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,sBAAsB,EAClC,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,EACF,MAAC,IAAI,IACH,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,sBAAsB,EAClC,aAAa,EAAE,KAAC,eAAe,KAAG,aAElC,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,EAC3B,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,aAAa,EAAE,KAAC,gBAAgB,KAAG,aACrD,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,EAC1B,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,MAAM,GAAG,IACrB,EACP,KAAC,IAAI,CAAC,IAAI,IAAC,KAAK,EAAC,OAAO,GAAG,IACtB,EACP,KAAC,IAAI,CAAC,IAAI,IACR,aAAa,EAAE,KAAC,eAAe,KAAG,EAClC,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,qBAAqB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAC/B,IACG,EACP,KAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,GAAG,EAAE,QAAQ,mBACC,MAAM,0BAGL,IAChB,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DropdownButton, Menu } from '@neo4j-ndl/react';\nimport { PhotoIconOutline, PlusIconOutline } from '@neo4j-ndl/react/icons';\nimport { useRef, useState } from 'react';\n\nconst Component = () => {\n const anchorEl = useRef<HTMLButtonElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n <Menu\n isOpen={isOpen}\n anchorRef={anchorEl}\n onClose={(_event, _data) => {\n setIsOpen(false);\n }}\n htmlAttributes={{ id: 'icon-menu' }}\n >\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 1\"\n onClick={() => alert('Action1')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 2\"\n onClick={() => alert('Action2')}\n />\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 3\"\n description=\"Action 3 is disabled\"\n isDisabled={true}\n onClick={() => alert('Action3')}\n />\n <Menu\n title=\"Action 3.1\"\n description=\"Action with sub menu\"\n leadingVisual={<PlusIconOutline />}\n >\n <Menu.Item title=\"Text\" />\n <Menu.Item title=\"Video\" />\n <Menu title=\"Image\" leadingVisual={<PhotoIconOutline />}>\n <Menu.Item title=\".png\" />\n <Menu.Item title=\".jpg\" />\n </Menu>\n <Menu.Item title=\"Audio\" />\n </Menu>\n <Menu.Item\n leadingVisual={<PlusIconOutline />}\n title=\"Action 4\"\n description=\"Action 4 is awesome\"\n onClick={() => alert('Action4')}\n />\n </Menu>\n <DropdownButton\n isOpen={isOpen}\n onClick={() => setIsOpen(true)}\n ref={anchorEl}\n aria-haspopup=\"menu\"\n >\n Open Menu\n </DropdownButton>\n </>\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -555,7 +555,7 @@ const Root = (_a) => {
|
|
|
555
555
|
* The `title` prop provides the item's label content. Nesting `TreeView.Item`
|
|
556
556
|
* elements as `children` creates a hierarchical tree structure.
|
|
557
557
|
*
|
|
558
|
-
* Supports both controlled (`isExpanded`) and uncontrolled (`
|
|
558
|
+
* Supports both controlled (`isExpanded`) and uncontrolled (`isDefaultExpanded`)
|
|
559
559
|
* expansion, as well as lazy loading via `hasChildren` + `isLoading`.
|
|
560
560
|
*
|
|
561
561
|
* @example
|
|
@@ -572,7 +572,7 @@ const Root = (_a) => {
|
|
|
572
572
|
*/
|
|
573
573
|
const Item = (_a) => {
|
|
574
574
|
var _b;
|
|
575
|
-
var { actionMenuItems, children,
|
|
575
|
+
var { actionMenuItems, children, isDefaultExpanded = false, hasChildren: hasChildrenProp, id: idProp, isDisabled, isExpanded: isExpandedProp, isIndeterminate, isLoading, isSelectable: isSelectableProp, isSelected: isSelectedProp, leadingVisual, title, tooltipContent, tooltipProps, trailingContent, onExpandedChange, onSelectedChange, actionMenuProps, className, style, htmlAttributes, ref } = _a, restProps = __rest(_a, ["actionMenuItems", "children", "isDefaultExpanded", "hasChildren", "id", "isDisabled", "isExpanded", "isIndeterminate", "isLoading", "isSelectable", "isSelected", "leadingVisual", "title", "tooltipContent", "tooltipProps", "trailingContent", "onExpandedChange", "onSelectedChange", "actionMenuProps", "className", "style", "htmlAttributes", "ref"]);
|
|
576
576
|
const generatedId = useId();
|
|
577
577
|
const itemId = (_b = idProp !== null && idProp !== void 0 ? idProp : htmlAttributes === null || htmlAttributes === void 0 ? void 0 : htmlAttributes.id) !== null && _b !== void 0 ? _b : `ndl-treeitem-${generatedId}`;
|
|
578
578
|
const titleId = `ndl-treeitem-title-${generatedId}`;
|
|
@@ -592,7 +592,7 @@ const Item = (_a) => {
|
|
|
592
592
|
const [isExpanded, setIsExpanded] = useSemicontrolledState({
|
|
593
593
|
isControlled: isControlledExpansion,
|
|
594
594
|
onChange: onExpandedChange,
|
|
595
|
-
state: isExpandedProp !== null && isExpandedProp !== void 0 ? isExpandedProp :
|
|
595
|
+
state: isExpandedProp !== null && isExpandedProp !== void 0 ? isExpandedProp : isDefaultExpanded,
|
|
596
596
|
});
|
|
597
597
|
const hasChildren = hasChildrenProp !== null && hasChildrenProp !== void 0 ? hasChildrenProp : Children.count(children) > 0;
|
|
598
598
|
const isSelectable = isRootManaged
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../../src/next/tree-view/TreeView.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { useMergeRefs } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport {\n Children,\n cloneElement,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\n\nimport { type CommonProps, type TooltipObjectProps } from '../../_common/types';\nimport { useSemicontrolledState } from '../../_common/use-semi-controlled-state';\nimport { needleWarningMessage } from '../../_common/utils';\nimport { Checkbox } from '../../checkbox';\nimport { CleanIconButton } from '../../clean-icon-button';\nimport { ConditionalWrap } from '../../conditional-wrap';\nimport { isApplePlatform } from '../../helpers/platform';\nimport { ChevronRightIconOutline } from '../../icons/generated/heroIcons/ChevronRightIconOutline';\nimport { EllipsisHorizontalIconOutline } from '../../icons/generated/heroIcons/EllipsisHorizontalIconOutline';\nimport { Menu } from '../../menu';\nimport { Skeleton } from '../../skeleton';\nimport { Tooltip } from '../../tooltip';\nimport {\n computeNextSelection,\n computeSelectionEdges,\n countChangedIds,\n formatSelectionAnnouncement,\n type SelectionAnchor,\n type SelectionEdge,\n type SelectionIntent,\n type SelectionMode,\n} from './selection';\n\ntype ItemEntry = {\n isDisabled: boolean;\n isSelectable: boolean;\n isSelected: boolean;\n onSelectedChange?: (isSelected: boolean) => void;\n parentId: string | null;\n toggleExpanded: () => void;\n};\n\ntype TreeViewContextValue = {\n isRootManaged: boolean;\n level: number;\n onSelectionIntent: (itemId: string, intent: SelectionIntent) => void;\n parentId: string | null;\n registerItem: (itemId: string, entry: ItemEntry | null) => void;\n selectionMode: SelectionMode;\n setFocusedId: (id: string | null) => void;\n store: TreeViewStore;\n};\n\nconst noop = () => undefined;\n\nconst EMPTY_EDGES: ReadonlyMap<string, SelectionEdge> = new Map();\nconst EMPTY_IDS: ReadonlySet<string> = new Set();\nconst EMPTY_ID_LIST: string[] = [];\n\ntype TreeViewStoreState = {\n edgeById: ReadonlyMap<string, SelectionEdge>;\n focusedId: string | null;\n /** Mirror of the selected ids; only meaningful when the root manages selection. */\n selectedIds: ReadonlySet<string>;\n};\n\ntype TreeViewStore = {\n getState: () => TreeViewStoreState;\n setState: (partial: Partial<TreeViewStoreState>) => void;\n subscribe: (listener: () => void) => () => void;\n};\n\n/**\n * Volatile per-interaction state (focus, root-managed selection, edge\n * styling) lives in this store instead of React context, so each item can\n * subscribe to its own primitive slice via `useSyncExternalStore` and an\n * interaction only re-renders the rows whose slice actually changed.\n */\nfunction createTreeViewStore(\n initialState?: Partial<TreeViewStoreState>,\n): TreeViewStore {\n let state: TreeViewStoreState = {\n edgeById: EMPTY_EDGES,\n focusedId: null,\n selectedIds: EMPTY_IDS,\n ...initialState,\n };\n const listeners = new Set<() => void>();\n return {\n getState: () => state,\n setState: (partial) => {\n state = { ...state, ...partial };\n listeners.forEach((listener) => listener());\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\nconst TREE_EVENTS = {\n action: 'treeitem-action',\n collapse: 'treeitem-collapse',\n expand: 'treeitem-expand',\n} as const;\n\nconst TreeViewContext = createContext<TreeViewContextValue>({\n isRootManaged: false,\n level: 1,\n onSelectionIntent: noop,\n parentId: null,\n registerItem: noop,\n selectionMode: 'single',\n setFocusedId: noop,\n store: createTreeViewStore(),\n});\n\n/**\n * On Apple platforms Ctrl+click is the context menu gesture, so only Cmd may\n * stand for an additive selection there.\n */\nfunction getSelectionIntent(\n event: React.KeyboardEvent | React.MouseEvent,\n): SelectionIntent {\n return {\n isRange: event.shiftKey,\n isToggle: isApplePlatform() ? event.metaKey : event.ctrlKey,\n };\n}\n\nfunction getVisibleTreeItems(root: HTMLElement): HTMLElement[] {\n return Array.from(\n root.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n ).filter((el) => {\n let parent = el.parentElement;\n while (parent && parent !== root) {\n if (parent.getAttribute('role') === 'group' && parent.hidden) {\n return false;\n }\n parent = parent.parentElement;\n }\n return true;\n });\n}\n\nfunction getVisibleItemIds(root: HTMLElement): string[] {\n return getVisibleTreeItems(root).map((el) => el.id);\n}\n\nfunction areIdSetsEqual(\n first: ReadonlySet<string>,\n second: ReadonlySet<string>,\n): boolean {\n if (first.size !== second.size) {\n return false;\n }\n for (const id of first) {\n if (!second.has(id)) {\n return false;\n }\n }\n return true;\n}\n\nfunction areEdgeMapsEqual(\n first: ReadonlyMap<string, SelectionEdge>,\n second: ReadonlyMap<string, SelectionEdge>,\n): boolean {\n if (first.size !== second.size) {\n return false;\n }\n for (const [id, edge] of first) {\n if (second.get(id) !== edge) {\n return false;\n }\n }\n return true;\n}\n\nfunction annotateTreeItems(children: React.ReactNode): React.ReactNode {\n const items = Children.toArray(children);\n const treeItemCount = items.filter(\n (child): child is React.ReactElement =>\n isValidElement(child) && child.type === Item,\n ).length;\n\n let posInSet = 0;\n return Children.map(children, (child) => {\n if (isValidElement(child) && child.type === Item) {\n posInSet++;\n return cloneElement(\n child as React.ReactElement<React.HTMLAttributes<HTMLElement>>,\n {\n 'aria-posinset': posInSet,\n 'aria-setsize': treeItemCount,\n },\n );\n }\n return child;\n });\n}\n\ntype RootProps = {\n /** The aria-label for the tree. Required for accessibility, unless using ariaLabelledby. Pass null to omit. */\n ariaLabel: string | null;\n /** The aria-labelledby for the tree. Pass a string of space-separated IDs of elements that label the tree. */\n ariaLabelledby?: string;\n /** The children of the tree. Should be TreeView.Item components or TreeView.SkeletonItem components only. */\n children?: React.ReactNode;\n /** Initially selected item ids for an uncontrolled root-managed selection. */\n defaultSelectedIds?: string[];\n /** Selected item ids. Makes the tree manage selection itself, instead of each item managing its own. */\n selectedIds?: string[];\n /** Selection mode for the tree. Defaults to \"single\". */\n selectionMode?: SelectionMode;\n /** Callback called with the complete next selection whenever the tree manages selection. Fires once per interaction. */\n onSelectedIdsChange?: (selectedIds: string[]) => void;\n};\n\n/**\n * Root container for a tree view. Renders a `role=\"tree\"` element with full\n * keyboard navigation (arrow keys, Home/End, Enter/Space) following the\n * WAI-ARIA TreeView pattern.\n *\n * Direct children should be `TreeView.Item` or `TreeView.SkeletonItem`.\n *\n * @example\n * ```tsx\n * <TreeView ariaLabel=\"Files\">\n * <TreeView.Item title=\"README.md\" onSelectedChange={setSelected} isSelected={selected} />\n * </TreeView>\n * ```\n *\n * @alpha - this component is still in development and may change in the future. It might not have feature parity with the old tree view yet.\n */\nconst Root = ({\n children,\n defaultSelectedIds,\n selectedIds: selectedIdsProp,\n selectionMode = 'single',\n ariaLabel,\n ariaLabelledby,\n className,\n style,\n htmlAttributes,\n onSelectedIdsChange,\n ref,\n ...restProps\n}: CommonProps<'div', RootProps>) => {\n const treeRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([treeRef, ref]);\n const [announcement, setAnnouncement] = useState('');\n // While focus is inside the tree the root drops out of the tab order so\n // that Shift+Tab moves focus out of the tree instead of landing on the\n // root, which would delegate focus straight back to the item (a trap).\n const [isFocusWithin, setIsFocusWithin] = useState(false);\n const anchorRef = useRef<SelectionAnchor>(null);\n const entriesRef = useRef(new Map<string, ItemEntry>());\n\n const isRootManaged =\n selectedIdsProp !== undefined || defaultSelectedIds !== undefined;\n\n const storeRef = useRef<TreeViewStore>(null);\n if (storeRef.current === null) {\n storeRef.current = createTreeViewStore({\n selectedIds: new Set(\n selectedIdsProp ?? defaultSelectedIds ?? EMPTY_ID_LIST,\n ),\n });\n }\n const store = storeRef.current;\n\n const setFocusedId = useCallback(\n (id: string | null) => {\n if (store.getState().focusedId !== id) {\n store.setState({ focusedId: id });\n }\n },\n [store],\n );\n\n const [selectedIdList, setSelectedIdList] = useSemicontrolledState<string[]>({\n isControlled: selectedIdsProp !== undefined,\n onChange: onSelectedIdsChange,\n state: selectedIdsProp ?? defaultSelectedIds ?? EMPTY_ID_LIST,\n });\n\n // useSemicontrolledState recreates its setter whenever the value changes;\n // reading it through a ref keeps onSelectionIntent (and with it the\n // memoized context value) stable across selection changes.\n const setSelectedIdListRef = useRef(setSelectedIdList);\n useLayoutEffect(() => {\n setSelectedIdListRef.current = setSelectedIdList;\n });\n\n const readSelectedIds = useCallback((): Set<string> => {\n if (isRootManaged) {\n return new Set(store.getState().selectedIds);\n }\n const selected = new Set<string>();\n entriesRef.current.forEach((entry, itemId) => {\n if (entry.isSelected) {\n selected.add(itemId);\n }\n });\n return selected;\n }, [isRootManaged, store]);\n\n const readItemMaps = useCallback(() => {\n const parentIdById = new Map<string, string>();\n const selectableIds = new Set<string>();\n entriesRef.current.forEach((entry, itemId) => {\n if (entry.parentId !== null) {\n parentIdById.set(itemId, entry.parentId);\n }\n if (entry.isSelectable && !entry.isDisabled) {\n selectableIds.add(itemId);\n }\n });\n return { parentIdById, selectableIds };\n }, []);\n\n const recomputeEdges = useCallback(() => {\n const root = treeRef.current;\n const previousEdges = store.getState().edgeById;\n if (!root || selectionMode !== 'multiple-replace') {\n if (previousEdges.size > 0) {\n store.setState({ edgeById: EMPTY_EDGES });\n }\n return;\n }\n const selectedIds = readSelectedIds();\n if (selectedIds.size === 0 && previousEdges.size === 0) {\n return;\n }\n const nextEdges = computeSelectionEdges(\n getVisibleItemIds(root),\n selectedIds,\n );\n if (!areEdgeMapsEqual(previousEdges, nextEdges)) {\n store.setState({ edgeById: nextEdges });\n }\n }, [readSelectedIds, selectionMode, store]);\n\n const recomputeEdgesRef = useRef(recomputeEdges);\n useLayoutEffect(() => {\n recomputeEdgesRef.current = recomputeEdges;\n });\n\n // Debounced through a microtask so a commit that touches many items (mount,\n // expansion, range selection) triggers a single recompute, after all item\n // layout effects have registered and before the browser paints.\n const isEdgeRecomputeScheduledRef = useRef(false);\n const scheduleEdgeRecompute = useCallback(() => {\n if (isEdgeRecomputeScheduledRef.current) {\n return;\n }\n isEdgeRecomputeScheduledRef.current = true;\n queueMicrotask(() => {\n isEdgeRecomputeScheduledRef.current = false;\n recomputeEdgesRef.current();\n });\n }, []);\n\n const registerItem = useCallback(\n (itemId: string, entry: ItemEntry | null) => {\n if (entry === null) {\n entriesRef.current.delete(itemId);\n } else {\n entriesRef.current.set(itemId, entry);\n }\n // Covers item mount/unmount and expansion toggles (a collapsing parent\n // re-registers because its toggleExpanded callback is recreated).\n scheduleEdgeRecompute();\n },\n [scheduleEdgeRecompute],\n );\n\n const onSelectionIntent = useCallback(\n (itemId: string, intent: SelectionIntent) => {\n const root = treeRef.current;\n const entry = entriesRef.current.get(itemId);\n if (!root || !entry || entry.isDisabled) {\n return;\n }\n if (!entry.isSelectable) {\n entry.toggleExpanded();\n return;\n }\n\n const { parentIdById, selectableIds } = readItemMaps();\n const selectedIds = readSelectedIds();\n const result = computeNextSelection({\n anchor: anchorRef.current,\n intent,\n parentIdById,\n selectableIds,\n selectedIds,\n selectionMode,\n targetId: itemId,\n visibleIds: getVisibleItemIds(root),\n });\n anchorRef.current = result.anchor;\n\n const nextSelectedIds = result.selectedIds;\n const changedCount = countChangedIds(selectedIds, nextSelectedIds);\n\n if (isRootManaged) {\n if (changedCount > 0) {\n setSelectedIdListRef.current([...nextSelectedIds]);\n }\n } else if (selectionMode === 'single') {\n // Single mode leaves clearing the previously selected item to the\n // consumer, so only the clicked item is told about the change.\n if (!selectedIds.has(itemId)) {\n entry.onSelectedChange?.(true);\n }\n } else {\n entriesRef.current.forEach((itemEntry, id) => {\n const isSelected = nextSelectedIds.has(id);\n if (itemEntry.isSelected !== isSelected) {\n itemEntry.onSelectedChange?.(isSelected);\n }\n });\n }\n\n scheduleEdgeRecompute();\n\n if (selectionMode !== 'single') {\n setAnnouncement(\n intent.isRange\n ? formatSelectionAnnouncement(nextSelectedIds.size)\n : '',\n );\n }\n },\n [\n isRootManaged,\n readItemMaps,\n readSelectedIds,\n scheduleEdgeRecompute,\n selectionMode,\n ],\n );\n\n // Mirrors the root-managed selection into the store, so items subscribe to\n // their own slice and event handlers read it without a state dependency.\n useLayoutEffect(() => {\n const next = isRootManaged ? new Set(selectedIdList) : EMPTY_IDS;\n if (areIdSetsEqual(store.getState().selectedIds, next)) {\n return;\n }\n store.setState({ selectedIds: next });\n scheduleEdgeRecompute();\n }, [isRootManaged, scheduleEdgeRecompute, selectedIdList, store]);\n\n // Computes edges on mount and whenever the edge inputs change identity\n // (selection mode, root-managed flag). Interaction-driven recomputes go\n // through scheduleEdgeRecompute instead.\n useLayoutEffect(() => {\n recomputeEdges();\n }, [recomputeEdges]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const root = treeRef.current;\n if (!root) {\n return;\n }\n\n const items = getVisibleTreeItems(root);\n if (items.length === 0) {\n return;\n }\n\n const currentIndex = items.findIndex(\n (el) => el.id === store.getState().focusedId,\n );\n let isHandled = true;\n\n const extendRangeTo = (item: HTMLElement) => {\n if (selectionMode === 'single' || currentIndex < 0) {\n return;\n }\n const entry = entriesRef.current.get(item.id);\n if (!entry?.isSelectable || entry.isDisabled) {\n return;\n }\n if (anchorRef.current === null) {\n // A keyboard range has no preceding click to repeat, so it grows the\n // selection outwards from wherever focus already is.\n anchorRef.current = {\n baseSelectedIds: readSelectedIds(),\n id: items[currentIndex].id,\n isSelected: true,\n };\n }\n onSelectionIntent(item.id, { isRange: true, isToggle: false });\n };\n\n switch (event.key) {\n case 'ArrowDown': {\n const nextIndex =\n currentIndex < items.length - 1 ? currentIndex + 1 : currentIndex;\n const nextItem = items[nextIndex];\n if (nextItem) {\n if (event.shiftKey) {\n extendRangeTo(nextItem);\n }\n setFocusedId(nextItem.id);\n nextItem.focus();\n }\n break;\n }\n case 'ArrowUp': {\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : 0;\n const prevItem = items[prevIndex];\n if (prevItem) {\n if (event.shiftKey) {\n extendRangeTo(prevItem);\n }\n setFocusedId(prevItem.id);\n prevItem.focus();\n }\n break;\n }\n case 'ArrowRight': {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (!current) {\n break;\n }\n const isExpanded = current.getAttribute('aria-expanded');\n if (isExpanded === 'false') {\n current.dispatchEvent(new CustomEvent(TREE_EVENTS.expand));\n } else if (isExpanded === 'true') {\n const nextIndex = currentIndex + 1;\n if (nextIndex < items.length) {\n const nextItem = items[nextIndex];\n setFocusedId(nextItem.id);\n nextItem.focus();\n }\n }\n break;\n }\n case 'ArrowLeft': {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (!current) {\n break;\n }\n const isExpanded = current.getAttribute('aria-expanded');\n if (isExpanded === 'true') {\n current.dispatchEvent(new CustomEvent(TREE_EVENTS.collapse));\n } else {\n const parentGroup = current.closest('[role=\"group\"]');\n if (parentGroup?.id) {\n const parentItem = root.querySelector<HTMLElement>(\n `[aria-owns=\"${parentGroup.id}\"]`,\n );\n if (parentItem) {\n setFocusedId(parentItem.id);\n parentItem.focus();\n }\n }\n }\n break;\n }\n case 'Home': {\n const first = items[0];\n if (first) {\n setFocusedId(first.id);\n first.focus();\n }\n break;\n }\n case 'End': {\n const last = items[items.length - 1];\n if (last) {\n setFocusedId(last.id);\n last.focus();\n }\n break;\n }\n case 'Enter':\n case ' ': {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (current) {\n onSelectionIntent(current.id, getSelectionIntent(event));\n }\n break;\n }\n case 'F10': {\n if (event.shiftKey) {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (current) {\n current.dispatchEvent(new CustomEvent(TREE_EVENTS.action));\n }\n } else {\n isHandled = false;\n }\n break;\n }\n default:\n isHandled = false;\n }\n\n if (isHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [onSelectionIntent, readSelectedIds, selectionMode, setFocusedId, store],\n );\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const root = treeRef.current;\n if (!root) {\n return;\n }\n\n setIsFocusWithin(true);\n\n if (event.target === root) {\n const items = getVisibleTreeItems(root);\n const { focusedId } = store.getState();\n const alreadyFocused = focusedId\n ? items.find((el) => el.id === focusedId)\n : null;\n const target = alreadyFocused ?? items[0];\n if (target) {\n setFocusedId(target.id);\n target.focus();\n }\n }\n },\n [setFocusedId, store],\n );\n\n const handleBlur = useCallback((event: React.FocusEvent<HTMLDivElement>) => {\n const root = treeRef.current;\n if (!root) {\n return;\n }\n if (\n !(event.relatedTarget instanceof Node) ||\n !root.contains(event.relatedTarget)\n ) {\n setIsFocusWithin(false);\n }\n }, []);\n\n const classes = classNames(className, 'ndl-tree-view-new', {\n 'ndl-tree-view-new--checkbox': selectionMode === 'multiple',\n });\n\n // Cached on children identity so Root-internal state commits (announcement,\n // uncontrolled selection) reuse the same annotated elements and React bails\n // out of the whole item subtree instead of re-rendering every row.\n const annotatedChildren = useMemo(\n () => annotateTreeItems(children),\n [children],\n );\n\n // Everything in here is stable or primitive, so items only re-render via\n // context when the tree's configuration changes, not per interaction.\n const contextValue = useMemo(\n () => ({\n isRootManaged,\n level: 1,\n onSelectionIntent,\n parentId: null,\n registerItem,\n selectionMode,\n setFocusedId,\n store,\n }),\n [\n isRootManaged,\n onSelectionIntent,\n registerItem,\n selectionMode,\n setFocusedId,\n store,\n ],\n );\n\n return (\n <TreeViewContext.Provider value={contextValue}>\n <div\n ref={mergedRef}\n role=\"tree\"\n aria-multiselectable={\n selectionMode === 'multiple' || selectionMode === 'multiple-replace'\n ? true\n : undefined\n }\n tabIndex={isFocusWithin ? -1 : 0}\n className={classes}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-label={ariaLabel ?? undefined}\n aria-labelledby={ariaLabelledby}\n style={style}\n {...htmlAttributes}\n {...restProps}\n >\n {annotatedChildren}\n </div>\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ndl-tree-view-new-live-region\"\n >\n {announcement}\n </div>\n </TreeViewContext.Provider>\n );\n};\n\ntype ItemProps = {\n /** Nested TreeView.Item or TreeView.SkeletonItem elements rendered as sub-items in a collapsible group. */\n children?: React.ReactNode;\n /** The label content displayed in the item row. */\n title?: React.ReactNode;\n /** Default expansion for uncontrolled items */\n // TODO v5: fix boolean naming convention\n // eslint-disable-next-line @typescript-eslint/naming-convention\n defaultExpanded?: boolean;\n /** Whether the item has children. Decides if the item should render a chevron for expansion. Needed for lazy loading. */\n hasChildren?: boolean;\n /** Identifies the item. Required when the tree manages selection via `selectedIds`. */\n id?: string;\n /** Whether the item is disabled */\n isDisabled?: boolean;\n /** Whether the item is expanded. Makes the item controlled. */\n isExpanded?: boolean;\n /** Whether the item is in an indeterminate state. Only meaningful in multi-select mode for parent nodes. */\n isIndeterminate?: boolean;\n /** Whether the item is loading. Applies aria-busy=\"true\" to the item. */\n isLoading?: boolean;\n /** Whether the item can be selected. Defaults to true when the tree manages selection, and otherwise to whether `onSelectedChange` is set. */\n isSelectable?: boolean;\n /** Whether the item is selected. Ignored when the tree manages selection via `selectedIds`. */\n isSelected?: boolean;\n /** Leading visual for the item. */\n leadingVisual?: React.ReactNode;\n /** Trailing content for the item. Shown after the children but before the action menu. */\n trailingContent?: React.ReactNode;\n /** ReactNode containing Menu.Item elements to render in an action menu. When provided, an action button is rendered. */\n actionMenuItems?: React.ReactNode;\n /** Props forwarded to the Menu sub-components (anchorRef, onClose). */\n actionMenuProps?: React.ComponentProps<typeof Menu>;\n /** Content rendered inside the tooltip. When provided, the item is wrapped in a Tooltip. */\n tooltipContent?: React.ReactNode;\n /** Props forwarded to the Tooltip sub-components (root, trigger, content). */\n tooltipProps?: TooltipObjectProps;\n /** Callback called when the item is expanded/collapsed. */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Callback called when the item is selected/deselected. Receives the new selected state. Ignored when the tree manages selection via `selectedIds`. */\n onSelectedChange?: (isSelected: boolean) => void;\n};\n\n/**\n * A single item within a `TreeView`. Renders a `role=\"treeitem\"` element that\n * supports selection, expansion, leading/trailing visuals, and an action menu.\n *\n * The `title` prop provides the item's label content. Nesting `TreeView.Item`\n * elements as `children` creates a hierarchical tree structure.\n *\n * Supports both controlled (`isExpanded`) and uncontrolled (`defaultExpanded`)\n * expansion, as well as lazy loading via `hasChildren` + `isLoading`.\n *\n * @example\n * ```tsx\n * <TreeView.Item\n * title=\"src\"\n * leadingVisual={<FolderIcon />}\n * isSelected={selected}\n * onSelectedChange={setSelected}\n * >\n * <TreeView.Item title=\"index.ts\" />\n * </TreeView.Item>\n * ```\n */\nconst Item = ({\n actionMenuItems,\n children,\n defaultExpanded = false,\n hasChildren: hasChildrenProp,\n id: idProp,\n isDisabled,\n isExpanded: isExpandedProp,\n isIndeterminate,\n isLoading,\n isSelectable: isSelectableProp,\n isSelected: isSelectedProp,\n leadingVisual,\n title,\n tooltipContent,\n tooltipProps,\n trailingContent,\n onExpandedChange,\n onSelectedChange,\n actionMenuProps,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', ItemProps>) => {\n const generatedId = useId();\n const itemId = idProp ?? htmlAttributes?.id ?? `ndl-treeitem-${generatedId}`;\n const titleId = `ndl-treeitem-title-${generatedId}`;\n const groupId = `ndl-treegroup-${generatedId}`;\n const itemRef = useRef<HTMLDivElement>(null);\n const actionButtonRef = useRef<HTMLButtonElement>(null);\n const didOpenViaKeyboard = useRef(false);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const treeViewContext = useContext(TreeViewContext);\n const {\n isRootManaged,\n level,\n onSelectionIntent,\n parentId,\n registerItem,\n selectionMode,\n setFocusedId,\n store,\n } = treeViewContext;\n\n // Primitive slices of the store, so Object.is bails out of re-renders for\n // rows whose focus/selection/edge state did not change.\n const isFocused = useSyncExternalStore(\n store.subscribe,\n () => store.getState().focusedId === itemId,\n () => store.getState().focusedId === itemId,\n );\n const isRootSelected = useSyncExternalStore(\n store.subscribe,\n () => store.getState().selectedIds.has(itemId),\n () => store.getState().selectedIds.has(itemId),\n );\n const edge = useSyncExternalStore(\n store.subscribe,\n () => store.getState().edgeById.get(itemId),\n () => store.getState().edgeById.get(itemId),\n );\n\n const isControlledExpansion = isExpandedProp !== undefined;\n const [isExpanded, setIsExpanded] = useSemicontrolledState({\n isControlled: isControlledExpansion,\n onChange: onExpandedChange,\n state: isExpandedProp ?? defaultExpanded,\n });\n\n const hasChildren = hasChildrenProp ?? Children.count(children) > 0;\n const isSelectable = isRootManaged\n ? (isSelectableProp ?? true)\n : (isSelectableProp ?? onSelectedChange !== undefined);\n const isSelected = isRootManaged ? isRootSelected : (isSelectedProp ?? false);\n const isMultiple = selectionMode === 'multiple';\n\n const toggleExpanded = useCallback(() => {\n if (isDisabled) {\n return;\n }\n if (hasChildren) {\n setIsExpanded(!isExpanded);\n }\n }, [isDisabled, hasChildren, setIsExpanded, isExpanded]);\n\n useLayoutEffect(() => {\n registerItem(itemId, {\n isDisabled: isDisabled ?? false,\n isSelectable,\n isSelected,\n onSelectedChange,\n parentId,\n toggleExpanded,\n });\n }, [\n isDisabled,\n isSelectable,\n isSelected,\n itemId,\n onSelectedChange,\n parentId,\n registerItem,\n toggleExpanded,\n ]);\n\n useLayoutEffect(() => {\n return () => registerItem(itemId, null);\n }, [itemId, registerItem]);\n\n useEffect(() => {\n if (!isRootManaged) {\n return;\n }\n if (idProp === undefined) {\n needleWarningMessage(\n 'TreeView.Item needs an `id` when the tree manages selection with `selectedIds`.',\n );\n }\n if (isSelectedProp !== undefined || onSelectedChange !== undefined) {\n needleWarningMessage(\n 'TreeView.Item `isSelected` and `onSelectedChange` are ignored when the tree manages selection with `selectedIds`.',\n );\n }\n }, [idProp, isRootManaged, isSelectedProp, onSelectedChange]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n if (isDisabled) {\n return;\n }\n setFocusedId(itemId);\n onSelectionIntent(itemId, getSelectionIntent(event));\n },\n [isDisabled, setFocusedId, itemId, onSelectionIntent],\n );\n\n const handleChevronClick = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n if (isDisabled) {\n return;\n }\n setFocusedId(itemId);\n toggleExpanded();\n },\n [isDisabled, setFocusedId, itemId, toggleExpanded],\n );\n\n const handleMenuClose = useCallback(() => {\n setIsMenuOpen(false);\n if (didOpenViaKeyboard.current) {\n itemRef.current?.focus();\n didOpenViaKeyboard.current = false;\n }\n }, []);\n\n const handleCustomEvents = useCallback(\n (event: Event) => {\n if (event.type === TREE_EVENTS.expand) {\n event.stopPropagation();\n if (hasChildren && !isExpanded && !isDisabled) {\n setIsExpanded(true);\n }\n } else if (event.type === TREE_EVENTS.collapse) {\n event.stopPropagation();\n if (hasChildren && isExpanded && !isDisabled) {\n setIsExpanded(false);\n }\n } else if (event.type === TREE_EVENTS.action) {\n event.stopPropagation();\n if (actionMenuItems && !isDisabled) {\n didOpenViaKeyboard.current = true;\n setIsMenuOpen(true);\n }\n }\n },\n [actionMenuItems, hasChildren, isExpanded, isDisabled, setIsExpanded],\n );\n\n const callbackRef = useCallback(\n (node: HTMLDivElement | null) => {\n const prev = itemRef.current;\n if (prev) {\n prev.removeEventListener(TREE_EVENTS.expand, handleCustomEvents);\n prev.removeEventListener(TREE_EVENTS.collapse, handleCustomEvents);\n prev.removeEventListener(TREE_EVENTS.action, handleCustomEvents);\n }\n (itemRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (node) {\n node.addEventListener(TREE_EVENTS.expand, handleCustomEvents);\n node.addEventListener(TREE_EVENTS.collapse, handleCustomEvents);\n node.addEventListener(TREE_EVENTS.action, handleCustomEvents);\n }\n },\n [handleCustomEvents],\n );\n\n const mergedRef = useMergeRefs([callbackRef, ref]);\n\n const selectionAriaProps = (() => {\n if (!isSelectable) {\n return {};\n }\n if (isMultiple) {\n return {\n 'aria-checked': isIndeterminate ? ('mixed' as const) : isSelected,\n };\n }\n return { 'aria-selected': isSelected };\n })();\n\n const edgeClass =\n edge === undefined ? undefined : `ndl-tree-view-new-item--selected-${edge}`;\n\n const childContextValue = useMemo(\n () => ({\n ...treeViewContext,\n level: treeViewContext.level + 1,\n parentId: itemId,\n }),\n [itemId, treeViewContext],\n );\n\n // Same caching as in Root: keeps child element identity stable across\n // renders of this item (selection, focus, expansion) so unchanged\n // descendants bail out of re-rendering.\n const annotatedChildren = useMemo(\n () => annotateTreeItems(children),\n [children],\n );\n\n const itemElement = (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events -- keyboard handled on tree root; aria-selected/aria-checked applied via spread\n <div\n ref={mergedRef}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- aria-selected/aria-checked applied conditionally via spread\n role=\"treeitem\"\n {...selectionAriaProps}\n aria-expanded={hasChildren ? isExpanded : undefined}\n aria-owns={hasChildren ? groupId : undefined}\n aria-disabled={isDisabled || undefined}\n aria-busy={isLoading || undefined}\n aria-keyshortcuts={actionMenuItems ? 'Shift+F10' : undefined}\n aria-labelledby={titleId}\n aria-level={level}\n tabIndex={isFocused ? 0 : -1}\n className={classNames('ndl-tree-view-new-item', className, edgeClass, {\n 'ndl-tree-view-new-item--disabled': isDisabled,\n 'ndl-tree-view-new-item--parent': hasChildren,\n 'ndl-tree-view-new-item--selected': isSelected && isSelectable,\n })}\n style={{ '--tree-level': level - 1, ...style } as React.CSSProperties}\n onClick={(event) => {\n event.stopPropagation();\n handleClick(event);\n }}\n {...htmlAttributes}\n {...restProps}\n id={itemId}\n >\n <div\n className={classNames('ndl-tree-view-new-item-content', {\n 'ndl-tree-view-new-item-content--parent': hasChildren,\n })}\n >\n {hasChildren && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -- keyboard handled on tree root\n <span\n className=\"ndl-tree-view-new-chevron\"\n aria-disabled={isDisabled}\n onClick={handleChevronClick}\n >\n <ChevronRightIconOutline\n className={classNames('ndl-tree-view-new-chevron-icon', {\n 'ndl-tree-view-new-chevron-icon--open': isExpanded,\n })}\n />\n </span>\n )}\n {leadingVisual && (\n <div className=\"ndl-tree-view-new-item-content-leading-visual\">\n {leadingVisual}\n </div>\n )}\n {isMultiple && isSelectable && (\n <div className=\"ndl-tree-view-new-checkbox\" inert>\n <Checkbox\n style={{ borderWidth: '1.5px' }}\n ariaLabel=\"Select\"\n isChecked={isSelected}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled}\n onChange={noop}\n />\n </div>\n )}\n <div id={titleId} className=\"ndl-tree-view-new-item-content-title\">\n {title}\n </div>\n {trailingContent && (\n <div className=\"ndl-tree-view-new-item-content-trailing-content\">\n {trailingContent}\n </div>\n )}\n {actionMenuItems && (\n <div\n className={classNames('ndl-tree-view-new-action', {\n 'ndl-tree-view-new-action--visible': isMenuOpen,\n })}\n >\n <CleanIconButton\n ref={actionButtonRef}\n size=\"small\"\n description={null}\n isDisabled={isDisabled}\n style={{ height: '24px', width: '24px' }}\n htmlAttributes={{\n 'aria-expanded': isMenuOpen || undefined,\n 'aria-haspopup': 'menu',\n 'aria-label': 'Actions',\n onClick: (event: React.MouseEvent) => {\n event.stopPropagation();\n didOpenViaKeyboard.current = false;\n setIsMenuOpen((prev) => !prev);\n },\n tabIndex: -1,\n }}\n >\n <EllipsisHorizontalIconOutline />\n </CleanIconButton>\n <Menu\n isOpen={isMenuOpen}\n anchorRef={actionButtonRef}\n onClose={handleMenuClose}\n {...actionMenuProps}\n >\n {actionMenuItems}\n </Menu>\n </div>\n )}\n </div>\n </div>\n );\n\n return (\n <>\n <ConditionalWrap\n shouldWrap={tooltipContent !== undefined && tooltipContent !== null}\n wrap={(children) => (\n <Tooltip\n type=\"simple\"\n hoverDelay={{ close: 0, open: 500 }}\n isDisabled={isMenuOpen}\n followCursor=\"initial\"\n {...tooltipProps?.root}\n >\n <Tooltip.Trigger hasButtonWrapper {...tooltipProps?.trigger}>\n {children}\n </Tooltip.Trigger>\n <Tooltip.Content {...tooltipProps?.content}>\n {tooltipContent}\n </Tooltip.Content>\n </Tooltip>\n )}\n >\n {itemElement}\n </ConditionalWrap>\n {hasChildren && (\n <TreeViewContext.Provider value={childContextValue}>\n <div\n role=\"group\"\n id={groupId}\n hidden={!isExpanded}\n style={{ '--tree-level': level - 1 } as React.CSSProperties}\n >\n {annotatedChildren}\n </div>\n </TreeViewContext.Provider>\n )}\n </>\n );\n};\n\ntype SkeletonItemProps = {\n /** The number of rows to render. */\n rows?: number;\n};\n\n/**\n * A skeleton placeholder for tree items that are being loaded. Renders one or\n * more `Skeleton` rows at the current nesting depth. The element is\n * `aria-hidden` since it is purely a visual indicator and not interactive.\n *\n * Typically used inside a `TreeView.Item` that has `isLoading` set, to give\n * the user a visual hint that child items are being fetched.\n *\n * @example\n * ```tsx\n * <TreeView.Item title=\"Lazy folder\" hasChildren isLoading isExpanded>\n * {isLoading && <TreeView.SkeletonItem rows={3} />}\n * </TreeView.Item>\n * ```\n */\nconst SkeletonItem = ({\n rows = 1,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', SkeletonItemProps>) => {\n const { level } = useContext(TreeViewContext);\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={classNames('ndl-tree-view-new-skeleton', className)}\n style={{ '--tree-level': level - 1, ...style } as React.CSSProperties}\n {...htmlAttributes}\n {...restProps}\n >\n {Array.from({ length: rows }, (_unused, index) => (\n <Skeleton key={index} height=\"18px\" width=\"100%\" />\n ))}\n </div>\n );\n};\n\n/**\n * @remarks\n * Selection can be managed per item, with `isSelected` and `onSelectedChange`\n * on each `TreeView.Item`, or by the tree itself, by passing `selectedIds` (or\n * `defaultSelectedIds`) together with `onSelectedIdsChange`. When the tree\n * manages selection, every item needs an `id`, and each item's own\n * `isSelected` and `onSelectedChange` are ignored.\n *\n * The available selection modes are:\n *\n * - `single` — one item at a time. An unmodified click selects the clicked item and never clears it.\n * - `multiple` — multi-select with checkboxes. An unmodified click toggles an item, and `Shift` repeats that across a range without clearing anything outside it.\n * - `multiple-replace` — multi-select without checkboxes. An unmodified click selects only that item, `Cmd`/`Ctrl` toggles it and moves the anchor, and `Shift` extends from that anchor while retaining its selection snapshot. `Shift` + arrow extends the range.\n */\nconst TreeView = Object.assign(Root, { Item, SkeletonItem });\nexport { TreeView };\n"]}
|
|
1
|
+
{"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../../src/next/tree-view/TreeView.tsx"],"names":[],"mappings":"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","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { useMergeRefs } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport {\n Children,\n cloneElement,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\n\nimport { type CommonProps, type TooltipObjectProps } from '../../_common/types';\nimport { useSemicontrolledState } from '../../_common/use-semi-controlled-state';\nimport { needleWarningMessage } from '../../_common/utils';\nimport { Checkbox } from '../../checkbox';\nimport { CleanIconButton } from '../../clean-icon-button';\nimport { ConditionalWrap } from '../../conditional-wrap';\nimport { isApplePlatform } from '../../helpers/platform';\nimport { ChevronRightIconOutline } from '../../icons/generated/heroIcons/ChevronRightIconOutline';\nimport { EllipsisHorizontalIconOutline } from '../../icons/generated/heroIcons/EllipsisHorizontalIconOutline';\nimport { Menu } from '../../menu';\nimport { Skeleton } from '../../skeleton';\nimport { Tooltip } from '../../tooltip';\nimport {\n computeNextSelection,\n computeSelectionEdges,\n countChangedIds,\n formatSelectionAnnouncement,\n type SelectionAnchor,\n type SelectionEdge,\n type SelectionIntent,\n type SelectionMode,\n} from './selection';\n\ntype ItemEntry = {\n isDisabled: boolean;\n isSelectable: boolean;\n isSelected: boolean;\n onSelectedChange?: (isSelected: boolean) => void;\n parentId: string | null;\n toggleExpanded: () => void;\n};\n\ntype TreeViewContextValue = {\n isRootManaged: boolean;\n level: number;\n onSelectionIntent: (itemId: string, intent: SelectionIntent) => void;\n parentId: string | null;\n registerItem: (itemId: string, entry: ItemEntry | null) => void;\n selectionMode: SelectionMode;\n setFocusedId: (id: string | null) => void;\n store: TreeViewStore;\n};\n\nconst noop = () => undefined;\n\nconst EMPTY_EDGES: ReadonlyMap<string, SelectionEdge> = new Map();\nconst EMPTY_IDS: ReadonlySet<string> = new Set();\nconst EMPTY_ID_LIST: string[] = [];\n\ntype TreeViewStoreState = {\n edgeById: ReadonlyMap<string, SelectionEdge>;\n focusedId: string | null;\n /** Mirror of the selected ids; only meaningful when the root manages selection. */\n selectedIds: ReadonlySet<string>;\n};\n\ntype TreeViewStore = {\n getState: () => TreeViewStoreState;\n setState: (partial: Partial<TreeViewStoreState>) => void;\n subscribe: (listener: () => void) => () => void;\n};\n\n/**\n * Volatile per-interaction state (focus, root-managed selection, edge\n * styling) lives in this store instead of React context, so each item can\n * subscribe to its own primitive slice via `useSyncExternalStore` and an\n * interaction only re-renders the rows whose slice actually changed.\n */\nfunction createTreeViewStore(\n initialState?: Partial<TreeViewStoreState>,\n): TreeViewStore {\n let state: TreeViewStoreState = {\n edgeById: EMPTY_EDGES,\n focusedId: null,\n selectedIds: EMPTY_IDS,\n ...initialState,\n };\n const listeners = new Set<() => void>();\n return {\n getState: () => state,\n setState: (partial) => {\n state = { ...state, ...partial };\n listeners.forEach((listener) => listener());\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\nconst TREE_EVENTS = {\n action: 'treeitem-action',\n collapse: 'treeitem-collapse',\n expand: 'treeitem-expand',\n} as const;\n\nconst TreeViewContext = createContext<TreeViewContextValue>({\n isRootManaged: false,\n level: 1,\n onSelectionIntent: noop,\n parentId: null,\n registerItem: noop,\n selectionMode: 'single',\n setFocusedId: noop,\n store: createTreeViewStore(),\n});\n\n/**\n * On Apple platforms Ctrl+click is the context menu gesture, so only Cmd may\n * stand for an additive selection there.\n */\nfunction getSelectionIntent(\n event: React.KeyboardEvent | React.MouseEvent,\n): SelectionIntent {\n return {\n isRange: event.shiftKey,\n isToggle: isApplePlatform() ? event.metaKey : event.ctrlKey,\n };\n}\n\nfunction getVisibleTreeItems(root: HTMLElement): HTMLElement[] {\n return Array.from(\n root.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n ).filter((el) => {\n let parent = el.parentElement;\n while (parent && parent !== root) {\n if (parent.getAttribute('role') === 'group' && parent.hidden) {\n return false;\n }\n parent = parent.parentElement;\n }\n return true;\n });\n}\n\nfunction getVisibleItemIds(root: HTMLElement): string[] {\n return getVisibleTreeItems(root).map((el) => el.id);\n}\n\nfunction areIdSetsEqual(\n first: ReadonlySet<string>,\n second: ReadonlySet<string>,\n): boolean {\n if (first.size !== second.size) {\n return false;\n }\n for (const id of first) {\n if (!second.has(id)) {\n return false;\n }\n }\n return true;\n}\n\nfunction areEdgeMapsEqual(\n first: ReadonlyMap<string, SelectionEdge>,\n second: ReadonlyMap<string, SelectionEdge>,\n): boolean {\n if (first.size !== second.size) {\n return false;\n }\n for (const [id, edge] of first) {\n if (second.get(id) !== edge) {\n return false;\n }\n }\n return true;\n}\n\nfunction annotateTreeItems(children: React.ReactNode): React.ReactNode {\n const items = Children.toArray(children);\n const treeItemCount = items.filter(\n (child): child is React.ReactElement =>\n isValidElement(child) && child.type === Item,\n ).length;\n\n let posInSet = 0;\n return Children.map(children, (child) => {\n if (isValidElement(child) && child.type === Item) {\n posInSet++;\n return cloneElement(\n child as React.ReactElement<React.HTMLAttributes<HTMLElement>>,\n {\n 'aria-posinset': posInSet,\n 'aria-setsize': treeItemCount,\n },\n );\n }\n return child;\n });\n}\n\ntype RootProps = {\n /** The aria-label for the tree. Required for accessibility, unless using ariaLabelledby. Pass null to omit. */\n ariaLabel: string | null;\n /** The aria-labelledby for the tree. Pass a string of space-separated IDs of elements that label the tree. */\n ariaLabelledby?: string;\n /** The children of the tree. Should be TreeView.Item components or TreeView.SkeletonItem components only. */\n children?: React.ReactNode;\n /** Initially selected item ids for an uncontrolled root-managed selection. */\n defaultSelectedIds?: string[];\n /** Selected item ids. Makes the tree manage selection itself, instead of each item managing its own. */\n selectedIds?: string[];\n /** Selection mode for the tree. Defaults to \"single\". */\n selectionMode?: SelectionMode;\n /** Callback called with the complete next selection whenever the tree manages selection. Fires once per interaction. */\n onSelectedIdsChange?: (selectedIds: string[]) => void;\n};\n\n/**\n * Root container for a tree view. Renders a `role=\"tree\"` element with full\n * keyboard navigation (arrow keys, Home/End, Enter/Space) following the\n * WAI-ARIA TreeView pattern.\n *\n * Direct children should be `TreeView.Item` or `TreeView.SkeletonItem`.\n *\n * @example\n * ```tsx\n * <TreeView ariaLabel=\"Files\">\n * <TreeView.Item title=\"README.md\" onSelectedChange={setSelected} isSelected={selected} />\n * </TreeView>\n * ```\n *\n * @alpha - this component is still in development and may change in the future. It might not have feature parity with the old tree view yet.\n */\nconst Root = ({\n children,\n defaultSelectedIds,\n selectedIds: selectedIdsProp,\n selectionMode = 'single',\n ariaLabel,\n ariaLabelledby,\n className,\n style,\n htmlAttributes,\n onSelectedIdsChange,\n ref,\n ...restProps\n}: CommonProps<'div', RootProps>) => {\n const treeRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([treeRef, ref]);\n const [announcement, setAnnouncement] = useState('');\n // While focus is inside the tree the root drops out of the tab order so\n // that Shift+Tab moves focus out of the tree instead of landing on the\n // root, which would delegate focus straight back to the item (a trap).\n const [isFocusWithin, setIsFocusWithin] = useState(false);\n const anchorRef = useRef<SelectionAnchor>(null);\n const entriesRef = useRef(new Map<string, ItemEntry>());\n\n const isRootManaged =\n selectedIdsProp !== undefined || defaultSelectedIds !== undefined;\n\n const storeRef = useRef<TreeViewStore>(null);\n if (storeRef.current === null) {\n storeRef.current = createTreeViewStore({\n selectedIds: new Set(\n selectedIdsProp ?? defaultSelectedIds ?? EMPTY_ID_LIST,\n ),\n });\n }\n const store = storeRef.current;\n\n const setFocusedId = useCallback(\n (id: string | null) => {\n if (store.getState().focusedId !== id) {\n store.setState({ focusedId: id });\n }\n },\n [store],\n );\n\n const [selectedIdList, setSelectedIdList] = useSemicontrolledState<string[]>({\n isControlled: selectedIdsProp !== undefined,\n onChange: onSelectedIdsChange,\n state: selectedIdsProp ?? defaultSelectedIds ?? EMPTY_ID_LIST,\n });\n\n // useSemicontrolledState recreates its setter whenever the value changes;\n // reading it through a ref keeps onSelectionIntent (and with it the\n // memoized context value) stable across selection changes.\n const setSelectedIdListRef = useRef(setSelectedIdList);\n useLayoutEffect(() => {\n setSelectedIdListRef.current = setSelectedIdList;\n });\n\n const readSelectedIds = useCallback((): Set<string> => {\n if (isRootManaged) {\n return new Set(store.getState().selectedIds);\n }\n const selected = new Set<string>();\n entriesRef.current.forEach((entry, itemId) => {\n if (entry.isSelected) {\n selected.add(itemId);\n }\n });\n return selected;\n }, [isRootManaged, store]);\n\n const readItemMaps = useCallback(() => {\n const parentIdById = new Map<string, string>();\n const selectableIds = new Set<string>();\n entriesRef.current.forEach((entry, itemId) => {\n if (entry.parentId !== null) {\n parentIdById.set(itemId, entry.parentId);\n }\n if (entry.isSelectable && !entry.isDisabled) {\n selectableIds.add(itemId);\n }\n });\n return { parentIdById, selectableIds };\n }, []);\n\n const recomputeEdges = useCallback(() => {\n const root = treeRef.current;\n const previousEdges = store.getState().edgeById;\n if (!root || selectionMode !== 'multiple-replace') {\n if (previousEdges.size > 0) {\n store.setState({ edgeById: EMPTY_EDGES });\n }\n return;\n }\n const selectedIds = readSelectedIds();\n if (selectedIds.size === 0 && previousEdges.size === 0) {\n return;\n }\n const nextEdges = computeSelectionEdges(\n getVisibleItemIds(root),\n selectedIds,\n );\n if (!areEdgeMapsEqual(previousEdges, nextEdges)) {\n store.setState({ edgeById: nextEdges });\n }\n }, [readSelectedIds, selectionMode, store]);\n\n const recomputeEdgesRef = useRef(recomputeEdges);\n useLayoutEffect(() => {\n recomputeEdgesRef.current = recomputeEdges;\n });\n\n // Debounced through a microtask so a commit that touches many items (mount,\n // expansion, range selection) triggers a single recompute, after all item\n // layout effects have registered and before the browser paints.\n const isEdgeRecomputeScheduledRef = useRef(false);\n const scheduleEdgeRecompute = useCallback(() => {\n if (isEdgeRecomputeScheduledRef.current) {\n return;\n }\n isEdgeRecomputeScheduledRef.current = true;\n queueMicrotask(() => {\n isEdgeRecomputeScheduledRef.current = false;\n recomputeEdgesRef.current();\n });\n }, []);\n\n const registerItem = useCallback(\n (itemId: string, entry: ItemEntry | null) => {\n if (entry === null) {\n entriesRef.current.delete(itemId);\n } else {\n entriesRef.current.set(itemId, entry);\n }\n // Covers item mount/unmount and expansion toggles (a collapsing parent\n // re-registers because its toggleExpanded callback is recreated).\n scheduleEdgeRecompute();\n },\n [scheduleEdgeRecompute],\n );\n\n const onSelectionIntent = useCallback(\n (itemId: string, intent: SelectionIntent) => {\n const root = treeRef.current;\n const entry = entriesRef.current.get(itemId);\n if (!root || !entry || entry.isDisabled) {\n return;\n }\n if (!entry.isSelectable) {\n entry.toggleExpanded();\n return;\n }\n\n const { parentIdById, selectableIds } = readItemMaps();\n const selectedIds = readSelectedIds();\n const result = computeNextSelection({\n anchor: anchorRef.current,\n intent,\n parentIdById,\n selectableIds,\n selectedIds,\n selectionMode,\n targetId: itemId,\n visibleIds: getVisibleItemIds(root),\n });\n anchorRef.current = result.anchor;\n\n const nextSelectedIds = result.selectedIds;\n const changedCount = countChangedIds(selectedIds, nextSelectedIds);\n\n if (isRootManaged) {\n if (changedCount > 0) {\n setSelectedIdListRef.current([...nextSelectedIds]);\n }\n } else if (selectionMode === 'single') {\n // Single mode leaves clearing the previously selected item to the\n // consumer, so only the clicked item is told about the change.\n if (!selectedIds.has(itemId)) {\n entry.onSelectedChange?.(true);\n }\n } else {\n entriesRef.current.forEach((itemEntry, id) => {\n const isSelected = nextSelectedIds.has(id);\n if (itemEntry.isSelected !== isSelected) {\n itemEntry.onSelectedChange?.(isSelected);\n }\n });\n }\n\n scheduleEdgeRecompute();\n\n if (selectionMode !== 'single') {\n setAnnouncement(\n intent.isRange\n ? formatSelectionAnnouncement(nextSelectedIds.size)\n : '',\n );\n }\n },\n [\n isRootManaged,\n readItemMaps,\n readSelectedIds,\n scheduleEdgeRecompute,\n selectionMode,\n ],\n );\n\n // Mirrors the root-managed selection into the store, so items subscribe to\n // their own slice and event handlers read it without a state dependency.\n useLayoutEffect(() => {\n const next = isRootManaged ? new Set(selectedIdList) : EMPTY_IDS;\n if (areIdSetsEqual(store.getState().selectedIds, next)) {\n return;\n }\n store.setState({ selectedIds: next });\n scheduleEdgeRecompute();\n }, [isRootManaged, scheduleEdgeRecompute, selectedIdList, store]);\n\n // Computes edges on mount and whenever the edge inputs change identity\n // (selection mode, root-managed flag). Interaction-driven recomputes go\n // through scheduleEdgeRecompute instead.\n useLayoutEffect(() => {\n recomputeEdges();\n }, [recomputeEdges]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const root = treeRef.current;\n if (!root) {\n return;\n }\n\n const items = getVisibleTreeItems(root);\n if (items.length === 0) {\n return;\n }\n\n const currentIndex = items.findIndex(\n (el) => el.id === store.getState().focusedId,\n );\n let isHandled = true;\n\n const extendRangeTo = (item: HTMLElement) => {\n if (selectionMode === 'single' || currentIndex < 0) {\n return;\n }\n const entry = entriesRef.current.get(item.id);\n if (!entry?.isSelectable || entry.isDisabled) {\n return;\n }\n if (anchorRef.current === null) {\n // A keyboard range has no preceding click to repeat, so it grows the\n // selection outwards from wherever focus already is.\n anchorRef.current = {\n baseSelectedIds: readSelectedIds(),\n id: items[currentIndex].id,\n isSelected: true,\n };\n }\n onSelectionIntent(item.id, { isRange: true, isToggle: false });\n };\n\n switch (event.key) {\n case 'ArrowDown': {\n const nextIndex =\n currentIndex < items.length - 1 ? currentIndex + 1 : currentIndex;\n const nextItem = items[nextIndex];\n if (nextItem) {\n if (event.shiftKey) {\n extendRangeTo(nextItem);\n }\n setFocusedId(nextItem.id);\n nextItem.focus();\n }\n break;\n }\n case 'ArrowUp': {\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : 0;\n const prevItem = items[prevIndex];\n if (prevItem) {\n if (event.shiftKey) {\n extendRangeTo(prevItem);\n }\n setFocusedId(prevItem.id);\n prevItem.focus();\n }\n break;\n }\n case 'ArrowRight': {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (!current) {\n break;\n }\n const isExpanded = current.getAttribute('aria-expanded');\n if (isExpanded === 'false') {\n current.dispatchEvent(new CustomEvent(TREE_EVENTS.expand));\n } else if (isExpanded === 'true') {\n const nextIndex = currentIndex + 1;\n if (nextIndex < items.length) {\n const nextItem = items[nextIndex];\n setFocusedId(nextItem.id);\n nextItem.focus();\n }\n }\n break;\n }\n case 'ArrowLeft': {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (!current) {\n break;\n }\n const isExpanded = current.getAttribute('aria-expanded');\n if (isExpanded === 'true') {\n current.dispatchEvent(new CustomEvent(TREE_EVENTS.collapse));\n } else {\n const parentGroup = current.closest('[role=\"group\"]');\n if (parentGroup?.id) {\n const parentItem = root.querySelector<HTMLElement>(\n `[aria-owns=\"${parentGroup.id}\"]`,\n );\n if (parentItem) {\n setFocusedId(parentItem.id);\n parentItem.focus();\n }\n }\n }\n break;\n }\n case 'Home': {\n const first = items[0];\n if (first) {\n setFocusedId(first.id);\n first.focus();\n }\n break;\n }\n case 'End': {\n const last = items[items.length - 1];\n if (last) {\n setFocusedId(last.id);\n last.focus();\n }\n break;\n }\n case 'Enter':\n case ' ': {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (current) {\n onSelectionIntent(current.id, getSelectionIntent(event));\n }\n break;\n }\n case 'F10': {\n if (event.shiftKey) {\n const current = currentIndex >= 0 ? items[currentIndex] : null;\n if (current) {\n current.dispatchEvent(new CustomEvent(TREE_EVENTS.action));\n }\n } else {\n isHandled = false;\n }\n break;\n }\n default:\n isHandled = false;\n }\n\n if (isHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [onSelectionIntent, readSelectedIds, selectionMode, setFocusedId, store],\n );\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const root = treeRef.current;\n if (!root) {\n return;\n }\n\n setIsFocusWithin(true);\n\n if (event.target === root) {\n const items = getVisibleTreeItems(root);\n const { focusedId } = store.getState();\n const alreadyFocused = focusedId\n ? items.find((el) => el.id === focusedId)\n : null;\n const target = alreadyFocused ?? items[0];\n if (target) {\n setFocusedId(target.id);\n target.focus();\n }\n }\n },\n [setFocusedId, store],\n );\n\n const handleBlur = useCallback((event: React.FocusEvent<HTMLDivElement>) => {\n const root = treeRef.current;\n if (!root) {\n return;\n }\n if (\n !(event.relatedTarget instanceof Node) ||\n !root.contains(event.relatedTarget)\n ) {\n setIsFocusWithin(false);\n }\n }, []);\n\n const classes = classNames(className, 'ndl-tree-view-new', {\n 'ndl-tree-view-new--checkbox': selectionMode === 'multiple',\n });\n\n // Cached on children identity so Root-internal state commits (announcement,\n // uncontrolled selection) reuse the same annotated elements and React bails\n // out of the whole item subtree instead of re-rendering every row.\n const annotatedChildren = useMemo(\n () => annotateTreeItems(children),\n [children],\n );\n\n // Everything in here is stable or primitive, so items only re-render via\n // context when the tree's configuration changes, not per interaction.\n const contextValue = useMemo(\n () => ({\n isRootManaged,\n level: 1,\n onSelectionIntent,\n parentId: null,\n registerItem,\n selectionMode,\n setFocusedId,\n store,\n }),\n [\n isRootManaged,\n onSelectionIntent,\n registerItem,\n selectionMode,\n setFocusedId,\n store,\n ],\n );\n\n return (\n <TreeViewContext.Provider value={contextValue}>\n <div\n ref={mergedRef}\n role=\"tree\"\n aria-multiselectable={\n selectionMode === 'multiple' || selectionMode === 'multiple-replace'\n ? true\n : undefined\n }\n tabIndex={isFocusWithin ? -1 : 0}\n className={classes}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n aria-label={ariaLabel ?? undefined}\n aria-labelledby={ariaLabelledby}\n style={style}\n {...htmlAttributes}\n {...restProps}\n >\n {annotatedChildren}\n </div>\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className=\"ndl-tree-view-new-live-region\"\n >\n {announcement}\n </div>\n </TreeViewContext.Provider>\n );\n};\n\ntype ItemProps = {\n /** Nested TreeView.Item or TreeView.SkeletonItem elements rendered as sub-items in a collapsible group. */\n children?: React.ReactNode;\n /** The label content displayed in the item row. */\n title?: React.ReactNode;\n /** Default expansion for uncontrolled items */\n isDefaultExpanded?: boolean;\n /** Whether the item has children. Decides if the item should render a chevron for expansion. Needed for lazy loading. */\n hasChildren?: boolean;\n /** Identifies the item. Required when the tree manages selection via `selectedIds`. */\n id?: string;\n /** Whether the item is disabled */\n isDisabled?: boolean;\n /** Whether the item is expanded. Makes the item controlled. */\n isExpanded?: boolean;\n /** Whether the item is in an indeterminate state. Only meaningful in multi-select mode for parent nodes. */\n isIndeterminate?: boolean;\n /** Whether the item is loading. Applies aria-busy=\"true\" to the item. */\n isLoading?: boolean;\n /** Whether the item can be selected. Defaults to true when the tree manages selection, and otherwise to whether `onSelectedChange` is set. */\n isSelectable?: boolean;\n /** Whether the item is selected. Ignored when the tree manages selection via `selectedIds`. */\n isSelected?: boolean;\n /** Leading visual for the item. */\n leadingVisual?: React.ReactNode;\n /** Trailing content for the item. Shown after the children but before the action menu. */\n trailingContent?: React.ReactNode;\n /** ReactNode containing Menu.Item elements to render in an action menu. When provided, an action button is rendered. */\n actionMenuItems?: React.ReactNode;\n /** Props forwarded to the Menu sub-components (anchorRef, onClose). */\n actionMenuProps?: React.ComponentProps<typeof Menu>;\n /** Content rendered inside the tooltip. When provided, the item is wrapped in a Tooltip. */\n tooltipContent?: React.ReactNode;\n /** Props forwarded to the Tooltip sub-components (root, trigger, content). */\n tooltipProps?: TooltipObjectProps;\n /** Callback called when the item is expanded/collapsed. */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Callback called when the item is selected/deselected. Receives the new selected state. Ignored when the tree manages selection via `selectedIds`. */\n onSelectedChange?: (isSelected: boolean) => void;\n};\n\n/**\n * A single item within a `TreeView`. Renders a `role=\"treeitem\"` element that\n * supports selection, expansion, leading/trailing visuals, and an action menu.\n *\n * The `title` prop provides the item's label content. Nesting `TreeView.Item`\n * elements as `children` creates a hierarchical tree structure.\n *\n * Supports both controlled (`isExpanded`) and uncontrolled (`isDefaultExpanded`)\n * expansion, as well as lazy loading via `hasChildren` + `isLoading`.\n *\n * @example\n * ```tsx\n * <TreeView.Item\n * title=\"src\"\n * leadingVisual={<FolderIcon />}\n * isSelected={selected}\n * onSelectedChange={setSelected}\n * >\n * <TreeView.Item title=\"index.ts\" />\n * </TreeView.Item>\n * ```\n */\nconst Item = ({\n actionMenuItems,\n children,\n isDefaultExpanded = false,\n hasChildren: hasChildrenProp,\n id: idProp,\n isDisabled,\n isExpanded: isExpandedProp,\n isIndeterminate,\n isLoading,\n isSelectable: isSelectableProp,\n isSelected: isSelectedProp,\n leadingVisual,\n title,\n tooltipContent,\n tooltipProps,\n trailingContent,\n onExpandedChange,\n onSelectedChange,\n actionMenuProps,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', ItemProps>) => {\n const generatedId = useId();\n const itemId = idProp ?? htmlAttributes?.id ?? `ndl-treeitem-${generatedId}`;\n const titleId = `ndl-treeitem-title-${generatedId}`;\n const groupId = `ndl-treegroup-${generatedId}`;\n const itemRef = useRef<HTMLDivElement>(null);\n const actionButtonRef = useRef<HTMLButtonElement>(null);\n const didOpenViaKeyboard = useRef(false);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const treeViewContext = useContext(TreeViewContext);\n const {\n isRootManaged,\n level,\n onSelectionIntent,\n parentId,\n registerItem,\n selectionMode,\n setFocusedId,\n store,\n } = treeViewContext;\n\n // Primitive slices of the store, so Object.is bails out of re-renders for\n // rows whose focus/selection/edge state did not change.\n const isFocused = useSyncExternalStore(\n store.subscribe,\n () => store.getState().focusedId === itemId,\n () => store.getState().focusedId === itemId,\n );\n const isRootSelected = useSyncExternalStore(\n store.subscribe,\n () => store.getState().selectedIds.has(itemId),\n () => store.getState().selectedIds.has(itemId),\n );\n const edge = useSyncExternalStore(\n store.subscribe,\n () => store.getState().edgeById.get(itemId),\n () => store.getState().edgeById.get(itemId),\n );\n\n const isControlledExpansion = isExpandedProp !== undefined;\n const [isExpanded, setIsExpanded] = useSemicontrolledState({\n isControlled: isControlledExpansion,\n onChange: onExpandedChange,\n state: isExpandedProp ?? isDefaultExpanded,\n });\n\n const hasChildren = hasChildrenProp ?? Children.count(children) > 0;\n const isSelectable = isRootManaged\n ? (isSelectableProp ?? true)\n : (isSelectableProp ?? onSelectedChange !== undefined);\n const isSelected = isRootManaged ? isRootSelected : (isSelectedProp ?? false);\n const isMultiple = selectionMode === 'multiple';\n\n const toggleExpanded = useCallback(() => {\n if (isDisabled) {\n return;\n }\n if (hasChildren) {\n setIsExpanded(!isExpanded);\n }\n }, [isDisabled, hasChildren, setIsExpanded, isExpanded]);\n\n useLayoutEffect(() => {\n registerItem(itemId, {\n isDisabled: isDisabled ?? false,\n isSelectable,\n isSelected,\n onSelectedChange,\n parentId,\n toggleExpanded,\n });\n }, [\n isDisabled,\n isSelectable,\n isSelected,\n itemId,\n onSelectedChange,\n parentId,\n registerItem,\n toggleExpanded,\n ]);\n\n useLayoutEffect(() => {\n return () => registerItem(itemId, null);\n }, [itemId, registerItem]);\n\n useEffect(() => {\n if (!isRootManaged) {\n return;\n }\n if (idProp === undefined) {\n needleWarningMessage(\n 'TreeView.Item needs an `id` when the tree manages selection with `selectedIds`.',\n );\n }\n if (isSelectedProp !== undefined || onSelectedChange !== undefined) {\n needleWarningMessage(\n 'TreeView.Item `isSelected` and `onSelectedChange` are ignored when the tree manages selection with `selectedIds`.',\n );\n }\n }, [idProp, isRootManaged, isSelectedProp, onSelectedChange]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n if (isDisabled) {\n return;\n }\n setFocusedId(itemId);\n onSelectionIntent(itemId, getSelectionIntent(event));\n },\n [isDisabled, setFocusedId, itemId, onSelectionIntent],\n );\n\n const handleChevronClick = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n if (isDisabled) {\n return;\n }\n setFocusedId(itemId);\n toggleExpanded();\n },\n [isDisabled, setFocusedId, itemId, toggleExpanded],\n );\n\n const handleMenuClose = useCallback(() => {\n setIsMenuOpen(false);\n if (didOpenViaKeyboard.current) {\n itemRef.current?.focus();\n didOpenViaKeyboard.current = false;\n }\n }, []);\n\n const handleCustomEvents = useCallback(\n (event: Event) => {\n if (event.type === TREE_EVENTS.expand) {\n event.stopPropagation();\n if (hasChildren && !isExpanded && !isDisabled) {\n setIsExpanded(true);\n }\n } else if (event.type === TREE_EVENTS.collapse) {\n event.stopPropagation();\n if (hasChildren && isExpanded && !isDisabled) {\n setIsExpanded(false);\n }\n } else if (event.type === TREE_EVENTS.action) {\n event.stopPropagation();\n if (actionMenuItems && !isDisabled) {\n didOpenViaKeyboard.current = true;\n setIsMenuOpen(true);\n }\n }\n },\n [actionMenuItems, hasChildren, isExpanded, isDisabled, setIsExpanded],\n );\n\n const callbackRef = useCallback(\n (node: HTMLDivElement | null) => {\n const prev = itemRef.current;\n if (prev) {\n prev.removeEventListener(TREE_EVENTS.expand, handleCustomEvents);\n prev.removeEventListener(TREE_EVENTS.collapse, handleCustomEvents);\n prev.removeEventListener(TREE_EVENTS.action, handleCustomEvents);\n }\n (itemRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (node) {\n node.addEventListener(TREE_EVENTS.expand, handleCustomEvents);\n node.addEventListener(TREE_EVENTS.collapse, handleCustomEvents);\n node.addEventListener(TREE_EVENTS.action, handleCustomEvents);\n }\n },\n [handleCustomEvents],\n );\n\n const mergedRef = useMergeRefs([callbackRef, ref]);\n\n const selectionAriaProps = (() => {\n if (!isSelectable) {\n return {};\n }\n if (isMultiple) {\n return {\n 'aria-checked': isIndeterminate ? ('mixed' as const) : isSelected,\n };\n }\n return { 'aria-selected': isSelected };\n })();\n\n const edgeClass =\n edge === undefined ? undefined : `ndl-tree-view-new-item--selected-${edge}`;\n\n const childContextValue = useMemo(\n () => ({\n ...treeViewContext,\n level: treeViewContext.level + 1,\n parentId: itemId,\n }),\n [itemId, treeViewContext],\n );\n\n // Same caching as in Root: keeps child element identity stable across\n // renders of this item (selection, focus, expansion) so unchanged\n // descendants bail out of re-rendering.\n const annotatedChildren = useMemo(\n () => annotateTreeItems(children),\n [children],\n );\n\n const itemElement = (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events -- keyboard handled on tree root; aria-selected/aria-checked applied via spread\n <div\n ref={mergedRef}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props -- aria-selected/aria-checked applied conditionally via spread\n role=\"treeitem\"\n {...selectionAriaProps}\n aria-expanded={hasChildren ? isExpanded : undefined}\n aria-owns={hasChildren ? groupId : undefined}\n aria-disabled={isDisabled || undefined}\n aria-busy={isLoading || undefined}\n aria-keyshortcuts={actionMenuItems ? 'Shift+F10' : undefined}\n aria-labelledby={titleId}\n aria-level={level}\n tabIndex={isFocused ? 0 : -1}\n className={classNames('ndl-tree-view-new-item', className, edgeClass, {\n 'ndl-tree-view-new-item--disabled': isDisabled,\n 'ndl-tree-view-new-item--parent': hasChildren,\n 'ndl-tree-view-new-item--selected': isSelected && isSelectable,\n })}\n style={{ '--tree-level': level - 1, ...style } as React.CSSProperties}\n onClick={(event) => {\n event.stopPropagation();\n handleClick(event);\n }}\n {...htmlAttributes}\n {...restProps}\n id={itemId}\n >\n <div\n className={classNames('ndl-tree-view-new-item-content', {\n 'ndl-tree-view-new-item-content--parent': hasChildren,\n })}\n >\n {hasChildren && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -- keyboard handled on tree root\n <span\n className=\"ndl-tree-view-new-chevron\"\n aria-disabled={isDisabled}\n onClick={handleChevronClick}\n >\n <ChevronRightIconOutline\n className={classNames('ndl-tree-view-new-chevron-icon', {\n 'ndl-tree-view-new-chevron-icon--open': isExpanded,\n })}\n />\n </span>\n )}\n {leadingVisual && (\n <div className=\"ndl-tree-view-new-item-content-leading-visual\">\n {leadingVisual}\n </div>\n )}\n {isMultiple && isSelectable && (\n <div className=\"ndl-tree-view-new-checkbox\" inert>\n <Checkbox\n style={{ borderWidth: '1.5px' }}\n ariaLabel=\"Select\"\n isChecked={isSelected}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled}\n onChange={noop}\n />\n </div>\n )}\n <div id={titleId} className=\"ndl-tree-view-new-item-content-title\">\n {title}\n </div>\n {trailingContent && (\n <div className=\"ndl-tree-view-new-item-content-trailing-content\">\n {trailingContent}\n </div>\n )}\n {actionMenuItems && (\n <div\n className={classNames('ndl-tree-view-new-action', {\n 'ndl-tree-view-new-action--visible': isMenuOpen,\n })}\n >\n <CleanIconButton\n ref={actionButtonRef}\n size=\"small\"\n description={null}\n isDisabled={isDisabled}\n style={{ height: '24px', width: '24px' }}\n htmlAttributes={{\n 'aria-expanded': isMenuOpen || undefined,\n 'aria-haspopup': 'menu',\n 'aria-label': 'Actions',\n onClick: (event: React.MouseEvent) => {\n event.stopPropagation();\n didOpenViaKeyboard.current = false;\n setIsMenuOpen((prev) => !prev);\n },\n tabIndex: -1,\n }}\n >\n <EllipsisHorizontalIconOutline />\n </CleanIconButton>\n <Menu\n isOpen={isMenuOpen}\n anchorRef={actionButtonRef}\n onClose={handleMenuClose}\n {...actionMenuProps}\n >\n {actionMenuItems}\n </Menu>\n </div>\n )}\n </div>\n </div>\n );\n\n return (\n <>\n <ConditionalWrap\n shouldWrap={tooltipContent !== undefined && tooltipContent !== null}\n wrap={(children) => (\n <Tooltip\n type=\"simple\"\n hoverDelay={{ close: 0, open: 500 }}\n isDisabled={isMenuOpen}\n followCursor=\"initial\"\n {...tooltipProps?.root}\n >\n <Tooltip.Trigger hasButtonWrapper {...tooltipProps?.trigger}>\n {children}\n </Tooltip.Trigger>\n <Tooltip.Content {...tooltipProps?.content}>\n {tooltipContent}\n </Tooltip.Content>\n </Tooltip>\n )}\n >\n {itemElement}\n </ConditionalWrap>\n {hasChildren && (\n <TreeViewContext.Provider value={childContextValue}>\n <div\n role=\"group\"\n id={groupId}\n hidden={!isExpanded}\n style={{ '--tree-level': level - 1 } as React.CSSProperties}\n >\n {annotatedChildren}\n </div>\n </TreeViewContext.Provider>\n )}\n </>\n );\n};\n\ntype SkeletonItemProps = {\n /** The number of rows to render. */\n rows?: number;\n};\n\n/**\n * A skeleton placeholder for tree items that are being loaded. Renders one or\n * more `Skeleton` rows at the current nesting depth. The element is\n * `aria-hidden` since it is purely a visual indicator and not interactive.\n *\n * Typically used inside a `TreeView.Item` that has `isLoading` set, to give\n * the user a visual hint that child items are being fetched.\n *\n * @example\n * ```tsx\n * <TreeView.Item title=\"Lazy folder\" hasChildren isLoading isExpanded>\n * {isLoading && <TreeView.SkeletonItem rows={3} />}\n * </TreeView.Item>\n * ```\n */\nconst SkeletonItem = ({\n rows = 1,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: CommonProps<'div', SkeletonItemProps>) => {\n const { level } = useContext(TreeViewContext);\n return (\n <div\n ref={ref}\n aria-hidden=\"true\"\n className={classNames('ndl-tree-view-new-skeleton', className)}\n style={{ '--tree-level': level - 1, ...style } as React.CSSProperties}\n {...htmlAttributes}\n {...restProps}\n >\n {Array.from({ length: rows }, (_unused, index) => (\n <Skeleton key={index} height=\"18px\" width=\"100%\" />\n ))}\n </div>\n );\n};\n\n/**\n * @remarks\n * Selection can be managed per item, with `isSelected` and `onSelectedChange`\n * on each `TreeView.Item`, or by the tree itself, by passing `selectedIds` (or\n * `defaultSelectedIds`) together with `onSelectedIdsChange`. When the tree\n * manages selection, every item needs an `id`, and each item's own\n * `isSelected` and `onSelectedChange` are ignored.\n *\n * The available selection modes are:\n *\n * - `single` — one item at a time. An unmodified click selects the clicked item and never clears it.\n * - `multiple` — multi-select with checkboxes. An unmodified click toggles an item, and `Shift` repeats that across a range without clearing anything outside it.\n * - `multiple-replace` — multi-select without checkboxes. An unmodified click selects only that item, `Cmd`/`Ctrl` toggles it and moves the anchor, and `Shift` extends from that anchor while retaining its selection snapshot. `Shift` + arrow extends the range.\n */\nconst TreeView = Object.assign(Root, { Item, SkeletonItem });\nexport { TreeView };\n"]}
|
|
@@ -47,7 +47,7 @@ const Component = () => {
|
|
|
47
47
|
const [selectedIds, setSelectedIds] = useState([]);
|
|
48
48
|
const renderNode = (node) => {
|
|
49
49
|
var _a;
|
|
50
|
-
return (_jsx(TreeView.Item, { id: node.id, title: node.title,
|
|
50
|
+
return (_jsx(TreeView.Item, { id: node.id, title: node.title, isDefaultExpanded: true, leadingVisual: node.children === undefined ? (_jsx(DocumentIconOutline, {})) : (_jsx(FolderIconSolid, {})), children: (_a = node.children) === null || _a === void 0 ? void 0 : _a.map(renderNode) }, node.id));
|
|
51
51
|
};
|
|
52
52
|
return (_jsxs(_Fragment, { children: [_jsxs("p", { style: { marginBottom: '8px' }, children: ["700 items, ", selectedIds.length, " selected"] }), _jsx(TreeView, { ariaLabel: "Large file explorer", selectionMode: "multiple-replace", selectedIds: selectedIds, onSelectedIdsChange: setSelectedIds, children: files.map(renderNode) })] }));
|
|
53
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-view-large.story.js","sourceRoot":"","sources":["../../../../../src/next/tree-view/stories/tree-view-large.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQjC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,KAAK,GAAe,KAAK,CAAC,IAAI,CAClC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC5B,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACpE,EAAE,EAAE,QAAQ,WAAW,IAAI,QAAQ,IAAI,SAAS,EAAE;YAClD,KAAK,EAAE,QAAQ,WAAW,IAAI,QAAQ,IAAI,SAAS,MAAM;SAC1D,CAAC,CAAC;QACH,EAAE,EAAE,aAAa,WAAW,IAAI,QAAQ,EAAE;QAC1C,KAAK,EAAE,aAAa,WAAW,IAAI,QAAQ,EAAE;KAC9C,CAAC,CAAC;IACH,EAAE,EAAE,UAAU,WAAW,EAAE;IAC3B,KAAK,EAAE,UAAU,WAAW,EAAE;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;;QAAC,OAAA,CACrC,KAAC,QAAQ,CAAC,IAAI,IAEZ,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,
|
|
1
|
+
{"version":3,"file":"tree-view-large.story.js","sourceRoot":"","sources":["../../../../../src/next/tree-view/stories/tree-view-large.story.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,yCAAyC,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQjC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,KAAK,GAAe,KAAK,CAAC,IAAI,CAClC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC5B,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACpE,EAAE,EAAE,QAAQ,WAAW,IAAI,QAAQ,IAAI,SAAS,EAAE;YAClD,KAAK,EAAE,QAAQ,WAAW,IAAI,QAAQ,IAAI,SAAS,MAAM;SAC1D,CAAC,CAAC;QACH,EAAE,EAAE,aAAa,WAAW,IAAI,QAAQ,EAAE;QAC1C,KAAK,EAAE,aAAa,WAAW,IAAI,QAAQ,EAAE;KAC9C,CAAC,CAAC;IACH,EAAE,EAAE,UAAU,WAAW,EAAE;IAC3B,KAAK,EAAE,UAAU,WAAW,EAAE;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;;QAAC,OAAA,CACrC,KAAC,QAAQ,CAAC,IAAI,IAEZ,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,iBAAiB,QACjB,aAAa,EACX,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,KAAC,mBAAmB,KAAG,CACxB,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,KAAG,CACpB,YAGF,MAAA,IAAI,CAAC,QAAQ,0CAAE,GAAG,CAAC,UAAU,CAAC,IAZ1B,IAAI,CAAC,EAAE,CAaE,CACjB,CAAA;KAAA,CAAC;IAEF,OAAO,CACL,8BACE,aAAG,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,4BACnB,WAAW,CAAC,MAAM,iBAC5B,EACJ,KAAC,QAAQ,IACP,SAAS,EAAC,qBAAqB,EAC/B,aAAa,EAAC,kBAAkB,EAChC,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,cAAc,YAElC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GACb,IACV,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["/*!\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { DocumentIconOutline, FolderIconSolid } from '@neo4j-ndl/react/icons';\nimport { TreeView } from '@neo4j-ndl/react/next';\nimport { useState } from 'react';\n\ntype FileNode = {\n children?: FileNode[];\n id: string;\n title: string;\n};\n\nconst TOP_FOLDER_COUNT = 7;\nconst SUBFOLDER_COUNT = 9;\nconst FILE_COUNT = 10;\n\n/**\n * 7 top folders + 63 subfolders + 630 files = 700 items, all expanded so every\n * row is mounted and visible. Exercises the worst-case performance paths:\n * arrow-key navigation, Shift ranges, and the multiple-replace edge styling.\n */\nconst files: FileNode[] = Array.from(\n { length: TOP_FOLDER_COUNT },\n (_unused, folderIndex) => ({\n children: Array.from({ length: SUBFOLDER_COUNT }, (_unused, subIndex) => ({\n children: Array.from({ length: FILE_COUNT }, (_unused, fileIndex) => ({\n id: `file-${folderIndex}-${subIndex}-${fileIndex}`,\n title: `file-${folderIndex}-${subIndex}-${fileIndex}.txt`,\n })),\n id: `subfolder-${folderIndex}-${subIndex}`,\n title: `Subfolder ${folderIndex}.${subIndex}`,\n })),\n id: `folder-${folderIndex}`,\n title: `Folder ${folderIndex}`,\n }),\n);\n\nconst Component = () => {\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n\n const renderNode = (node: FileNode) => (\n <TreeView.Item\n key={node.id}\n id={node.id}\n title={node.title}\n isDefaultExpanded\n leadingVisual={\n node.children === undefined ? (\n <DocumentIconOutline />\n ) : (\n <FolderIconSolid />\n )\n }\n >\n {node.children?.map(renderNode)}\n </TreeView.Item>\n );\n\n return (\n <>\n <p style={{ marginBottom: '8px' }}>\n 700 items, {selectedIds.length} selected\n </p>\n <TreeView\n ariaLabel=\"Large file explorer\"\n selectionMode=\"multiple-replace\"\n selectedIds={selectedIds}\n onSelectedIdsChange={setSelectedIds}\n >\n {files.map(renderNode)}\n </TreeView>\n </>\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -30,7 +30,7 @@ import { useState } from 'react';
|
|
|
30
30
|
*/
|
|
31
31
|
const Component = () => {
|
|
32
32
|
const [selectedIds, setSelectedIds] = useState([]);
|
|
33
|
-
return (_jsxs(TreeView, { ariaLabel: "File explorer", selectionMode: "multiple-replace", selectedIds: selectedIds, onSelectedIdsChange: setSelectedIds, children: [_jsxs(TreeView.Item, { id: "documents", title: "Documents", hasChildren: true,
|
|
33
|
+
return (_jsxs(TreeView, { ariaLabel: "File explorer", selectionMode: "multiple-replace", selectedIds: selectedIds, onSelectedIdsChange: setSelectedIds, children: [_jsxs(TreeView.Item, { id: "documents", title: "Documents", hasChildren: true, isDefaultExpanded: true, leadingVisual: _jsx(FolderIconSolid, {}), children: [_jsxs(TreeView.Item, { id: "work", title: "Work", hasChildren: true, isDefaultExpanded: true, leadingVisual: _jsx(FolderIconSolid, {}), children: [_jsx(TreeView.Item, { id: "report", title: "Report.pdf", isDisabled: true, leadingVisual: _jsx(DocumentIconOutline, {}) }), _jsx(TreeView.Item, { id: "presentation", title: "Presentation.pptx", leadingVisual: _jsx(DocumentIconOutline, {}) })] }), _jsx(TreeView.Item, { id: "resume", title: "Resume.pdf", leadingVisual: _jsx(DocumentIconOutline, {}) })] }), _jsxs(TreeView.Item, { id: "images", title: "Images", hasChildren: true, leadingVisual: _jsx(FolderIconSolid, {}), children: [_jsx(TreeView.Item, { id: "photo", title: "Photo.jpg", leadingVisual: _jsx(PhotoIconOutline, {}) }), _jsx(TreeView.Item, { id: "screenshot", title: "Screenshot.png", leadingVisual: _jsx(PhotoIconOutline, {}) })] })] }));
|
|
34
34
|
};
|
|
35
35
|
export default Component;
|
|
36
36
|
//# sourceMappingURL=tree-view-multiple-replace.story.js.map
|