@neo4j-ndl/react 4.25.10 → 5.0.0-alpha.0.b2b2481
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/switch/stories/switch-disabled.story.js +1 -1
- package/lib/cjs/switch/stories/switch-disabled.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/switch/stories/switch-disabled.story.js +1 -1
- package/lib/esm/switch/stories/switch-disabled.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 +6 -4
- package/skills/ndl-react/SKILL.md +22 -20
- 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 +5 -5
- package/skills/ndl-react/components/clean-icon-button.md +9 -103
- 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/switch.md +1 -1
- 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":"TreeView.js","sourceRoot":"","sources":["../../../src/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 */\nimport {\n type Announcements,\n closestCenter,\n defaultDropAnimation,\n DndContext,\n type DragEndEvent,\n type DragMoveEvent,\n type DragOverEvent,\n DragOverlay,\n type DragStartEvent,\n type DropAnimation,\n KeyboardSensor,\n MeasuringStrategy,\n PointerSensor,\n type UniqueIdentifier,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n arrayMove,\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport type React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { type HtmlAttributes } from '../_common/types';\nimport { sortableTreeKeyboardCoordinates } from './tree-view-keyboard-coordinates';\nimport {\n type FlattenedTreeItem,\n type ItemChangedReason,\n type TreeItem,\n type TreeItemComponent,\n} from './tree-view-types';\nimport {\n buildTree,\n flattenTree,\n getProjection,\n removeChildrenOf,\n type SensorContext,\n transformToString,\n} from './tree-view-utils';\nimport { TreeItemWrapper } from './TreeItemWrapper';\nimport { SortableTreeViewItem } from './TreeViewItem';\nimport { TreeViewTextItem } from './TreeViewTextItem';\n\nconst indentationWidth = 20;\nconst ACTIVE_PLACEHOLDER_ID = 'ndl-active-tree-item';\n\nconst dropAnimationConfig: DropAnimation = {\n easing: 'ease-out',\n keyframes({ transform }) {\n return [\n {\n opacity: 1,\n transform: transformToString(transform.initial),\n },\n {\n opacity: 0,\n transform: transformToString({\n ...transform.final,\n // oxlint-disable-next-line id-length\n y: transform.final.y + 5,\n // oxlint-disable-next-line id-length\n x: transform.final.x + 5,\n }),\n },\n ];\n },\n sideEffects({ active }) {\n active.node.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: defaultDropAnimation.duration,\n easing: defaultDropAnimation.easing,\n });\n },\n};\n\nexport interface TreeViewProps<\n T extends Record<string, unknown>,\n E extends HTMLElement,\n> extends React.HTMLAttributes<HTMLOListElement> {\n /** The items to be displayed in the tree view */\n items: TreeItem<T>[];\n /** A function that is called when the items in the tree view change */\n onItemsChanged: (\n newItems: TreeItem<T>[],\n itemChangedReason: ItemChangedReason<T>,\n ) => void;\n /** The component to use for the tree items, if not provided the default component will be used */\n TreeItemComponent?: TreeItemComponent<T, E>;\n /** HTML attributes */\n htmlAttributes?: HtmlAttributes<'ol'>;\n}\n\nconst TreeViewComponent = function TreeView<\n T extends Record<string, unknown>,\n E extends HTMLElement,\n>({\n items,\n TreeItemComponent,\n onItemsChanged,\n htmlAttributes,\n ...restProps\n}: TreeViewProps<T, E>) {\n const flattenItems = useMemo(() => flattenTree(items), [items]);\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n const [overId, setOverId] = useState<UniqueIdentifier | null>(null);\n const [focusedRowId, setFocusedRowId] = useState<UniqueIdentifier | null>(\n null,\n );\n\n const [currentPosition, setCurrentPosition] = useState<{\n parentId: UniqueIdentifier | null;\n overId: UniqueIdentifier;\n } | null>(null);\n const [offsetLeft, setOffsetLeft] = useState(0);\n\n /* ------------------------------ Setup of Data ------------------------------ */\n\n const flattenedAndRemovedCollapsedItems = useMemo(() => {\n const collapsedItemsIds = flattenItems\n .filter((item) => item.canHaveSubItems && item.isCollapsed)\n .map((item) => item.id);\n\n return removeChildrenOf(\n [...flattenItems],\n activeId !== null ? [activeId, ...collapsedItemsIds] : collapsedItemsIds,\n );\n }, [activeId, flattenItems]);\n\n const activeItem = useMemo(\n () => (activeId ? flattenItems.find(({ id }) => id === activeId) : null),\n [activeId, flattenItems],\n );\n\n const flattenedAndRemovedCollapsedItemsWithActive = useMemo(() => {\n const collapsedItems = flattenItems.reduce<UniqueIdentifier[]>(\n (acc, item) => {\n if (item.canHaveSubItems && item.isCollapsed) {\n return [...acc, item.id];\n }\n return acc;\n },\n [],\n );\n\n const ItemsWithCollapsedRemoved = removeChildrenOf(\n flattenItems,\n activeId ? [activeId, ...collapsedItems] : collapsedItems,\n );\n const newArray: FlattenedTreeItem<T>[] = [];\n for (const item of ItemsWithCollapsedRemoved) {\n newArray.push(item);\n if (item.id === activeId) {\n newArray.push({\n ...item,\n id: ACTIVE_PLACEHOLDER_ID,\n });\n }\n }\n\n return newArray;\n }, [flattenItems, activeId]);\n\n if (activeItem?.canHaveSubItems && !activeItem?.isCollapsed) {\n flattenedAndRemovedCollapsedItems.push({\n ...activeItem,\n id: ACTIVE_PLACEHOLDER_ID,\n });\n }\n\n const sensorContext: SensorContext<T> = useRef({\n items: flattenedAndRemovedCollapsedItemsWithActive,\n offset: offsetLeft,\n });\n\n const coordinateGetter = useMemo(() => {\n sensorContext.current.items = flattenedAndRemovedCollapsedItemsWithActive;\n sensorContext.current.offset = offsetLeft;\n\n return sortableTreeKeyboardCoordinates<T>(\n sensorContext,\n true,\n indentationWidth,\n );\n }, [flattenedAndRemovedCollapsedItemsWithActive, offsetLeft]);\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: coordinateGetter,\n }),\n );\n\n const projected = useMemo(\n () =>\n activeId && overId\n ? getProjection(\n flattenedAndRemovedCollapsedItemsWithActive,\n activeId,\n overId,\n offsetLeft,\n indentationWidth,\n )\n : null,\n [activeId, overId, flattenedAndRemovedCollapsedItemsWithActive, offsetLeft],\n );\n\n const hasSelectableItems = useMemo(\n () => flattenItems.some((item) => item.isSelected !== undefined),\n [flattenItems],\n );\n\n const itemAriaData = useMemo(() => {\n const visibleItems = flattenedAndRemovedCollapsedItemsWithActive.filter(\n (item) => item.id !== ACTIVE_PLACEHOLDER_ID,\n );\n\n return visibleItems.reduce<\n Record<UniqueIdentifier, { posInSet: number; setSize: number }>\n >((acc, item) => {\n const siblings = visibleItems.filter(\n (sibling) => sibling.parentId === item.parentId,\n );\n\n acc[item.id] = {\n posInSet: siblings.findIndex((sibling) => sibling.id === item.id) + 1,\n setSize: siblings.length,\n };\n\n return acc;\n }, {});\n }, [flattenedAndRemovedCollapsedItemsWithActive]);\n\n /* ------------------------------ Handlers ------------------------------ */\n function handleDragStart({ active }: DragStartEvent) {\n const activeId = active.id;\n setActiveId(activeId);\n setOverId(activeId);\n\n const activeItem = flattenItems.find(({ id }) => id === activeId);\n if (activeItem) {\n setCurrentPosition({\n overId: activeId,\n parentId: activeItem.parentId,\n });\n }\n\n document.body.style.setProperty('cursor', 'grabbing');\n }\n\n function handleDragMove({ delta }: DragMoveEvent) {\n setOffsetLeft(delta.x);\n }\n\n function handleDragOver({ over }: DragOverEvent) {\n setOverId(over?.id ?? null);\n }\n\n function resetState() {\n setOverId(null);\n setActiveId(null);\n setOffsetLeft(0);\n setCurrentPosition(null);\n\n document.body.style.setProperty('cursor', '');\n }\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n resetState();\n let overIndex = flattenItems.findIndex((item) => item.id === over?.id);\n\n if (over?.id === ACTIVE_PLACEHOLDER_ID) {\n overIndex = flattenItems.findIndex((item) => item.id === active.id);\n }\n if (projected && over) {\n const { depth, parentId } = projected;\n const clonedItems: FlattenedTreeItem<T>[] = [...flattenItems];\n\n const parentIndex = clonedItems.findIndex(\n (item) => item.id === parentId,\n );\n const activeIndex = clonedItems.findIndex(({ id }) => id === active.id);\n const activeTreeItem = clonedItems[activeIndex];\n\n clonedItems[activeIndex] = { ...activeTreeItem, depth, parentId };\n const parentItem = clonedItems[parentIndex];\n if (parentItem && parentItem.canHaveSubItems) {\n clonedItems[parentIndex] = { ...parentItem, isCollapsed: false };\n }\n const newItems = buildTree(\n arrayMove(clonedItems, activeIndex, overIndex),\n );\n\n onItemsChanged(newItems, {\n item: activeTreeItem,\n reason: 'dropped',\n });\n }\n },\n [flattenItems, onItemsChanged, projected],\n );\n\n function handleToggleCollapse(id: UniqueIdentifier) {\n const item = flattenItems.find((item) => item.id === id);\n if (!item || item.canHaveSubItems !== true) {\n return;\n }\n\n onItemsChanged(\n buildTree(\n flattenItems.map((item) => {\n if (item.id === id && item.canHaveSubItems === true) {\n return { ...item, isCollapsed: !item.isCollapsed };\n }\n return item;\n }),\n ),\n {\n item,\n reason: item.isCollapsed ? 'expanded' : 'collapsed',\n },\n );\n }\n\n function handleDragCancel() {\n resetState();\n }\n\n /* ------------------------------ Keyboard functions ------------------------------ */\n const getMovementAnnouncement = (\n eventName: string,\n activeId: UniqueIdentifier,\n overId?: UniqueIdentifier,\n ) => {\n if (overId && projected) {\n if (eventName !== 'onDragEnd') {\n if (\n currentPosition &&\n projected.parentId === currentPosition.parentId &&\n overId === currentPosition.overId\n ) {\n return;\n } else {\n setCurrentPosition({\n overId,\n parentId: projected.parentId,\n });\n }\n }\n\n const clonedItems: FlattenedTreeItem<T>[] = [\n ...flattenedAndRemovedCollapsedItemsWithActive,\n ];\n const overIndex = clonedItems.findIndex(({ id }) => id === overId);\n const activeIndex = clonedItems.findIndex(({ id }) => id === activeId);\n const sortedItems = arrayMove(clonedItems, activeIndex, overIndex);\n\n const previousItem = sortedItems[overIndex - 1];\n\n let announcement;\n const movedVerb = eventName === 'onDragEnd' ? 'dropped' : 'moved';\n const nestedVerb = eventName === 'onDragEnd' ? 'dropped' : 'nested';\n\n if (!previousItem) {\n const nextItem = sortedItems[overIndex + 1];\n announcement = `${activeId} was ${movedVerb} before ${nextItem.id}.`;\n } else {\n if (projected.depth > previousItem.depth) {\n announcement = `${activeId} was ${nestedVerb} under ${previousItem.id}.`;\n } else {\n let previousSibling: FlattenedTreeItem<T> | undefined = previousItem;\n while (previousSibling && projected.depth < previousSibling.depth) {\n const parentId: UniqueIdentifier | null = previousSibling.parentId;\n previousSibling = sortedItems.find(({ id }) => id === parentId);\n }\n\n if (previousSibling) {\n announcement = `${activeId} was ${movedVerb} after ${previousSibling.id}.`;\n }\n }\n }\n\n return announcement;\n }\n\n return;\n };\n\n const announcements: Announcements = {\n onDragCancel({ active }) {\n return `Moving was cancelled. ${active.id} was dropped in its original position.`;\n },\n onDragEnd({ active, over }) {\n return getMovementAnnouncement('onDragEnd', active.id, over?.id);\n },\n onDragMove({ active, over }) {\n return getMovementAnnouncement('onDragMove', active.id, over?.id);\n },\n onDragOver({ active, over }) {\n return getMovementAnnouncement('onDragOver', active.id, over?.id);\n },\n onDragStart({ active }) {\n return `Picked up ${active.id}.`;\n },\n };\n /* ------------------------------ Visual ------------------------------ */\n function getTrailList() {\n const trails: Record<\n UniqueIdentifier,\n ('none' | 'straight' | 'straight-curved' | 'curved')[]\n > = {};\n // Loop through the items in reverse\n [...flattenedAndRemovedCollapsedItemsWithActive]\n .reverse()\n .forEach((item, itemIndex, reversedList) => {\n const trailList: (\n | 'none'\n | 'straight'\n | 'straight-curved'\n | 'curved'\n )[] = [];\n const nextItem = reversedList[itemIndex - 1];\n // Loop through the depth of the item\n\n for (let trailDepth = 0; trailDepth < item.depth; trailDepth++) {\n // Not closest to the item so should be straight or none\n if (trailDepth < item.depth - 1) {\n if (nextItem === undefined) {\n trailList.push('none');\n continue;\n } else if (trails[nextItem?.id][trailDepth] === 'none') {\n trailList.push('none');\n continue;\n } else if (nextItem && nextItem.depth <= trailDepth) {\n trailList.push('none');\n continue;\n }\n trailList.push('straight');\n } else {\n if (\n (nextItem && trails[nextItem?.id][trailDepth] === 'none') ||\n nextItem === undefined ||\n nextItem.depth <= trailDepth\n ) {\n trailList.push('curved');\n } else {\n trailList.push('straight-curved');\n }\n }\n }\n trails[item.id] = trailList;\n });\n return trails;\n }\n\n const measuring = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n };\n\n const trails = getTrailList();\n const rowIdWithFocus =\n focusedRowId ?? flattenedAndRemovedCollapsedItemsWithActive[0]?.id;\n return (\n <DndContext\n accessibility={{ announcements }}\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n onDragMove={handleDragMove}\n onDragOver={handleDragOver}\n onDragCancel={handleDragCancel}\n measuring={measuring}\n >\n <SortableContext\n items={flattenedAndRemovedCollapsedItemsWithActive.map(\n (item) => item.id,\n )}\n strategy={verticalListSortingStrategy}\n >\n <ol\n className=\"ndl-tree-view-list\"\n role=\"tree\"\n aria-multiselectable={hasSelectableItems ? true : undefined}\n {...restProps}\n {...htmlAttributes}\n >\n {flattenedAndRemovedCollapsedItemsWithActive.map((item) => (\n <SortableTreeViewItem<T, E>\n key={item.id}\n depth={\n item.id === activeId && projected ? projected.depth : item.depth\n }\n indentationWidth={indentationWidth}\n item={item}\n isLast={false}\n parent={\n flattenItems.find(\n (flatItem) => flatItem.id === item.parentId,\n ) ?? null\n }\n id={item.id}\n trails={trails[item.id]}\n keepGhostInPlace={item.id === ACTIVE_PLACEHOLDER_ID}\n TreeItemComponent={\n TreeItemComponent === undefined\n ? (TreeViewTextItem as TreeItemComponent<T, E>)\n : TreeItemComponent\n }\n onCollapse={() => handleToggleCollapse(item.id)}\n onItemsChanged={(newItems, itemChangedReason) =>\n onItemsChanged(buildTree(newItems), itemChangedReason)\n }\n items={flattenItems}\n ariaLevel={\n item.id === ACTIVE_PLACEHOLDER_ID ? undefined : item.depth + 1\n }\n ariaPosInSet={\n item.id === ACTIVE_PLACEHOLDER_ID\n ? undefined\n : itemAriaData[item.id]?.posInSet\n }\n ariaSetSize={\n item.id === ACTIVE_PLACEHOLDER_ID\n ? undefined\n : itemAriaData[item.id]?.setSize\n }\n tabIndex={item.id === rowIdWithFocus ? 0 : -1}\n onFocus={() => setFocusedRowId(item.id)}\n shouldDisableSorting={item.isSortable === false}\n />\n ))}\n </ol>\n {/* Portal is used to show the item the user drags */}\n {createPortal(\n <DragOverlay dropAnimation={dropAnimationConfig}></DragOverlay>,\n document.body,\n )}\n </SortableContext>\n </DndContext>\n );\n};\n\nconst TreeViewComponents = {\n SortableTreeViewItem,\n TreeItemWrapper,\n TreeViewTextItem,\n};\n\nexport const TreeView = Object.assign(TreeViewComponent, TreeViewComponents);\n"]}
|
|
1
|
+
{"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../src/tree-view/TreeView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wCAiBuB;AACvB,gDAI2B;AAE3B,iCAA+D;AAC/D,yCAAyC;AAGzC,qFAAmF;AAOnF,uDAO2B;AAC3B,uDAAoD;AACpD,iDAAsD;AACtD,yDAAsD;AAEtD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAErD,MAAM,mBAAmB,GAAkB;IACzC,MAAM,EAAE,UAAU;IAClB,SAAS,CAAC,EAAE,SAAS,EAAE;QACrB,OAAO;YACL;gBACE,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,IAAA,mCAAiB,EAAC,SAAS,CAAC,OAAO,CAAC;aAChD;YACD;gBACE,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,IAAA,mCAAiB,kCACvB,SAAS,CAAC,KAAK;oBAClB,qCAAqC;oBACrC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;oBACxB,qCAAqC;oBACrC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IACxB;aACH;SACF,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,EAAE,MAAM,EAAE;QACpB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;YACpD,QAAQ,EAAE,2BAAoB,CAAC,QAAQ;YACvC,MAAM,EAAE,2BAAoB,CAAC,MAAM;SACpC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAmBF,MAAM,iBAAiB,GAAG,SAAS,QAAQ,CAGzC,EAMoB;;QANpB,EACA,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,OAEM,EADjB,SAAS,cALZ,kEAMD,CADa;IAEZ,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,6BAAW,EAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC9C,IAAI,CACL,CAAC;IAEF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAG5C,IAAI,CAAC,CAAC;IAChB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAEhD,iFAAiF;IAEjF,MAAM,iCAAiC,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACrD,MAAM,iBAAiB,GAAG,YAAY;aACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC;aAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1B,OAAO,IAAA,kCAAgB,EACrB,CAAC,GAAG,YAAY,CAAC,EACjB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CACzE,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7B,MAAM,UAAU,GAAG,IAAA,eAAO,EACxB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACxE,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAC;IAEF,MAAM,2CAA2C,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QAEF,MAAM,yBAAyB,GAAG,IAAA,kCAAgB,EAChD,YAAY,EACZ,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAC1D,CAAC;QACF,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,yBAAyB,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,iCACR,IAAI,KACP,EAAE,EAAE,qBAAqB,IACzB,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,eAAe,KAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAA,EAAE,CAAC;QAC5D,iCAAiC,CAAC,IAAI,iCACjC,UAAU,KACb,EAAE,EAAE,qBAAqB,IACzB,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAqB,IAAA,cAAM,EAAC;QAC7C,KAAK,EAAE,2CAA2C;QAClD,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,aAAa,CAAC,OAAO,CAAC,KAAK,GAAG,2CAA2C,CAAC;QAC1E,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;QAE1C,OAAO,IAAA,gEAA+B,EACpC,aAAa,EACb,IAAI,EACJ,gBAAgB,CACjB,CAAC;IACJ,CAAC,EAAE,CAAC,2CAA2C,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,IAAA,iBAAU,EACxB,IAAA,gBAAS,EAAC,oBAAa,CAAC,EACxB,IAAA,gBAAS,EAAC,qBAAc,EAAE;QACxB,gBAAgB,EAAE,gBAAgB;KACnC,CAAC,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CACH,QAAQ,IAAI,MAAM;QAChB,CAAC,CAAC,IAAA,+BAAa,EACX,2CAA2C,EAC3C,QAAQ,EACR,MAAM,EACN,UAAU,EACV,gBAAgB,CACjB;QACH,CAAC,CAAC,IAAI,EACV,CAAC,QAAQ,EAAE,MAAM,EAAE,2CAA2C,EAAE,UAAU,CAAC,CAC5E,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAChC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,EAChE,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,2CAA2C,CAAC,MAAM,CACrE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,qBAAqB,CAC5C,CAAC;QAEF,OAAO,YAAY,CAAC,MAAM,CAExB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAChD,CAAC;YAEF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;gBACb,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;gBACrE,OAAO,EAAE,QAAQ,CAAC,MAAM;aACzB,CAAC;YAEF,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAElD,4EAA4E;IAC5E,SAAS,eAAe,CAAC,EAAE,MAAM,EAAkB;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAC3B,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEpB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAClE,IAAI,UAAU,EAAE,CAAC;YACf,kBAAkB,CAAC;gBACjB,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,cAAc,CAAC,EAAE,KAAK,EAAiB;QAC9C,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,cAAc,CAAC,EAAE,IAAI,EAAiB;;QAC7C,SAAS,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,mCAAI,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,UAAU;QACjB,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,aAAa,CAAC,CAAC,CAAC,CAAC;QACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,KAAmB,EAAE,EAAE;QACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAC/B,UAAU,EAAE,CAAC;QACb,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,CAAC,CAAC;QAEvE,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,MAAK,qBAAqB,EAAE,CAAC;YACvC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;YACtC,MAAM,WAAW,GAA2B,CAAC,GAAG,YAAY,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAC/B,CAAC;YACF,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAEhD,WAAW,CAAC,WAAW,CAAC,mCAAQ,cAAc,KAAE,KAAK,EAAE,QAAQ,GAAE,CAAC;YAClE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,UAAU,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;gBAC7C,WAAW,CAAC,WAAW,CAAC,mCAAQ,UAAU,KAAE,WAAW,EAAE,KAAK,GAAE,CAAC;YACnE,CAAC;YACD,MAAM,QAAQ,GAAG,IAAA,2BAAS,EACxB,IAAA,oBAAS,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAC/C,CAAC;YAEF,cAAc,CAAC,QAAQ,EAAE;gBACvB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EACD,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,CAC1C,CAAC;IAEF,SAAS,oBAAoB,CAAC,EAAoB;QAChD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,cAAc,CACZ,IAAA,2BAAS,EACP,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACpD,uCAAY,IAAI,KAAE,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAG;YACrD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,EACD;YACE,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;SACpD,CACF,CAAC;IACJ,CAAC;IAED,SAAS,gBAAgB;QACvB,UAAU,EAAE,CAAC;IACf,CAAC;IAED,sFAAsF;IACtF,MAAM,uBAAuB,GAAG,CAC9B,SAAiB,EACjB,QAA0B,EAC1B,MAAyB,EACzB,EAAE;QACF,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YACxB,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC9B,IACE,eAAe;oBACf,SAAS,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ;oBAC/C,MAAM,KAAK,eAAe,CAAC,MAAM,EACjC,CAAC;oBACD,OAAO;gBACT,CAAC;qBAAM,CAAC;oBACN,kBAAkB,CAAC;wBACjB,MAAM;wBACN,QAAQ,EAAE,SAAS,CAAC,QAAQ;qBAC7B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAA2B;gBAC1C,GAAG,2CAA2C;aAC/C,CAAC;YACF,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YACnE,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,IAAA,oBAAS,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAEnE,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEhD,IAAI,YAAY,CAAC;YACjB,MAAM,SAAS,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAClE,MAAM,UAAU,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEpE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC5C,YAAY,GAAG,GAAG,QAAQ,QAAQ,SAAS,WAAW,QAAQ,CAAC,EAAE,GAAG,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;oBACzC,YAAY,GAAG,GAAG,QAAQ,QAAQ,UAAU,UAAU,YAAY,CAAC,EAAE,GAAG,CAAC;gBAC3E,CAAC;qBAAM,CAAC;oBACN,IAAI,eAAe,GAAqC,YAAY,CAAC;oBACrE,OAAO,eAAe,IAAI,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;wBAClE,MAAM,QAAQ,GAA4B,eAAe,CAAC,QAAQ,CAAC;wBACnE,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;oBAClE,CAAC;oBAED,IAAI,eAAe,EAAE,CAAC;wBACpB,YAAY,GAAG,GAAG,QAAQ,QAAQ,SAAS,UAAU,eAAe,CAAC,EAAE,GAAG,CAAC;oBAC7E,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO;IACT,CAAC,CAAC;IAEF,MAAM,aAAa,GAAkB;QACnC,YAAY,CAAC,EAAE,MAAM,EAAE;YACrB,OAAO,yBAAyB,MAAM,CAAC,EAAE,wCAAwC,CAAC;QACpF,CAAC;QACD,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YACxB,OAAO,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YACzB,OAAO,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;YACzB,OAAO,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,WAAW,CAAC,EAAE,MAAM,EAAE;YACpB,OAAO,aAAa,MAAM,CAAC,EAAE,GAAG,CAAC;QACnC,CAAC;KACF,CAAC;IACF,0EAA0E;IAC1E,SAAS,YAAY;QACnB,MAAM,MAAM,GAGR,EAAE,CAAC;QACP,oCAAoC;QACpC,CAAC,GAAG,2CAA2C,CAAC;aAC7C,OAAO,EAAE;aACT,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;YACzC,MAAM,SAAS,GAKT,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC7C,qCAAqC;YAErC,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;gBAC/D,wDAAwD;gBACxD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC3B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,SAAS;oBACX,CAAC;yBAAM,IAAI,MAAM,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;wBACvD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,SAAS;oBACX,CAAC;yBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;wBACpD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACvB,SAAS;oBACX,CAAC;oBACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IACE,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC;wBACzD,QAAQ,KAAK,SAAS;wBACtB,QAAQ,CAAC,KAAK,IAAI,UAAU,EAC5B,CAAC;wBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;QAC9B,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,wBAAiB,CAAC,MAAM;SACnC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,cAAc,GAClB,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,MAAA,2CAA2C,CAAC,CAAC,CAAC,0CAAE,EAAE,CAAC;IACrE,OAAO,CACL,uBAAC,iBAAU,IACT,aAAa,EAAE,EAAE,aAAa,EAAE,EAChC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,oBAAa,EACjC,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,SAAS,YAEpB,wBAAC,0BAAe,IACd,KAAK,EAAE,2CAA2C,CAAC,GAAG,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAClB,EACD,QAAQ,EAAE,sCAA2B,aAErC,6CACE,SAAS,EAAC,oBAAoB,EAC9B,IAAI,EAAC,MAAM,0BACW,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IACvD,SAAS,EACT,cAAc,cAEjB,2CAA2C,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;wBAAC,OAAA,CACzD,uBAAC,mCAAoB,IAEnB,KAAK,EACH,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAElE,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,EACb,MAAM,EACJ,MAAA,YAAY,CAAC,IAAI,CACf,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAC5C,mCAAI,IAAI,EAEX,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EACvB,gBAAgB,EAAE,IAAI,CAAC,EAAE,KAAK,qBAAqB,EACnD,iBAAiB,EACf,iBAAiB,KAAK,SAAS;gCAC7B,CAAC,CAAE,mCAA4C;gCAC/C,CAAC,CAAC,iBAAiB,EAEvB,UAAU,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAC/C,cAAc,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAC9C,cAAc,CAAC,IAAA,2BAAS,EAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,EAExD,KAAK,EAAE,YAAY,EACnB,SAAS,EACP,IAAI,CAAC,EAAE,KAAK,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAEhE,YAAY,EACV,IAAI,CAAC,EAAE,KAAK,qBAAqB;gCAC/B,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,MAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,QAAQ,EAErC,WAAW,EACT,IAAI,CAAC,EAAE,KAAK,qBAAqB;gCAC/B,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,MAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,OAAO,EAEpC,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EACvC,oBAAoB,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,IAxC1C,IAAI,CAAC,EAAE,CAyCZ,CACH,CAAA;qBAAA,CAAC,IACC,EAEJ,IAAA,wBAAY,EACX,uBAAC,kBAAW,IAAC,aAAa,EAAE,mBAAmB,GAAgB,EAC/D,QAAQ,CAAC,IAAI,CACd,IACe,GACP,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,oBAAoB,EAApB,mCAAoB;IACpB,eAAe,EAAf,iCAAe;IACf,gBAAgB,EAAhB,mCAAgB;CACjB,CAAC;AAEF;;GAEG;AACU,QAAA,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,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 */\nimport {\n type Announcements,\n closestCenter,\n defaultDropAnimation,\n DndContext,\n type DragEndEvent,\n type DragMoveEvent,\n type DragOverEvent,\n DragOverlay,\n type DragStartEvent,\n type DropAnimation,\n KeyboardSensor,\n MeasuringStrategy,\n PointerSensor,\n type UniqueIdentifier,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n arrayMove,\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport type React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { type HtmlAttributes } from '../_common/types';\nimport { sortableTreeKeyboardCoordinates } from './tree-view-keyboard-coordinates';\nimport {\n type FlattenedTreeItem,\n type ItemChangedReason,\n type TreeItem,\n type TreeItemComponent,\n} from './tree-view-types';\nimport {\n buildTree,\n flattenTree,\n getProjection,\n removeChildrenOf,\n type SensorContext,\n transformToString,\n} from './tree-view-utils';\nimport { TreeItemWrapper } from './TreeItemWrapper';\nimport { SortableTreeViewItem } from './TreeViewItem';\nimport { TreeViewTextItem } from './TreeViewTextItem';\n\nconst indentationWidth = 20;\nconst ACTIVE_PLACEHOLDER_ID = 'ndl-active-tree-item';\n\nconst dropAnimationConfig: DropAnimation = {\n easing: 'ease-out',\n keyframes({ transform }) {\n return [\n {\n opacity: 1,\n transform: transformToString(transform.initial),\n },\n {\n opacity: 0,\n transform: transformToString({\n ...transform.final,\n // oxlint-disable-next-line id-length\n y: transform.final.y + 5,\n // oxlint-disable-next-line id-length\n x: transform.final.x + 5,\n }),\n },\n ];\n },\n sideEffects({ active }) {\n active.node.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: defaultDropAnimation.duration,\n easing: defaultDropAnimation.easing,\n });\n },\n};\n\nexport interface TreeViewProps<\n T extends Record<string, unknown>,\n E extends HTMLElement,\n> extends React.HTMLAttributes<HTMLOListElement> {\n /** The items to be displayed in the tree view */\n items: TreeItem<T>[];\n /** A function that is called when the items in the tree view change */\n onItemsChanged: (\n newItems: TreeItem<T>[],\n itemChangedReason: ItemChangedReason<T>,\n ) => void;\n /** The component to use for the tree items, if not provided the default component will be used */\n TreeItemComponent?: TreeItemComponent<T, E>;\n /** HTML attributes */\n htmlAttributes?: HtmlAttributes<'ol'>;\n}\n\nconst TreeViewComponent = function TreeView<\n T extends Record<string, unknown>,\n E extends HTMLElement,\n>({\n items,\n TreeItemComponent,\n onItemsChanged,\n htmlAttributes,\n ...restProps\n}: TreeViewProps<T, E>) {\n const flattenItems = useMemo(() => flattenTree(items), [items]);\n const [activeId, setActiveId] = useState<UniqueIdentifier | null>(null);\n const [overId, setOverId] = useState<UniqueIdentifier | null>(null);\n const [focusedRowId, setFocusedRowId] = useState<UniqueIdentifier | null>(\n null,\n );\n\n const [currentPosition, setCurrentPosition] = useState<{\n parentId: UniqueIdentifier | null;\n overId: UniqueIdentifier;\n } | null>(null);\n const [offsetLeft, setOffsetLeft] = useState(0);\n\n /* ------------------------------ Setup of Data ------------------------------ */\n\n const flattenedAndRemovedCollapsedItems = useMemo(() => {\n const collapsedItemsIds = flattenItems\n .filter((item) => item.canHaveSubItems && item.isCollapsed)\n .map((item) => item.id);\n\n return removeChildrenOf(\n [...flattenItems],\n activeId !== null ? [activeId, ...collapsedItemsIds] : collapsedItemsIds,\n );\n }, [activeId, flattenItems]);\n\n const activeItem = useMemo(\n () => (activeId ? flattenItems.find(({ id }) => id === activeId) : null),\n [activeId, flattenItems],\n );\n\n const flattenedAndRemovedCollapsedItemsWithActive = useMemo(() => {\n const collapsedItems = flattenItems.reduce<UniqueIdentifier[]>(\n (acc, item) => {\n if (item.canHaveSubItems && item.isCollapsed) {\n return [...acc, item.id];\n }\n return acc;\n },\n [],\n );\n\n const ItemsWithCollapsedRemoved = removeChildrenOf(\n flattenItems,\n activeId ? [activeId, ...collapsedItems] : collapsedItems,\n );\n const newArray: FlattenedTreeItem<T>[] = [];\n for (const item of ItemsWithCollapsedRemoved) {\n newArray.push(item);\n if (item.id === activeId) {\n newArray.push({\n ...item,\n id: ACTIVE_PLACEHOLDER_ID,\n });\n }\n }\n\n return newArray;\n }, [flattenItems, activeId]);\n\n if (activeItem?.canHaveSubItems && !activeItem?.isCollapsed) {\n flattenedAndRemovedCollapsedItems.push({\n ...activeItem,\n id: ACTIVE_PLACEHOLDER_ID,\n });\n }\n\n const sensorContext: SensorContext<T> = useRef({\n items: flattenedAndRemovedCollapsedItemsWithActive,\n offset: offsetLeft,\n });\n\n const coordinateGetter = useMemo(() => {\n sensorContext.current.items = flattenedAndRemovedCollapsedItemsWithActive;\n sensorContext.current.offset = offsetLeft;\n\n return sortableTreeKeyboardCoordinates<T>(\n sensorContext,\n true,\n indentationWidth,\n );\n }, [flattenedAndRemovedCollapsedItemsWithActive, offsetLeft]);\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: coordinateGetter,\n }),\n );\n\n const projected = useMemo(\n () =>\n activeId && overId\n ? getProjection(\n flattenedAndRemovedCollapsedItemsWithActive,\n activeId,\n overId,\n offsetLeft,\n indentationWidth,\n )\n : null,\n [activeId, overId, flattenedAndRemovedCollapsedItemsWithActive, offsetLeft],\n );\n\n const hasSelectableItems = useMemo(\n () => flattenItems.some((item) => item.isSelected !== undefined),\n [flattenItems],\n );\n\n const itemAriaData = useMemo(() => {\n const visibleItems = flattenedAndRemovedCollapsedItemsWithActive.filter(\n (item) => item.id !== ACTIVE_PLACEHOLDER_ID,\n );\n\n return visibleItems.reduce<\n Record<UniqueIdentifier, { posInSet: number; setSize: number }>\n >((acc, item) => {\n const siblings = visibleItems.filter(\n (sibling) => sibling.parentId === item.parentId,\n );\n\n acc[item.id] = {\n posInSet: siblings.findIndex((sibling) => sibling.id === item.id) + 1,\n setSize: siblings.length,\n };\n\n return acc;\n }, {});\n }, [flattenedAndRemovedCollapsedItemsWithActive]);\n\n /* ------------------------------ Handlers ------------------------------ */\n function handleDragStart({ active }: DragStartEvent) {\n const activeId = active.id;\n setActiveId(activeId);\n setOverId(activeId);\n\n const activeItem = flattenItems.find(({ id }) => id === activeId);\n if (activeItem) {\n setCurrentPosition({\n overId: activeId,\n parentId: activeItem.parentId,\n });\n }\n\n document.body.style.setProperty('cursor', 'grabbing');\n }\n\n function handleDragMove({ delta }: DragMoveEvent) {\n setOffsetLeft(delta.x);\n }\n\n function handleDragOver({ over }: DragOverEvent) {\n setOverId(over?.id ?? null);\n }\n\n function resetState() {\n setOverId(null);\n setActiveId(null);\n setOffsetLeft(0);\n setCurrentPosition(null);\n\n document.body.style.setProperty('cursor', '');\n }\n\n const handleDragEnd = useCallback(\n (event: DragEndEvent) => {\n const { active, over } = event;\n resetState();\n let overIndex = flattenItems.findIndex((item) => item.id === over?.id);\n\n if (over?.id === ACTIVE_PLACEHOLDER_ID) {\n overIndex = flattenItems.findIndex((item) => item.id === active.id);\n }\n if (projected && over) {\n const { depth, parentId } = projected;\n const clonedItems: FlattenedTreeItem<T>[] = [...flattenItems];\n\n const parentIndex = clonedItems.findIndex(\n (item) => item.id === parentId,\n );\n const activeIndex = clonedItems.findIndex(({ id }) => id === active.id);\n const activeTreeItem = clonedItems[activeIndex];\n\n clonedItems[activeIndex] = { ...activeTreeItem, depth, parentId };\n const parentItem = clonedItems[parentIndex];\n if (parentItem && parentItem.canHaveSubItems) {\n clonedItems[parentIndex] = { ...parentItem, isCollapsed: false };\n }\n const newItems = buildTree(\n arrayMove(clonedItems, activeIndex, overIndex),\n );\n\n onItemsChanged(newItems, {\n item: activeTreeItem,\n reason: 'dropped',\n });\n }\n },\n [flattenItems, onItemsChanged, projected],\n );\n\n function handleToggleCollapse(id: UniqueIdentifier) {\n const item = flattenItems.find((item) => item.id === id);\n if (!item || item.canHaveSubItems !== true) {\n return;\n }\n\n onItemsChanged(\n buildTree(\n flattenItems.map((item) => {\n if (item.id === id && item.canHaveSubItems === true) {\n return { ...item, isCollapsed: !item.isCollapsed };\n }\n return item;\n }),\n ),\n {\n item,\n reason: item.isCollapsed ? 'expanded' : 'collapsed',\n },\n );\n }\n\n function handleDragCancel() {\n resetState();\n }\n\n /* ------------------------------ Keyboard functions ------------------------------ */\n const getMovementAnnouncement = (\n eventName: string,\n activeId: UniqueIdentifier,\n overId?: UniqueIdentifier,\n ) => {\n if (overId && projected) {\n if (eventName !== 'onDragEnd') {\n if (\n currentPosition &&\n projected.parentId === currentPosition.parentId &&\n overId === currentPosition.overId\n ) {\n return;\n } else {\n setCurrentPosition({\n overId,\n parentId: projected.parentId,\n });\n }\n }\n\n const clonedItems: FlattenedTreeItem<T>[] = [\n ...flattenedAndRemovedCollapsedItemsWithActive,\n ];\n const overIndex = clonedItems.findIndex(({ id }) => id === overId);\n const activeIndex = clonedItems.findIndex(({ id }) => id === activeId);\n const sortedItems = arrayMove(clonedItems, activeIndex, overIndex);\n\n const previousItem = sortedItems[overIndex - 1];\n\n let announcement;\n const movedVerb = eventName === 'onDragEnd' ? 'dropped' : 'moved';\n const nestedVerb = eventName === 'onDragEnd' ? 'dropped' : 'nested';\n\n if (!previousItem) {\n const nextItem = sortedItems[overIndex + 1];\n announcement = `${activeId} was ${movedVerb} before ${nextItem.id}.`;\n } else {\n if (projected.depth > previousItem.depth) {\n announcement = `${activeId} was ${nestedVerb} under ${previousItem.id}.`;\n } else {\n let previousSibling: FlattenedTreeItem<T> | undefined = previousItem;\n while (previousSibling && projected.depth < previousSibling.depth) {\n const parentId: UniqueIdentifier | null = previousSibling.parentId;\n previousSibling = sortedItems.find(({ id }) => id === parentId);\n }\n\n if (previousSibling) {\n announcement = `${activeId} was ${movedVerb} after ${previousSibling.id}.`;\n }\n }\n }\n\n return announcement;\n }\n\n return;\n };\n\n const announcements: Announcements = {\n onDragCancel({ active }) {\n return `Moving was cancelled. ${active.id} was dropped in its original position.`;\n },\n onDragEnd({ active, over }) {\n return getMovementAnnouncement('onDragEnd', active.id, over?.id);\n },\n onDragMove({ active, over }) {\n return getMovementAnnouncement('onDragMove', active.id, over?.id);\n },\n onDragOver({ active, over }) {\n return getMovementAnnouncement('onDragOver', active.id, over?.id);\n },\n onDragStart({ active }) {\n return `Picked up ${active.id}.`;\n },\n };\n /* ------------------------------ Visual ------------------------------ */\n function getTrailList() {\n const trails: Record<\n UniqueIdentifier,\n ('none' | 'straight' | 'straight-curved' | 'curved')[]\n > = {};\n // Loop through the items in reverse\n [...flattenedAndRemovedCollapsedItemsWithActive]\n .reverse()\n .forEach((item, itemIndex, reversedList) => {\n const trailList: (\n | 'none'\n | 'straight'\n | 'straight-curved'\n | 'curved'\n )[] = [];\n const nextItem = reversedList[itemIndex - 1];\n // Loop through the depth of the item\n\n for (let trailDepth = 0; trailDepth < item.depth; trailDepth++) {\n // Not closest to the item so should be straight or none\n if (trailDepth < item.depth - 1) {\n if (nextItem === undefined) {\n trailList.push('none');\n continue;\n } else if (trails[nextItem?.id][trailDepth] === 'none') {\n trailList.push('none');\n continue;\n } else if (nextItem && nextItem.depth <= trailDepth) {\n trailList.push('none');\n continue;\n }\n trailList.push('straight');\n } else {\n if (\n (nextItem && trails[nextItem?.id][trailDepth] === 'none') ||\n nextItem === undefined ||\n nextItem.depth <= trailDepth\n ) {\n trailList.push('curved');\n } else {\n trailList.push('straight-curved');\n }\n }\n }\n trails[item.id] = trailList;\n });\n return trails;\n }\n\n const measuring = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n };\n\n const trails = getTrailList();\n const rowIdWithFocus =\n focusedRowId ?? flattenedAndRemovedCollapsedItemsWithActive[0]?.id;\n return (\n <DndContext\n accessibility={{ announcements }}\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n onDragMove={handleDragMove}\n onDragOver={handleDragOver}\n onDragCancel={handleDragCancel}\n measuring={measuring}\n >\n <SortableContext\n items={flattenedAndRemovedCollapsedItemsWithActive.map(\n (item) => item.id,\n )}\n strategy={verticalListSortingStrategy}\n >\n <ol\n className=\"ndl-tree-view-list\"\n role=\"tree\"\n aria-multiselectable={hasSelectableItems ? true : undefined}\n {...restProps}\n {...htmlAttributes}\n >\n {flattenedAndRemovedCollapsedItemsWithActive.map((item) => (\n <SortableTreeViewItem<T, E>\n key={item.id}\n depth={\n item.id === activeId && projected ? projected.depth : item.depth\n }\n indentationWidth={indentationWidth}\n item={item}\n isLast={false}\n parent={\n flattenItems.find(\n (flatItem) => flatItem.id === item.parentId,\n ) ?? null\n }\n id={item.id}\n trails={trails[item.id]}\n keepGhostInPlace={item.id === ACTIVE_PLACEHOLDER_ID}\n TreeItemComponent={\n TreeItemComponent === undefined\n ? (TreeViewTextItem as TreeItemComponent<T, E>)\n : TreeItemComponent\n }\n onCollapse={() => handleToggleCollapse(item.id)}\n onItemsChanged={(newItems, itemChangedReason) =>\n onItemsChanged(buildTree(newItems), itemChangedReason)\n }\n items={flattenItems}\n ariaLevel={\n item.id === ACTIVE_PLACEHOLDER_ID ? undefined : item.depth + 1\n }\n ariaPosInSet={\n item.id === ACTIVE_PLACEHOLDER_ID\n ? undefined\n : itemAriaData[item.id]?.posInSet\n }\n ariaSetSize={\n item.id === ACTIVE_PLACEHOLDER_ID\n ? undefined\n : itemAriaData[item.id]?.setSize\n }\n tabIndex={item.id === rowIdWithFocus ? 0 : -1}\n onFocus={() => setFocusedRowId(item.id)}\n shouldDisableSorting={item.isSortable === false}\n />\n ))}\n </ol>\n {/* Portal is used to show the item the user drags */}\n {createPortal(\n <DragOverlay dropAnimation={dropAnimationConfig}></DragOverlay>,\n document.body,\n )}\n </SortableContext>\n </DndContext>\n );\n};\n\nconst TreeViewComponents = {\n SortableTreeViewItem,\n TreeItemWrapper,\n TreeViewTextItem,\n};\n\n/**\n * @deprecated Use `TreeView` from `@neo4j-ndl/react/next` instead. This component is no longer maintained.\n */\nexport const TreeView = Object.assign(TreeViewComponent, TreeViewComponents);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewItem.js","sourceRoot":"","sources":["../../../src/tree-view/TreeViewItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,gDAI2B;AAC3B,+CAA2D;AAO3D,uDAAsD;
|
|
1
|
+
{"version":3,"file":"TreeViewItem.js","sourceRoot":"","sources":["../../../src/tree-view/TreeViewItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,gDAI2B;AAC3B,+CAA2D;AAO3D,uDAAsD;AAkCtD,MAAM,oBAAoB,GAAyB,CAAC,EAClD,SAAS,EACT,UAAU,GACX,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAiC/C,MAAM,+BAA+B,GAAG,SAAS,oBAAoB,CAGnE,EAsB4B;QAtB5B,EACA,EAAE,EACF,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,MAAM,EACN,oBAAoB;IACpB,wDAAwD;IACxD,0CAA0C;IAC1C,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,MAAM,EACN,cAAc,EACd,KAAK,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,OAAO,OAEqB,EADzB,SAAS,cArBZ,mPAsBD,CADa;IAEZ,MAAM,EACJ,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,GACP,GAAG,IAAA,sBAAW,EAAC;QACd,oBAAoB;QACpB,EAAE,EAAE,EAAE;QACN,UAAU,EAAE;YACV,QAAQ,EAAE,GAAG,EAAE,eAAe;YAC9B,MAAM,EAAE,+BAA+B;SACxC;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAkB;QAC3B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,mCAAiB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC/D,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,SAAS;KACpC,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,uBAAC,iBAAiB,kBAChB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,KAAK,IACf,SAAS,IACb,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,wBAAwB,EAAE,SAAS,EACnC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,eAAe,kCACV,UAAU,GACV,SAAS,GAEd,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,aAAa,EACzB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,IAChB,CACH,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,oBAAoB,GAAG,eAAK,CAAC,IAAI,CAC5C,+BAA+B,CACU,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 */\nimport { type UniqueIdentifier } from '@dnd-kit/core';\nimport {\n type AnimateLayoutChanges,\n useSortable,\n type UseSortableArguments,\n} from '@dnd-kit/sortable';\nimport React, { type CSSProperties, useMemo } from 'react';\n\nimport {\n type FlattenedTreeItem,\n type ItemChangedReason,\n type TreeItemComponent,\n} from './tree-view-types';\nimport { transformToString } from './tree-view-utils';\n\nexport interface TreeItemProps<T> {\n /** Number of child items */\n childCount?: number;\n /** Whether this is a clone item */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n clone?: boolean;\n /** Whether the item is collapsed */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n collapsed?: boolean;\n /** Depth of the item in the tree */\n depth: number;\n /** Whether interaction should be disabled */\n shouldDisableInteraction?: boolean;\n /** Whether this is an indicator item */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n indicator?: boolean;\n /** Width of the indentation */\n indentationWidth: number;\n /** The tree item data */\n item: FlattenedTreeItem<T>;\n /** Whether this is the last item in its parent */\n isLast: boolean;\n /** Parent item of this item */\n parent: FlattenedTreeItem<T> | null;\n /** Function to call when item is collapsed */\n onCollapse?(id: UniqueIdentifier): void;\n /** Function to call when item is removed */\n onRemove?(id: UniqueIdentifier): void;\n /** Function to set the wrapper ref */\n wrapperRef?(node: HTMLLIElement): void;\n}\n\nconst animateLayoutChanges: AnimateLayoutChanges = ({\n isSorting,\n isDragging,\n}) => (isSorting || isDragging ? false : true);\n\ntype SortableTreeItemProps<\n T extends Record<string, unknown>,\n E extends HTMLElement,\n> = TreeItemProps<T> & {\n id: UniqueIdentifier;\n /** The component to use for rendering the tree item */\n TreeItemComponent: TreeItemComponent<T, E>;\n /** Whether sorting should be disabled for this item */\n shouldDisableSorting?: boolean;\n /** Props for the sortable functionality */\n sortableProps?: Omit<UseSortableArguments, 'id'>;\n /** Whether to keep the ghost item in place while dragging */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n keepGhostInPlace?: boolean;\n /** A list of trails to render before the item */\n trails: ('none' | 'straight' | 'straight-curved' | 'curved')[];\n /** Function to call when the item has changed */\n onItemsChanged: (\n newItems: FlattenedTreeItem<T>[],\n itemChangedReason: ItemChangedReason<T>,\n ) => void;\n /** All items in the tree */\n items: FlattenedTreeItem<T>[];\n ariaLevel?: number;\n ariaPosInSet?: number;\n ariaSetSize?: number;\n tabIndex?: number;\n /** Function to call when the item receives focus */\n onFocus?: () => void;\n};\n\nconst SortableTreeViewItemNotMemoized = function SortableTreeViewItem<\n T extends Record<string, unknown>,\n E extends HTMLElement,\n>({\n id,\n depth,\n isLast,\n TreeItemComponent,\n parent,\n shouldDisableSorting,\n // need to destruct to avoid passing it to the component\n // oxlint-disable-next-line no-unused-vars\n sortableProps,\n keepGhostInPlace,\n item,\n onCollapse,\n trails,\n onItemsChanged,\n items,\n ariaLevel,\n ariaPosInSet,\n ariaSetSize,\n tabIndex,\n onFocus,\n ...restProps\n}: SortableTreeItemProps<T, E>) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n setActivatorNodeRef,\n transition,\n isDragging,\n isSorting,\n isOver,\n } = useSortable({\n animateLayoutChanges,\n id: id,\n transition: {\n duration: 150, // milliseconds\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n },\n });\n\n const style: CSSProperties = {\n transform: transform ? transformToString(transform) : undefined,\n transition: transition ?? undefined,\n };\n const localCollapse = useMemo(() => {\n if (!onCollapse) {\n return undefined;\n }\n return () => onCollapse?.(item.id);\n }, [item.id, onCollapse]);\n\n return (\n <TreeItemComponent\n item={item}\n isOverParent={false}\n {...restProps}\n setActivatorNodeRef={setActivatorNodeRef}\n setNodeRef={setNodeRef}\n style={style}\n depth={depth}\n isGhost={keepGhostInPlace}\n shouldDisableInteraction={isSorting}\n isLastInParent={isLast}\n parent={parent}\n dragHandleProps={{\n ...attributes,\n ...listeners,\n }}\n isIndicator={isDragging}\n onCollapse={localCollapse}\n onItemsChanged={onItemsChanged}\n items={items}\n ariaLevel={ariaLevel}\n ariaPosInSet={ariaPosInSet}\n ariaSetSize={ariaSetSize}\n shouldDisableSorting={shouldDisableSorting}\n isOver={isOver}\n trails={trails}\n tabIndex={tabIndex}\n onFocus={onFocus}\n />\n );\n};\n\nexport const SortableTreeViewItem = React.memo(\n SortableTreeViewItemNotMemoized,\n) as typeof SortableTreeViewItemNotMemoized;\n"]}
|
|
@@ -79,11 +79,11 @@ const Component = () => {
|
|
|
79
79
|
setItems(newItems);
|
|
80
80
|
}, TreeItemComponent: function CustomTreeItem(_a) {
|
|
81
81
|
var { ref, onItemsChanged } = _a, restProps = __rest(_a, ["ref", "onItemsChanged"]);
|
|
82
|
-
return ((0, jsx_runtime_1.jsx)(react_1.TreeView.TreeItemWrapper, Object.assign({}, restProps, { onItemsChanged: onItemsChanged, ref: ref, children: (0, jsx_runtime_1.jsxs)("div", { className: "
|
|
82
|
+
return ((0, jsx_runtime_1.jsx)(react_1.TreeView.TreeItemWrapper, Object.assign({}, restProps, { onItemsChanged: onItemsChanged, ref: ref, children: (0, jsx_runtime_1.jsxs)("div", { className: "items-center flex flex-row", style: {
|
|
83
83
|
background: !restProps.item.canHaveSubItems
|
|
84
84
|
? 'linear-gradient(in hsl longer hue 45deg, red 0 0)'
|
|
85
85
|
: '',
|
|
86
|
-
}, children: [restProps.item.canHaveSubItems && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(icons_1.FolderIconOutline, { className: "
|
|
86
|
+
}, children: [restProps.item.canHaveSubItems && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(icons_1.FolderIconOutline, { className: "h-5 w-h-5" }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => restProps.onCollapse && restProps.onCollapse(), children: restProps.item.isCollapsed ? ((0, jsx_runtime_1.jsx)(icons_1.ChevronUpIconSolid, { className: "h-5 w-h-5" })) : ((0, jsx_runtime_1.jsx)(icons_1.ChevronDownIconSolid, { className: "h-5 w-h-5" })) })] })), 'custom' in restProps.item.data &&
|
|
87
87
|
typeof restProps.item.data.custom === 'string' &&
|
|
88
88
|
restProps.item.data.custom] }) })));
|
|
89
89
|
} }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeview-custom.story.js","sourceRoot":"","sources":["../../../../src/tree-view/stories/treeview-custom.story.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAAiD;AAEjD,4CAA4C;AAC5C,kDAIgC;AAEhC,iCAAiC;AAEjC,MAAM,UAAU,GAAmD;IACjE;QACE,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE;YACJ,MAAM,EAAE,aAAa;SACtB;QACD,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE;YACR;gBACE,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAgB;iBACzB;gBACD,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,KAAK;aAClB;YACD;gBACE,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAgB;iBACzB;gBACD,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,KAAK;aAClB;YACD;gBACE,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAgB;iBACzB;gBACD,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,KAAK;aAClB;SACF;KACF;CACF,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,UAAU,CAAC,CAAC;IAE/C,OAAO,CACL,uBAAC,gBAAQ,IACP,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC3B,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,EACD,iBAAiB,EAAE,SAAS,cAAc,CAAC,EAIa;gBAJb,EACzC,GAAG,EACH,cAAc,OAEwC,EADnD,SAAS,cAH6B,yBAI1C,CADa;YAEZ,OAAO,CACL,uBAAC,gBAAQ,CAAC,eAAe,oBACnB,SAAS,IACb,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,YAER,iCACE,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"treeview-custom.story.js","sourceRoot":"","sources":["../../../../src/tree-view/stories/treeview-custom.story.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mDAAiD;AAEjD,4CAA4C;AAC5C,kDAIgC;AAEhC,iCAAiC;AAEjC,MAAM,UAAU,GAAmD;IACjE;QACE,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE;YACJ,MAAM,EAAE,aAAa;SACtB;QACD,EAAE,EAAE,MAAM;QACV,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE;YACR;gBACE,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAgB;iBACzB;gBACD,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,KAAK;aAClB;YACD;gBACE,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAgB;iBACzB;gBACD,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,KAAK;aAClB;YACD;gBACE,eAAe,EAAE,KAAK;gBACtB,IAAI,EAAE;oBACJ,MAAM,EAAE,gBAAgB;iBACzB;gBACD,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,KAAK;aAClB;SACF;KACF;CACF,CAAC;AAEF,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,UAAU,CAAC,CAAC;IAE/C,OAAO,CACL,uBAAC,gBAAQ,IACP,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC3B,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,EACD,iBAAiB,EAAE,SAAS,cAAc,CAAC,EAIa;gBAJb,EACzC,GAAG,EACH,cAAc,OAEwC,EADnD,SAAS,cAH6B,yBAI1C,CADa;YAEZ,OAAO,CACL,uBAAC,gBAAQ,CAAC,eAAe,oBACnB,SAAS,IACb,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,YAER,iCACE,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE;wBACL,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe;4BACzC,CAAC,CAAC,mDAAmD;4BACrD,CAAC,CAAC,EAAE;qBACP,aAEA,SAAS,CAAC,IAAI,CAAC,eAAe,IAAI,CACjC,6DACE,uBAAC,yBAAiB,IAAC,SAAS,EAAC,WAAW,GAAG,EAC3C,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CACZ,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,EAAE,YAG/C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAC5B,uBAAC,0BAAkB,IAAC,SAAS,EAAC,WAAW,GAAG,CAC7C,CAAC,CAAC,CAAC,CACF,uBAAC,4BAAoB,IAAC,SAAS,EAAC,WAAW,GAAG,CAC/C,GACM,IACR,CACJ,EACA,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI;4BAC9B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ;4BAC9C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IACxB,IACmB,CAC5B,CAAC;QACJ,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,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 */\nimport '@neo4j-ndl/base/lib/neo4j-ds-styles.css';\n\nimport { TreeView } from '@neo4j-ndl/react';\nimport {\n ChevronDownIconSolid,\n ChevronUpIconSolid,\n FolderIconOutline,\n} from '@neo4j-ndl/react/icons';\nimport type React from 'react';\nimport { useState } from 'react';\n\nconst TREE_ITEMS: React.ComponentProps<typeof TreeView>['items'] = [\n {\n canHaveSubItems: true,\n data: {\n custom: 'Custom Root',\n },\n id: 'Root',\n isCollapsed: false,\n isSelected: false,\n subItems: [\n {\n canHaveSubItems: false,\n data: {\n custom: 'Custom child 1',\n },\n id: 'Child 1',\n isSelected: false,\n },\n {\n canHaveSubItems: false,\n data: {\n custom: 'Custom child 2',\n },\n id: 'Child 2',\n isSelected: false,\n },\n {\n canHaveSubItems: false,\n data: {\n custom: 'Custom child 3',\n },\n id: 'Child 3',\n isSelected: false,\n },\n ],\n },\n];\n\nconst Component = () => {\n const [items, setItems] = useState(TREE_ITEMS);\n\n return (\n <TreeView\n items={items}\n onItemsChanged={(newItems) => {\n setItems(newItems);\n }}\n TreeItemComponent={function CustomTreeItem({\n ref,\n onItemsChanged,\n ...restProps\n }: React.ComponentProps<typeof TreeView.TreeItemWrapper>) {\n return (\n <TreeView.TreeItemWrapper\n {...restProps}\n onItemsChanged={onItemsChanged}\n ref={ref}\n >\n <div\n className=\"items-center flex flex-row\"\n style={{\n background: !restProps.item.canHaveSubItems\n ? 'linear-gradient(in hsl longer hue 45deg, red 0 0)'\n : '',\n }}\n >\n {restProps.item.canHaveSubItems && (\n <>\n <FolderIconOutline className=\"h-5 w-h-5\" />\n <button\n type=\"button\"\n onClick={() =>\n restProps.onCollapse && restProps.onCollapse()\n }\n >\n {restProps.item.isCollapsed ? (\n <ChevronUpIconSolid className=\"h-5 w-h-5\" />\n ) : (\n <ChevronDownIconSolid className=\"h-5 w-h-5\" />\n )}\n </button>\n </>\n )}\n {'custom' in restProps.item.data &&\n typeof restProps.item.data.custom === 'string' &&\n restProps.item.data.custom}\n </div>\n </TreeView.TreeItemWrapper>\n );\n }}\n />\n );\n};\n\nexport default Component;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-view-utils.js","sourceRoot":"","sources":["../../../src/tree-view/tree-view-utils.ts"],"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 */\nimport { type UniqueIdentifier } from '@dnd-kit/core';\nimport { arrayMove } from '@dnd-kit/sortable';\nimport { type RefObject } from 'react';\n\nimport { type FlattenedTreeItem, type TreeItem } from './tree-view-types';\n\nexport type SensorContext<T> = RefObject<{\n items: FlattenedTreeItem<T>[];\n offset: number;\n}>;\n\n/**\n * Takes a tree and flattens it into a list of item\n * where each item has a depth and a parentId.\n * @param tree - The tree to flatten\n * @param depth - The depth of the root of the tree (default 0)\n * @param parentId - The id of the parent of the root of the tree (default null)\n * @returns a list of items with depth and parentId\n */\nexport const flattenTree = <T>(\n tree: TreeItem<T>[],\n depth = 0,\n parentId: UniqueIdentifier | null = null,\n): FlattenedTreeItem<T>[] => {\n const flattened: FlattenedTreeItem<T>[] = [];\n\n tree.forEach((item) => {\n flattened.push({\n ...item,\n depth: depth,\n parentId: parentId,\n // Default values can go here for items\n isSkeletonLoading: item.isSkeletonLoading ?? false,\n });\n\n if (item.canHaveSubItems) {\n flattenTree(item.subItems, depth + 1, item.id).forEach((subItem) =>\n flattened.push({ ...subItem }),\n );\n }\n });\n\n return flattened;\n};\n\n/**\n * Removes the children of the items with the given ids\n * @param items - The flattened tree items to remove the children from\n * @param ids - The ids of the items to remove the children from\n * @returns a new list of items with the children of the items with the given ids removed\n */\nexport function removeChildrenOf<T>(\n items: FlattenedTreeItem<T>[],\n ids: UniqueIdentifier[],\n) {\n const excludeParentIds = [...ids];\n return items.filter((item) => {\n if (item.parentId !== null && excludeParentIds.includes(item.parentId)) {\n if (item.canHaveSubItems && item.subItems.length > 0) {\n excludeParentIds.push(item.id);\n }\n return false;\n }\n return true;\n });\n}\n\n/**\n * Builds a tree from a list of flattened tree items\n * @param items - The flattened tree items\n * @returns the items as a tree data structure\n */\nexport function buildTree<T>(items: FlattenedTreeItem<T>[]): TreeItem<T>[] {\n const tree: TreeItem<T>[] = [];\n\n // Map array to object\n const itemMap: { [id: string]: TreeItem<T> } = items.reduce(\n (newItemMap, item) => {\n const { id } = item;\n // Add sub items array if it's allowed to have sub items.\n const newItem = {\n // Keep all item properties\n ...item,\n ...(item.canHaveSubItems && {\n subItems: [],\n }),\n };\n return {\n ...newItemMap,\n [id]: newItem,\n };\n },\n {},\n );\n\n // Build the tree structure by assigning children to their parent items\n items.forEach((item) => {\n const { id, parentId } = item;\n if (parentId !== null) {\n const parentItem = itemMap[parentId];\n if (parentItem && parentItem.canHaveSubItems) {\n parentItem.subItems.push(itemMap[id]);\n }\n } else {\n tree.push(itemMap[id]);\n }\n });\n\n return tree;\n}\n\nfunction getDragDepth(offset: number, indentationWidth: number) {\n return Math.round(offset / indentationWidth);\n}\n\nfunction getMaxDepth<T>({\n previousItem,\n}: {\n previousItem: FlattenedTreeItem<T>;\n}) {\n if (previousItem && previousItem.canHaveSubItems === true) {\n return previousItem.depth + 1;\n }\n\n return previousItem?.depth ?? 0;\n}\n\nfunction getMinDepth<T>({ nextItem }: { nextItem: FlattenedTreeItem<T> }) {\n if (nextItem) {\n return nextItem.depth;\n }\n\n return 0;\n}\n\n/**\n * Calculates the new depth, max depth, min depth and parent id of the item being dragged\n * Used to project the position of the dragged item. For example, to convert the item being dragged into a placeholder.\n * such as the line that appears when dragging an item in a tree view.\n * @param items - The flattened tree items\n * @param activeId - The id of the item being dragged\n * @param overId - The id of the item that the dragged item is being dragged over\n * @param dragOffset - The offset of the drag in pixels\n * @param indentationWidth - The width of the indentation in pixels\n * @returns the depth, max depth, min depth and parent id of the item being dragged\n */\nexport function getProjection<T>(\n items: FlattenedTreeItem<T>[],\n activeId: UniqueIdentifier,\n overId: UniqueIdentifier,\n dragOffset: number,\n indentationWidth: number,\n) {\n const overItemIndex = items.findIndex(({ id }) => id === overId);\n const activeItemIndex = items.findIndex(({ id }) => id === activeId);\n const activeItem = items[activeItemIndex];\n const newItems = arrayMove(items, activeItemIndex, overItemIndex);\n const previousItem = newItems[overItemIndex - 1];\n const nextItem = newItems[overItemIndex + 1];\n const dragDepth = getDragDepth(dragOffset, indentationWidth);\n const projectedDepth = activeItem.depth + dragDepth;\n const maxDepth = getMaxDepth({\n previousItem,\n });\n const minDepth = getMinDepth({ nextItem });\n let depth = projectedDepth;\n\n if (projectedDepth >= maxDepth) {\n depth = maxDepth;\n } else if (projectedDepth < minDepth) {\n depth = minDepth;\n }\n\n return { depth, maxDepth, minDepth, parentId: getParentId() };\n\n function getParentId() {\n if (depth === 0 || !previousItem) {\n return null;\n }\n\n if (depth === previousItem.depth) {\n return previousItem.parentId;\n }\n\n if (depth > previousItem.depth) {\n return previousItem.id;\n }\n\n const newParent = newItems\n .slice(0, overItemIndex)\n .reverse()\n .find((item) => item.depth === depth)?.parentId;\n\n return newParent ?? null;\n }\n}\n/**\n *\n * @param transform - A transform object\n * @returns a css transform string\n */\n\nexport const transformToString = (transform: {\n scaleX: number;\n scaleY: number;\n // TODO v5: fix id-length\n // oxlint-disable-next-line id-length\n x: number;\n // TODO v5: fix id-length\n // oxlint-disable-next-line id-length\n y: number;\n}) => {\n return `scaleX(${transform.scaleX}) scaleY(${transform.scaleY}) translate3d(${transform.x}px, ${transform.y}px, 0)`;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"tree-view-utils.js","sourceRoot":"","sources":["../../../src/tree-view/tree-view-utils.ts"],"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 */\nimport { type UniqueIdentifier } from '@dnd-kit/core';\nimport { arrayMove } from '@dnd-kit/sortable';\nimport { type RefObject } from 'react';\n\nimport { type FlattenedTreeItem, type TreeItem } from './tree-view-types';\n\nexport type SensorContext<T> = RefObject<{\n items: FlattenedTreeItem<T>[];\n offset: number;\n}>;\n\n/**\n * Takes a tree and flattens it into a list of item\n * where each item has a depth and a parentId.\n * @param tree - The tree to flatten\n * @param depth - The depth of the root of the tree (default 0)\n * @param parentId - The id of the parent of the root of the tree (default null)\n * @returns a list of items with depth and parentId\n */\nexport const flattenTree = <T>(\n tree: TreeItem<T>[],\n depth = 0,\n parentId: UniqueIdentifier | null = null,\n): FlattenedTreeItem<T>[] => {\n const flattened: FlattenedTreeItem<T>[] = [];\n\n tree.forEach((item) => {\n flattened.push({\n ...item,\n depth: depth,\n parentId: parentId,\n // Default values can go here for items\n isSkeletonLoading: item.isSkeletonLoading ?? false,\n });\n\n if (item.canHaveSubItems) {\n flattenTree(item.subItems, depth + 1, item.id).forEach((subItem) =>\n flattened.push({ ...subItem }),\n );\n }\n });\n\n return flattened;\n};\n\n/**\n * Removes the children of the items with the given ids\n * @param items - The flattened tree items to remove the children from\n * @param ids - The ids of the items to remove the children from\n * @returns a new list of items with the children of the items with the given ids removed\n */\nexport function removeChildrenOf<T>(\n items: FlattenedTreeItem<T>[],\n ids: UniqueIdentifier[],\n) {\n const excludeParentIds = [...ids];\n return items.filter((item) => {\n if (item.parentId !== null && excludeParentIds.includes(item.parentId)) {\n if (item.canHaveSubItems && item.subItems.length > 0) {\n excludeParentIds.push(item.id);\n }\n return false;\n }\n return true;\n });\n}\n\n/**\n * Builds a tree from a list of flattened tree items\n * @param items - The flattened tree items\n * @returns the items as a tree data structure\n */\nexport function buildTree<T>(items: FlattenedTreeItem<T>[]): TreeItem<T>[] {\n const tree: TreeItem<T>[] = [];\n\n // Map array to object\n const itemMap: { [id: string]: TreeItem<T> } = items.reduce(\n (newItemMap, item) => {\n const { id } = item;\n // Add sub items array if it's allowed to have sub items.\n const newItem = {\n // Keep all item properties\n ...item,\n ...(item.canHaveSubItems && {\n subItems: [],\n }),\n };\n return {\n ...newItemMap,\n [id]: newItem,\n };\n },\n {},\n );\n\n // Build the tree structure by assigning children to their parent items\n items.forEach((item) => {\n const { id, parentId } = item;\n if (parentId !== null) {\n const parentItem = itemMap[parentId];\n if (parentItem && parentItem.canHaveSubItems) {\n parentItem.subItems.push(itemMap[id]);\n }\n } else {\n tree.push(itemMap[id]);\n }\n });\n\n return tree;\n}\n\nfunction getDragDepth(offset: number, indentationWidth: number) {\n return Math.round(offset / indentationWidth);\n}\n\nfunction getMaxDepth<T>({\n previousItem,\n}: {\n previousItem: FlattenedTreeItem<T>;\n}) {\n if (previousItem && previousItem.canHaveSubItems === true) {\n return previousItem.depth + 1;\n }\n\n return previousItem?.depth ?? 0;\n}\n\nfunction getMinDepth<T>({ nextItem }: { nextItem: FlattenedTreeItem<T> }) {\n if (nextItem) {\n return nextItem.depth;\n }\n\n return 0;\n}\n\n/**\n * Calculates the new depth, max depth, min depth and parent id of the item being dragged\n * Used to project the position of the dragged item. For example, to convert the item being dragged into a placeholder.\n * such as the line that appears when dragging an item in a tree view.\n * @param items - The flattened tree items\n * @param activeId - The id of the item being dragged\n * @param overId - The id of the item that the dragged item is being dragged over\n * @param dragOffset - The offset of the drag in pixels\n * @param indentationWidth - The width of the indentation in pixels\n * @returns the depth, max depth, min depth and parent id of the item being dragged\n */\nexport function getProjection<T>(\n items: FlattenedTreeItem<T>[],\n activeId: UniqueIdentifier,\n overId: UniqueIdentifier,\n dragOffset: number,\n indentationWidth: number,\n) {\n const overItemIndex = items.findIndex(({ id }) => id === overId);\n const activeItemIndex = items.findIndex(({ id }) => id === activeId);\n const activeItem = items[activeItemIndex];\n const newItems = arrayMove(items, activeItemIndex, overItemIndex);\n const previousItem = newItems[overItemIndex - 1];\n const nextItem = newItems[overItemIndex + 1];\n const dragDepth = getDragDepth(dragOffset, indentationWidth);\n const projectedDepth = activeItem.depth + dragDepth;\n const maxDepth = getMaxDepth({\n previousItem,\n });\n const minDepth = getMinDepth({ nextItem });\n let depth = projectedDepth;\n\n if (projectedDepth >= maxDepth) {\n depth = maxDepth;\n } else if (projectedDepth < minDepth) {\n depth = minDepth;\n }\n\n return { depth, maxDepth, minDepth, parentId: getParentId() };\n\n function getParentId() {\n if (depth === 0 || !previousItem) {\n return null;\n }\n\n if (depth === previousItem.depth) {\n return previousItem.parentId;\n }\n\n if (depth > previousItem.depth) {\n return previousItem.id;\n }\n\n const newParent = newItems\n .slice(0, overItemIndex)\n .reverse()\n .find((item) => item.depth === depth)?.parentId;\n\n return newParent ?? null;\n }\n}\n/**\n *\n * @param transform - A transform object\n * @returns a css transform string\n */\n\nexport const transformToString = (transform: {\n scaleX: number;\n scaleY: number;\n // oxlint-disable-next-line id-length\n x: number;\n // oxlint-disable-next-line id-length\n y: number;\n}) => {\n return `scaleX(${transform.scaleX}) scaleY(${transform.scaleY}) translate3d(${transform.x}px, ${transform.y}px, 0)`;\n};\n"]}
|
|
@@ -38,9 +38,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.Typography = void 0;
|
|
39
39
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
40
40
|
const classnames_1 = __importDefault(require("classnames"));
|
|
41
|
+
/**
|
|
42
|
+
* @remarks
|
|
43
|
+
* Renders the public `ndl-typography-<variant>` class from `@neo4j-ndl/base`
|
|
44
|
+
* (for example `ndl-typography-body-medium`). The same classes can be applied
|
|
45
|
+
* to any element directly when the component cannot be used.
|
|
46
|
+
*/
|
|
41
47
|
const Typography = (props) => {
|
|
42
48
|
const { as, className = '', children, variant, htmlAttributes, ref } = props, restProps = __rest(props, ["as", "className", "children", "variant", "htmlAttributes", "ref"]);
|
|
43
|
-
const classes = (0, classnames_1.default)(`
|
|
49
|
+
const classes = (0, classnames_1.default)(`ndl-typography-${variant}`, className);
|
|
44
50
|
const Component = as !== null && as !== void 0 ? as : 'span';
|
|
45
51
|
return ((0, jsx_runtime_1.jsx)(Component, Object.assign({ className: classes, ref: ref }, restProps, htmlAttributes, { children: children })));
|
|
46
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Typography.js","sourceRoot":"","sources":["../../../src/typography/Typography.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,4DAAoC;
|
|
1
|
+
{"version":3,"file":"Typography.js","sourceRoot":"","sources":["../../../src/typography/Typography.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,4DAAoC;AAapC;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CACxB,KAAiD,EACtB,EAAE;IAC7B,MAAM,EACJ,EAAE,EACF,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,OAAO,EACP,cAAc,EACd,GAAG,KAED,KAAK,EADJ,SAAS,UACV,KAAK,EARH,mEAQL,CAAQ,CAAC;IAEV,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,kBAAkB,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,MAAM,CAAC;IAE/B,OAAO,CACL,uBAAC,SAAS,kBAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAM,SAAS,EAAM,cAAc,cACvE,QAAQ,IACC,CACb,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,UAAU,cAqBrB","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 */\nimport { type tokens } from '@neo4j-ndl/base';\nimport classNames from 'classnames';\n\nimport { type PolymorphicCommonProps } from '../_common/types';\n\nexport type TypographyVariants = keyof typeof tokens.typography;\n\ntype TypographyProps = {\n /** The typography variant to use for the text. */\n variant: TypographyVariants;\n /** Content displayed inside the component */\n children?: React.ReactNode;\n};\n\n/**\n * @remarks\n * Renders the public `ndl-typography-<variant>` class from `@neo4j-ndl/base`\n * (for example `ndl-typography-body-medium`). The same classes can be applied\n * to any element directly when the component cannot be used.\n */\nexport const Typography = <T extends React.ElementType = 'span'>(\n props: PolymorphicCommonProps<T, TypographyProps>,\n): React.ReactElement | null => {\n const {\n as,\n className = '',\n children,\n variant,\n htmlAttributes,\n ref,\n ...restProps\n } = props;\n\n const classes = classNames(`ndl-typography-${variant}`, className);\n const Component = as ?? 'span';\n\n return (\n <Component className={classes} ref={ref} {...restProps} {...htmlAttributes}>\n {children}\n </Component>\n );\n};\n"]}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
export { getWeight, lerpColor } from './color-utils';
|
|
27
27
|
export { parseDateString, parseLocalDateString, parseTimeString, } from './date-utils';
|
|
28
|
-
export {
|
|
28
|
+
export { isDatetimeLiteral, isLocalDatetimeLiteral, isTimeLiteral, } from './literal-guards';
|
|
29
29
|
export { clampNumericValue, compareNumericValues, getNumericWeight, isBigintLiteral, numericValuesEqual, resolveNumericLiteral, } from './numeric-utils';
|
|
30
30
|
export { resolveRangeLiteral } from './range-utils';
|
|
31
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC","sourcesContent":["/*\n * AUTO-GENERATED FILE — DO NOT EDIT.\n * Source of truth: packages/style-rules/src/\n * Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).\n */\n\n/*!\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 */\nexport { getWeight, lerpColor } from './color-utils';\nexport {\n parseDateString,\n parseLocalDateString,\n parseTimeString,\n} from './date-utils';\nexport {\n isDatetimeLiteral,\n isLocalDatetimeLiteral,\n isTimeLiteral,\n} from './literal-guards';\nexport type {\n BigintLiteral,\n DatetimeLiteral,\n LocalDatetimeLiteral,\n NumericLiteral,\n RangeLiteral,\n TimeLiteral,\n} from './literal-types';\nexport {\n clampNumericValue,\n compareNumericValues,\n getNumericWeight,\n isBigintLiteral,\n numericValuesEqual,\n resolveNumericLiteral,\n} from './numeric-utils';\nexport type { NumericValue } from './numeric-utils';\nexport { resolveRangeLiteral } from './range-utils';\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) "Neo4j"
|
|
4
|
+
* Neo4j Sweden AB [http://neo4j.com]
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Neo4j.
|
|
7
|
+
*
|
|
8
|
+
* Neo4j is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU General Public License
|
|
19
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* AUTO-GENERATED FILE — DO NOT EDIT.
|
|
24
|
+
* Source of truth: packages/style-rules/src/
|
|
25
|
+
* Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).
|
|
26
|
+
*/
|
|
27
|
+
function isObjectWithStringKey(value, key) {
|
|
28
|
+
return (typeof value === 'object' &&
|
|
29
|
+
value !== null &&
|
|
30
|
+
key in value &&
|
|
31
|
+
typeof value[key] === 'string');
|
|
32
|
+
}
|
|
33
|
+
/** Returns whether a value is a `{ datetime: string }` wrapper. Does not validate the string. */
|
|
34
|
+
export function isDatetimeLiteral(value) {
|
|
35
|
+
return isObjectWithStringKey(value, 'datetime');
|
|
36
|
+
}
|
|
37
|
+
/** Returns whether a value is a `{ localdatetime: string }` wrapper. Does not validate the string. */
|
|
38
|
+
export function isLocalDatetimeLiteral(value) {
|
|
39
|
+
return isObjectWithStringKey(value, 'localdatetime');
|
|
40
|
+
}
|
|
41
|
+
/** Returns whether a value is a `{ time: string }` wrapper. Does not validate the string. */
|
|
42
|
+
export function isTimeLiteral(value) {
|
|
43
|
+
return isObjectWithStringKey(value, 'time');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=literal-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literal-guards.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/literal-guards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6BH,SAAS,qBAAqB,CAC5B,KAAc,EACd,GAAM;IAEN,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,GAAG,IAAI,KAAK;QACZ,OAAQ,KAAiC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAC5D,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC","sourcesContent":["/*\n * AUTO-GENERATED FILE — DO NOT EDIT.\n * Source of truth: packages/style-rules/src/\n * Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).\n */\n\n/*!\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 type {\n DatetimeLiteral,\n LocalDatetimeLiteral,\n TimeLiteral,\n} from './literal-types';\n\nfunction isObjectWithStringKey<K extends string>(\n value: unknown,\n key: K,\n): value is Record<K, string> {\n return (\n typeof value === 'object' &&\n value !== null &&\n key in value &&\n typeof (value as Record<string, unknown>)[key] === 'string'\n );\n}\n\n/** Returns whether a value is a `{ datetime: string }` wrapper. Does not validate the string. */\nexport function isDatetimeLiteral(value: unknown): value is DatetimeLiteral {\n return isObjectWithStringKey(value, 'datetime');\n}\n\n/** Returns whether a value is a `{ localdatetime: string }` wrapper. Does not validate the string. */\nexport function isLocalDatetimeLiteral(\n value: unknown,\n): value is LocalDatetimeLiteral {\n return isObjectWithStringKey(value, 'localdatetime');\n}\n\n/** Returns whether a value is a `{ time: string }` wrapper. Does not validate the string. */\nexport function isTimeLiteral(value: unknown): value is TimeLiteral {\n return isObjectWithStringKey(value, 'time');\n}\n"]}
|
|
@@ -25,6 +25,12 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import { z } from 'zod';
|
|
27
27
|
import { parseDateString, parseLocalDateString, parseTimeString, } from './date-utils';
|
|
28
|
+
/*
|
|
29
|
+
* Internal only. These schemas are the runtime backing for the style-rule type
|
|
30
|
+
* guards; the public contract is the hand-written types in `literal-types.ts`.
|
|
31
|
+
* Do NOT re-export these schemas from this package or from any consumer's
|
|
32
|
+
* public entry point.
|
|
33
|
+
*/
|
|
28
34
|
/**
|
|
29
35
|
* A JSON-safe bigint literal. Native bigint values cannot be serialized as
|
|
30
36
|
* JSON, so persisted style rules can use a signed decimal string instead.
|
|
@@ -93,24 +99,6 @@ export const TimeLiteralSchema = z.object({
|
|
|
93
99
|
message: 'time must be a valid ISO 8601 time string (e.g. "14:30:00" or "14:30:00+02:00")',
|
|
94
100
|
}),
|
|
95
101
|
});
|
|
96
|
-
function isObjectWithStringKey(value, key) {
|
|
97
|
-
return (typeof value === 'object' &&
|
|
98
|
-
value !== null &&
|
|
99
|
-
key in value &&
|
|
100
|
-
typeof value[key] === 'string');
|
|
101
|
-
}
|
|
102
|
-
/** Returns whether a value is a `{ datetime: string }` wrapper. Does not validate the string. */
|
|
103
|
-
export function isDatetimeLiteral(value) {
|
|
104
|
-
return isObjectWithStringKey(value, 'datetime');
|
|
105
|
-
}
|
|
106
|
-
/** Returns whether a value is a `{ localdatetime: string }` wrapper. Does not validate the string. */
|
|
107
|
-
export function isLocalDatetimeLiteral(value) {
|
|
108
|
-
return isObjectWithStringKey(value, 'localdatetime');
|
|
109
|
-
}
|
|
110
|
-
/** Returns whether a value is a `{ time: string }` wrapper. Does not validate the string. */
|
|
111
|
-
export function isTimeLiteral(value) {
|
|
112
|
-
return isObjectWithStringKey(value, 'time');
|
|
113
|
-
}
|
|
114
102
|
/**
|
|
115
103
|
* A continuous, orderable literal that can be used as a range boundary.
|
|
116
104
|
* Temporal literals resolve to numbers before range interpolation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal-schemas.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/literal-schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"literal-schemas.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/literal-schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AAUtB;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE;QACrC,OAAO,EAAE,gDAAgD;KAC1D,CAAC;CACH,CAAoC,CAAC;AAEtC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,mBAAmB;CACpB,CAAqC,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACtE,OAAO,EACL,sEAAsE;KACzE,CAAC;CACH,CAAsC,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACvD,OAAO,EACL,kGAAkG;KACrG,CAAC;CACL,CAA2C,CAAC;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAClE,OAAO,EACL,iFAAiF;KACpF,CAAC;CACH,CAAkC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxC,oBAAoB;IACpB,qBAAqB;IACrB,0BAA0B;IAC1B,iBAAiB;CAClB,CAAmC,CAAC","sourcesContent":["/*\n * AUTO-GENERATED FILE — DO NOT EDIT.\n * Source of truth: packages/style-rules/src/\n * Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).\n */\n\n/*!\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 { z } from 'zod';\n\nimport {\n parseDateString,\n parseLocalDateString,\n parseTimeString,\n} from './date-utils';\nimport type {\n BigintLiteral,\n DatetimeLiteral,\n LocalDatetimeLiteral,\n NumericLiteral,\n RangeLiteral,\n TimeLiteral,\n} from './literal-types';\n\n/*\n * Internal only. These schemas are the runtime backing for the style-rule type\n * guards; the public contract is the hand-written types in `literal-types.ts`.\n * Do NOT re-export these schemas from this package or from any consumer's\n * public entry point.\n */\n\n/**\n * A JSON-safe bigint literal. Native bigint values cannot be serialized as\n * JSON, so persisted style rules can use a signed decimal string instead.\n */\nexport const BigintLiteralSchema = z.object({\n bigint: z.string().regex(/^[+-]?\\d+$/, {\n message: 'bigint must be a signed decimal integer string',\n }),\n}) satisfies z.ZodType<BigintLiteral>;\n\n/** A numeric style-rule literal, including native and JSON-safe bigints. */\nexport const NumericLiteralSchema = z.union([\n z.number(),\n z.bigint(),\n BigintLiteralSchema,\n]) satisfies z.ZodType<NumericLiteral>;\n\n/**\n * An ISO 8601 or RFC 9557 datetime literal that resolves to a Unix millisecond\n * timestamp at evaluation time. Supported formats:\n * - RFC 9557 with IANA timezone: `\"2024-06-15T14:00:00[Europe/Stockholm]\"` (offset\n * inferred from the named zone, DST-aware) or `\"2024-06-15T14:00:00+02:00[Europe/Stockholm]\"`\n * (offset explicit)\n * - UTC or offset datetime: `\"2024-01-01T00:00:00Z\"`, `\"2024-01-01T00:00:00+02:00\"`\n * - Plain datetime (treated as UTC): `\"2024-01-01T14:30:00\"`, `\"2024-01-01T14:30:00.500\"`\n * - Date-only (treated as UTC midnight): `\"2024-01-01\"`\n */\nexport const DatetimeLiteralSchema = z.object({\n datetime: z.string().refine((input) => parseDateString(input) !== null, {\n message:\n 'datetime must be a valid ISO 8601 / RFC 9557 date or datetime string',\n }),\n}) satisfies z.ZodType<DatetimeLiteral>;\n\n/**\n * A plain (unzoned) ISO 8601 date or datetime literal that resolves to a Unix\n * millisecond timestamp at evaluation time, interpreting the wall-clock time\n * in the browser's local timezone.\n *\n * Only plain date/datetime strings without timezone qualifiers are accepted:\n * - Plain datetime: `\"2024-01-01T14:30:00\"`, `\"2024-01-01T14:30:00.500\"`\n * - Date-only (treated as local midnight): `\"2024-01-01\"`\n *\n * Strings with `Z`, a UTC offset (`+02:00`), or an IANA bracket\n * (`[Europe/Stockholm]`) are **rejected** — use `{ datetime }` for\n * timezone-aware instants. This matches the semantics of Neo4j `LocalDateTime`.\n */\nexport const LocalDatetimeLiteralSchema = z.object({\n localdatetime: z\n .string()\n .refine((input) => parseLocalDateString(input) !== null, {\n message:\n 'localdatetime must be a valid ISO 8601 plain date or datetime string (no Z, offset, or timezone)',\n }),\n}) satisfies z.ZodType<LocalDatetimeLiteral>;\n\n/**\n * An ISO 8601 time literal that resolves to milliseconds since UTC midnight\n * at evaluation time. Supported formats:\n * - Local time (treated as UTC): `\"14:30:00\"`, `\"14:30:00.500\"`\n * - UTC time: `\"14:30:00Z\"` — identical to local form\n * - Offset time (UTC-normalised): `\"14:30:00+02:00\"` → 45,000,000 ms (12:30 UTC)\n *\n * IANA timezone brackets (e.g. `[Europe/Stockholm]`) are **not** accepted — a\n * time-of-day value has no calendar date so DST cannot be resolved. Use\n * `{ datetime }` literals for timezone-aware instants.\n *\n * Full datetime strings (containing `T`) are rejected.\n */\nexport const TimeLiteralSchema = z.object({\n time: z.string().refine((input) => parseTimeString(input) !== null, {\n message:\n 'time must be a valid ISO 8601 time string (e.g. \"14:30:00\" or \"14:30:00+02:00\")',\n }),\n}) satisfies z.ZodType<TimeLiteral>;\n\n/**\n * A continuous, orderable literal that can be used as a range boundary.\n * Temporal literals resolve to numbers before range interpolation.\n */\nexport const RangeLiteralSchema = z.union([\n NumericLiteralSchema,\n DatetimeLiteralSchema,\n LocalDatetimeLiteralSchema,\n TimeLiteralSchema,\n]) satisfies z.ZodType<RangeLiteral>;\n"]}
|
|
@@ -18,5 +18,11 @@
|
|
|
18
18
|
* You should have received a copy of the GNU General Public License
|
|
19
19
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
20
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* AUTO-GENERATED FILE — DO NOT EDIT.
|
|
24
|
+
* Source of truth: packages/style-rules/src/
|
|
25
|
+
* Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).
|
|
26
|
+
*/
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=literal-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literal-types.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/literal-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/*\n * AUTO-GENERATED FILE — DO NOT EDIT.\n * Source of truth: packages/style-rules/src/\n * Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).\n */\n\n/*!\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\n/**\n * A JSON-safe bigint literal. Native bigint values cannot be serialized as\n * JSON, so persisted style rules can use a signed decimal string instead.\n */\nexport type BigintLiteral = { bigint: string };\n\n/** A numeric style-rule literal, including native and JSON-safe bigints. */\nexport type NumericLiteral = number | bigint | BigintLiteral;\n\n/**\n * An ISO 8601 or RFC 9557 datetime literal that resolves to a Unix millisecond\n * timestamp at evaluation time. Supported formats:\n * - RFC 9557 with IANA timezone: `\"2024-06-15T14:00:00[Europe/Stockholm]\"` (offset\n * inferred from the named zone, DST-aware) or `\"2024-06-15T14:00:00+02:00[Europe/Stockholm]\"`\n * (offset explicit)\n * - UTC or offset datetime: `\"2024-01-01T00:00:00Z\"`, `\"2024-01-01T00:00:00+02:00\"`\n * - Plain datetime (treated as UTC): `\"2024-01-01T14:30:00\"`, `\"2024-01-01T14:30:00.500\"`\n * - Date-only (treated as UTC midnight): `\"2024-01-01\"`\n */\nexport type DatetimeLiteral = { datetime: string };\n\n/**\n * A plain (unzoned) ISO 8601 date or datetime literal that resolves to a Unix\n * millisecond timestamp at evaluation time, interpreting the wall-clock time\n * in the browser's local timezone.\n *\n * Only plain date/datetime strings without timezone qualifiers are accepted:\n * - Plain datetime: `\"2024-01-01T14:30:00\"`, `\"2024-01-01T14:30:00.500\"`\n * - Date-only (treated as local midnight): `\"2024-01-01\"`\n *\n * Strings with `Z`, a UTC offset (`+02:00`), or an IANA bracket\n * (`[Europe/Stockholm]`) are **rejected** — use `{ datetime }` for\n * timezone-aware instants. This matches the semantics of Neo4j `LocalDateTime`.\n */\nexport type LocalDatetimeLiteral = { localdatetime: string };\n\n/**\n * An ISO 8601 time literal that resolves to milliseconds since UTC midnight\n * at evaluation time. Supported formats:\n * - Local time (treated as UTC): `\"14:30:00\"`, `\"14:30:00.500\"`\n * - UTC time: `\"14:30:00Z\"` — identical to local form\n * - Offset time (UTC-normalised): `\"14:30:00+02:00\"` → 45,000,000 ms (12:30 UTC)\n *\n * IANA timezone brackets (e.g. `[Europe/Stockholm]`) are **not** accepted — a\n * time-of-day value has no calendar date so DST cannot be resolved. Use\n * `{ datetime }` literals for timezone-aware instants.\n *\n * Full datetime strings (containing `T`) are rejected.\n */\nexport type TimeLiteral = { time: string };\n\n/**\n * A continuous, orderable literal that can be used as a range boundary.\n * Temporal literals resolve to numbers before range interpolation.\n */\nexport type RangeLiteral =\n | NumericLiteral\n | DatetimeLiteral\n | LocalDatetimeLiteral\n | TimeLiteral;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numeric-utils.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/numeric-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * AUTO-GENERATED FILE — DO NOT EDIT.\n * Source of truth: packages/style-rules/src/\n * Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).\n */\n\n/*!\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 type { BigintLiteral, NumericLiteral } from './literal-schemas';\n\nexport type NumericValue = number | bigint;\n\ntype Rational = {\n denominator: bigint;\n numerator: bigint;\n};\n\nconst BIGINT_ZERO = BigInt(0);\nconst BIGINT_ONE = BigInt(1);\nconst BIGINT_TWO = BigInt(2);\nconst BIGINT_RATIO_SCALE = BigInt('1000000000000000000');\n\nfunction bigintPowerOfTen(exponent: number): bigint {\n return BigInt(`1${'0'.repeat(exponent)}`);\n}\n\n/** Resolves a native or JSON-safe numeric literal without reducing bigints. */\nexport function resolveNumericLiteral(value: NumericLiteral): NumericValue {\n return typeof value === 'object' ? BigInt(value.bigint) : value;\n}\n\n/** Returns whether a value is the JSON-safe bigint literal shape. */\nexport function isBigintLiteral(value: unknown): value is BigintLiteral {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'bigint' in value &&\n typeof value.bigint === 'string' &&\n /^[+-]?\\d+$/.test(value.bigint)\n );\n}\n\n/**\n * Compares numeric values without coercing bigint operands to number.\n * Returns null for NaN, otherwise -1, 0, or 1.\n */\nexport function compareNumericValues(\n left: NumericValue,\n right: NumericValue,\n): -1 | 0 | 1 | null {\n if (\n (typeof left === 'number' && Number.isNaN(left)) ||\n (typeof right === 'number' && Number.isNaN(right))\n ) {\n return null;\n }\n if (left < right) {\n return -1;\n }\n if (left > right) {\n return 1;\n }\n return 0;\n}\n\n/** Numeric equality that treats equivalent number and bigint values as equal. */\nexport function numericValuesEqual(\n left: NumericValue,\n right: NumericValue,\n): boolean {\n return compareNumericValues(left, right) === 0;\n}\n\n/**\n * Clamps a numeric value between two endpoints. Inverted endpoints are\n * supported, and the original number/bigint representation is retained.\n */\nexport function clampNumericValue(\n value: NumericValue,\n firstBound: NumericValue,\n secondBound: NumericValue,\n): NumericValue | null {\n const boundsOrder = compareNumericValues(firstBound, secondBound);\n if (boundsOrder === null) {\n return null;\n }\n const min = boundsOrder <= 0 ? firstBound : secondBound;\n const max = boundsOrder <= 0 ? secondBound : firstBound;\n const minOrder = compareNumericValues(value, min);\n const maxOrder = compareNumericValues(value, max);\n if (minOrder === null || maxOrder === null) {\n return null;\n }\n if (minOrder < 0) {\n return min;\n }\n if (maxOrder > 0) {\n return max;\n }\n return value;\n}\n\nfunction numberToRational(value: number): Rational | null {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n const match = /^([+-]?)(\\d+)(?:\\.(\\d+))?(?:e([+-]?\\d+))?$/i.exec(\n value.toString(),\n );\n if (!match) {\n return null;\n }\n\n const [, sign, integer, fraction = '', exponentText = '0'] = match;\n const exponent = Number(exponentText) - fraction.length;\n const digits = BigInt(`${sign}${integer}${fraction}`);\n if (exponent >= 0) {\n return {\n denominator: BIGINT_ONE,\n numerator: digits * bigintPowerOfTen(exponent),\n };\n }\n return {\n denominator: bigintPowerOfTen(-exponent),\n numerator: digits,\n };\n}\n\nfunction toRational(value: NumericValue): Rational | null {\n return typeof value === 'bigint'\n ? { denominator: BIGINT_ONE, numerator: value }\n : numberToRational(value);\n}\n\nfunction divideBigints(numerator: bigint, denominator: bigint): number | null {\n if (denominator === BIGINT_ZERO) {\n return null;\n }\n\n const isNegative = numerator < BIGINT_ZERO !== denominator < BIGINT_ZERO;\n const absoluteNumerator = numerator < BIGINT_ZERO ? -numerator : numerator;\n const absoluteDenominator =\n denominator < BIGINT_ZERO ? -denominator : denominator;\n const integer = absoluteNumerator / absoluteDenominator;\n const remainder = absoluteNumerator % absoluteDenominator;\n const fraction =\n (remainder * BIGINT_RATIO_SCALE + absoluteDenominator / BIGINT_TWO) /\n absoluteDenominator;\n const result =\n Number(integer) + Number(fraction) / Number(BIGINT_RATIO_SCALE);\n\n return isNegative ? -result : result;\n}\n\n/**\n * Computes `(value - startValue) / (endValue - startValue)` while retaining\n * bigint precision. Only the final dimensionless interpolation weight is\n * converted to number.\n */\nexport function getNumericWeight(\n startValue: NumericValue,\n endValue: NumericValue,\n value: NumericValue,\n): number | null {\n if (\n typeof startValue === 'number' &&\n typeof endValue === 'number' &&\n typeof value === 'number'\n ) {\n const weight = (value - startValue) / (endValue - startValue);\n return Number.isNaN(weight) ? null : weight;\n }\n\n const start = toRational(startValue);\n const end = toRational(endValue);\n const current = toRational(value);\n if (start === null || end === null || current === null) {\n return null;\n }\n\n const valueDelta =\n current.numerator * start.denominator -\n start.numerator * current.denominator;\n const rangeDelta =\n end.numerator * start.denominator - start.numerator * end.denominator;\n\n return divideBigints(\n valueDelta * end.denominator,\n current.denominator * rangeDelta,\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"numeric-utils.js","sourceRoot":"","sources":["../../../../src/_generated/style-rules/numeric-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * AUTO-GENERATED FILE — DO NOT EDIT.\n * Source of truth: packages/style-rules/src/\n * Regenerate with `pnpm generate:shared` (runs automatically at build/dev/install).\n */\n\n/*!\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 type { BigintLiteral, NumericLiteral } from './literal-types';\n\nexport type NumericValue = number | bigint;\n\ntype Rational = {\n denominator: bigint;\n numerator: bigint;\n};\n\nconst BIGINT_ZERO = BigInt(0);\nconst BIGINT_ONE = BigInt(1);\nconst BIGINT_TWO = BigInt(2);\nconst BIGINT_RATIO_SCALE = BigInt('1000000000000000000');\n\nfunction bigintPowerOfTen(exponent: number): bigint {\n return BigInt(`1${'0'.repeat(exponent)}`);\n}\n\n/** Resolves a native or JSON-safe numeric literal without reducing bigints. */\nexport function resolveNumericLiteral(value: NumericLiteral): NumericValue {\n return typeof value === 'object' ? BigInt(value.bigint) : value;\n}\n\n/** Returns whether a value is the JSON-safe bigint literal shape. */\nexport function isBigintLiteral(value: unknown): value is BigintLiteral {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'bigint' in value &&\n typeof value.bigint === 'string' &&\n /^[+-]?\\d+$/.test(value.bigint)\n );\n}\n\n/**\n * Compares numeric values without coercing bigint operands to number.\n * Returns null for NaN, otherwise -1, 0, or 1.\n */\nexport function compareNumericValues(\n left: NumericValue,\n right: NumericValue,\n): -1 | 0 | 1 | null {\n if (\n (typeof left === 'number' && Number.isNaN(left)) ||\n (typeof right === 'number' && Number.isNaN(right))\n ) {\n return null;\n }\n if (left < right) {\n return -1;\n }\n if (left > right) {\n return 1;\n }\n return 0;\n}\n\n/** Numeric equality that treats equivalent number and bigint values as equal. */\nexport function numericValuesEqual(\n left: NumericValue,\n right: NumericValue,\n): boolean {\n return compareNumericValues(left, right) === 0;\n}\n\n/**\n * Clamps a numeric value between two endpoints. Inverted endpoints are\n * supported, and the original number/bigint representation is retained.\n */\nexport function clampNumericValue(\n value: NumericValue,\n firstBound: NumericValue,\n secondBound: NumericValue,\n): NumericValue | null {\n const boundsOrder = compareNumericValues(firstBound, secondBound);\n if (boundsOrder === null) {\n return null;\n }\n const min = boundsOrder <= 0 ? firstBound : secondBound;\n const max = boundsOrder <= 0 ? secondBound : firstBound;\n const minOrder = compareNumericValues(value, min);\n const maxOrder = compareNumericValues(value, max);\n if (minOrder === null || maxOrder === null) {\n return null;\n }\n if (minOrder < 0) {\n return min;\n }\n if (maxOrder > 0) {\n return max;\n }\n return value;\n}\n\nfunction numberToRational(value: number): Rational | null {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n const match = /^([+-]?)(\\d+)(?:\\.(\\d+))?(?:e([+-]?\\d+))?$/i.exec(\n value.toString(),\n );\n if (!match) {\n return null;\n }\n\n const [, sign, integer, fraction = '', exponentText = '0'] = match;\n const exponent = Number(exponentText) - fraction.length;\n const digits = BigInt(`${sign}${integer}${fraction}`);\n if (exponent >= 0) {\n return {\n denominator: BIGINT_ONE,\n numerator: digits * bigintPowerOfTen(exponent),\n };\n }\n return {\n denominator: bigintPowerOfTen(-exponent),\n numerator: digits,\n };\n}\n\nfunction toRational(value: NumericValue): Rational | null {\n return typeof value === 'bigint'\n ? { denominator: BIGINT_ONE, numerator: value }\n : numberToRational(value);\n}\n\nfunction divideBigints(numerator: bigint, denominator: bigint): number | null {\n if (denominator === BIGINT_ZERO) {\n return null;\n }\n\n const isNegative = numerator < BIGINT_ZERO !== denominator < BIGINT_ZERO;\n const absoluteNumerator = numerator < BIGINT_ZERO ? -numerator : numerator;\n const absoluteDenominator =\n denominator < BIGINT_ZERO ? -denominator : denominator;\n const integer = absoluteNumerator / absoluteDenominator;\n const remainder = absoluteNumerator % absoluteDenominator;\n const fraction =\n (remainder * BIGINT_RATIO_SCALE + absoluteDenominator / BIGINT_TWO) /\n absoluteDenominator;\n const result =\n Number(integer) + Number(fraction) / Number(BIGINT_RATIO_SCALE);\n\n return isNegative ? -result : result;\n}\n\n/**\n * Computes `(value - startValue) / (endValue - startValue)` while retaining\n * bigint precision. Only the final dimensionless interpolation weight is\n * converted to number.\n */\nexport function getNumericWeight(\n startValue: NumericValue,\n endValue: NumericValue,\n value: NumericValue,\n): number | null {\n if (\n typeof startValue === 'number' &&\n typeof endValue === 'number' &&\n typeof value === 'number'\n ) {\n const weight = (value - startValue) / (endValue - startValue);\n return Number.isNaN(weight) ? null : weight;\n }\n\n const start = toRational(startValue);\n const end = toRational(endValue);\n const current = toRational(value);\n if (start === null || end === null || current === null) {\n return null;\n }\n\n const valueDelta =\n current.numerator * start.denominator -\n start.numerator * current.denominator;\n const rangeDelta =\n end.numerator * start.denominator - start.numerator * end.denominator;\n\n return divideBigints(\n valueDelta * end.denominator,\n current.denominator * rangeDelta,\n );\n}\n"]}
|