@n8n/design-system 2.35.2 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/components/N8nDatatable/Datatable.vue.d.ts +1 -1
  2. package/dist/components/N8nFormInput/FormInput.vue.d.ts +1 -1
  3. package/dist/components/N8nIcon/icons.d.ts +1 -0
  4. package/dist/components/N8nIconPicker/IconPicker.utils.d.ts +13 -0
  5. package/dist/components/N8nIconPicker/IconPicker.vue.d.ts +13 -5
  6. package/dist/components/N8nIconPicker/useIconPickerSearch.d.ts +1 -2
  7. package/dist/components/N8nPagination/Pagination.types.d.ts +24 -0
  8. package/dist/components/N8nPagination/Pagination.vue.d.ts +34 -52
  9. package/dist/components/N8nPagination/index.d.ts +2 -0
  10. package/dist/components/N8nPagination/reka-ui.d.ts +2 -0
  11. package/dist/components/N8nSelect/Select.vue.d.ts +7 -7
  12. package/dist/components/N8nToggle/Toggle.vue.d.ts +4 -0
  13. package/dist/css/_tokens.scss +4 -0
  14. package/dist/css/common/var.scss +0 -22
  15. package/dist/css/dialog.scss +8 -23
  16. package/dist/css/index.scss +0 -1
  17. package/dist/css/loading.scss +9 -7
  18. package/dist/css/message-box.scss +8 -23
  19. package/dist/css/mixins/_floating-item.scss +13 -0
  20. package/dist/css/mixins/_popover.scss +80 -0
  21. package/dist/css/mixins/index.scss +2 -0
  22. package/dist/css/mixins/mixins.scss +30 -0
  23. package/dist/css/mixins/motion.scss +7 -0
  24. package/dist/css/skeleton.scss +4 -0
  25. package/dist/{en-Dvx8tZIA.js → en-BrDOZbhj.js} +15 -2
  26. package/dist/icons/lucide/index.d.ts +2 -0
  27. package/dist/icons/lucide/index.js +26 -25
  28. package/dist/index.d.ts +9 -6
  29. package/dist/index.js +9347 -8495
  30. package/dist/{lucideIconData-B3lNk4Jv.js → lucideIconData-CKJ1do82.js} +2 -2
  31. package/dist/plugin-DT0YTbz-.js +35 -0
  32. package/dist/plugin.js +2 -0
  33. package/dist/style.css +1 -1
  34. package/dist/theme.css +1 -1
  35. package/dist/useIconBodyLoader-TKQVcLVc.js +8 -0
  36. package/dist/v2/components/Combobox/Combobox.types.d.ts +67 -0
  37. package/dist/v2/components/Combobox/Combobox.vue.d.ts +304 -0
  38. package/dist/v2/components/Combobox/ComboboxItem.vue.d.ts +17 -0
  39. package/dist/v2/components/Combobox/index.d.ts +3 -0
  40. package/dist/v2/components/Combobox/reka-ui.d.ts +2 -0
  41. package/dist/v2/components/TagsInput/TagsInput.types.d.ts +7 -3
  42. package/dist/v2/components/TagsInput/TagsInput.vue.d.ts +6 -3
  43. package/package.json +8 -4
  44. package/dist/components/N8nRadioButtons/RadioButtons.types.d.ts +0 -13
  45. package/dist/css/pagination.scss +0 -534
  46. package/dist/en-CIboFQvZ.js +0 -2
  47. package/dist/v2/components/Pagination/Pagination.types.d.ts +0 -49
  48. package/dist/v2/components/Pagination/Pagination.vue.d.ts +0 -45
  49. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/RadioGroup.types.d.ts +0 -0
  50. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/RadioGroup.vue.d.ts +0 -0
  51. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/RadioGroupItem.types.d.ts +0 -0
  52. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/RadioGroupItem.vue.d.ts +0 -0
  53. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/index.d.ts +0 -0
  54. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/radio-group-context.d.ts +0 -0
  55. /package/dist/{v2/components/RadioGroup → components/N8nRadioGroup}/reka-ui.d.ts +0 -0
  56. /package/dist/{emojiData-DjghW_MV.js → emojiData-zOxnhmb7.js} +0 -0
  57. /package/dist/{lucide-icons-bucket-0-_FAUqb7V.js → lucide-icons-bucket-0-DqyR_rVv.js} +0 -0
  58. /package/dist/{lucide-icons-bucket-1-Di6-h4oX.js → lucide-icons-bucket-1-Bm-V3uZ6.js} +0 -0
  59. /package/dist/{lucide-icons-bucket-10-Cbet_3-P.js → lucide-icons-bucket-10-DiRCwi50.js} +0 -0
  60. /package/dist/{lucide-icons-bucket-11-DXByO0iR.js → lucide-icons-bucket-11-Ds8QwYDh.js} +0 -0
  61. /package/dist/{lucide-icons-bucket-12-BgdKhqIx.js → lucide-icons-bucket-12-D9Z8UvgY.js} +0 -0
  62. /package/dist/{lucide-icons-bucket-13-CPZPIjuP.js → lucide-icons-bucket-13-C9gGGcMo.js} +0 -0
  63. /package/dist/{lucide-icons-bucket-14-CoBYaDIN.js → lucide-icons-bucket-14-BWliLnR1.js} +0 -0
  64. /package/dist/{lucide-icons-bucket-15-eHHlEyaM.js → lucide-icons-bucket-15-CLY5CBLS.js} +0 -0
  65. /package/dist/{lucide-icons-bucket-2-1f3EoyT5.js → lucide-icons-bucket-2-CbY7fxwP.js} +0 -0
  66. /package/dist/{lucide-icons-bucket-3-GJHLvy9q.js → lucide-icons-bucket-3-BETKMrI1.js} +0 -0
  67. /package/dist/{lucide-icons-bucket-4-4gywAul8.js → lucide-icons-bucket-4-BPArXNh5.js} +0 -0
  68. /package/dist/{lucide-icons-bucket-5-4iCem2l-.js → lucide-icons-bucket-5-BieAWTJB.js} +0 -0
  69. /package/dist/{lucide-icons-bucket-6-iE4ywa_E.js → lucide-icons-bucket-6-AleswO1A.js} +0 -0
  70. /package/dist/{lucide-icons-bucket-7-BPXrMpDj.js → lucide-icons-bucket-7-D80iZbJz.js} +0 -0
  71. /package/dist/{lucide-icons-bucket-8-DbHwuUDR.js → lucide-icons-bucket-8-pvdXrKbw.js} +0 -0
  72. /package/dist/{lucide-icons-bucket-9-DYv2gFrZ.js → lucide-icons-bucket-9-by9vBB8Z.js} +0 -0
  73. /package/dist/{node-icons-C_zc8eJj.js → node-icons-CaKBLFvs.js} +0 -0
@@ -1,5 +1,5 @@
1
- import { DatatableColumn, DatatableRow, DatatableRowDataType } from '../../types';
2
1
  import { DatatableProps } from './Datatable.types';
2
+ import { DatatableColumn, DatatableRow, DatatableRowDataType } from '../../types';
3
3
  declare const _default: <Item extends DatatableRow>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
4
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
5
5
  readonly "onUpdate:currentPage"?: ((value: number) => any) | undefined;
@@ -205,10 +205,10 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
205
205
  minRows: number;
206
206
  maxRows: number;
207
207
  };
208
+ labelSize: "small" | "medium" | "large";
208
209
  showRequiredAsterisk: boolean;
209
210
  validateOnBlur: boolean;
210
211
  documentationText: string;
211
- labelSize: "small" | "medium" | "large";
212
212
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
213
213
  inputRef: ({
214
214
  $: import('vue').ComponentInternalInstance;
@@ -366,6 +366,7 @@ export declare const updatedIconSet: {
366
366
  readonly italic: import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
367
367
  readonly 'key-round': import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
368
368
  readonly languages: import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
369
+ readonly laptop: import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
369
370
  readonly layers: import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
370
371
  readonly 'layout-template': import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
371
372
  readonly lightbulb: import('vue').FunctionalComponent<import('vue').SVGAttributes, {}, any, {}>;
@@ -0,0 +1,13 @@
1
+ import { IconPickerVirtualRow } from './useIconPickerVirtualRows';
2
+ export type PickerCoordinate = {
3
+ row: number;
4
+ column: number;
5
+ };
6
+ export type PickerDirection = 'up' | 'down' | 'left' | 'right';
7
+ export declare function getPickerDirection(key: string): PickerDirection | undefined;
8
+ export declare function getPickerOptionId(coordinate: PickerCoordinate): string;
9
+ export declare function isSamePickerCoordinate(left: PickerCoordinate | null, right: PickerCoordinate): boolean;
10
+ export declare function humanizeIconName(name: string): string;
11
+ export declare function getRowItemCount(row: IconPickerVirtualRow): number;
12
+ export declare function getPickerCoordinates(rows: IconPickerVirtualRow[]): PickerCoordinate[];
13
+ export declare function getAdjacentPickerCoordinate(rows: IconPickerVirtualRow[], current: PickerCoordinate, direction: PickerDirection): PickerCoordinate | undefined;
@@ -1,13 +1,17 @@
1
1
  import { nextTick } from 'vue';
2
2
  import { IconOrEmoji } from './types';
3
+ import { ButtonVariant, ButtonSize } from '../../types/button';
4
+ type TabType = 'icons' | 'emojis';
3
5
  type Props = {
4
- buttonTooltip: string;
5
- buttonSize?: 'small' | 'large' | 'xlarge';
6
6
  isReadOnly?: boolean;
7
7
  iconsOnly?: boolean;
8
8
  showColorPicker?: boolean;
9
9
  containerClass?: string | Record<string, boolean> | Array<string | Record<string, boolean>>;
10
+ buttonTooltip: string;
11
+ buttonVariant?: ButtonVariant;
12
+ buttonSize?: ButtonSize;
10
13
  buttonClass?: string | Record<string, boolean> | Array<string | Record<string, boolean>>;
14
+ defaultTab?: TabType;
11
15
  };
12
16
  type __VLS_Props = Props;
13
17
  type __VLS_PublicProps = {
@@ -18,11 +22,15 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
18
22
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
19
23
  "onUpdate:modelValue"?: ((value: IconOrEmoji) => any) | undefined;
20
24
  }>, {
21
- buttonSize: "small" | "large" | "xlarge";
25
+ buttonSize: ButtonSize;
26
+ buttonVariant: ButtonVariant;
22
27
  iconsOnly: boolean;
23
28
  showColorPicker: boolean;
29
+ containerClass: string | Record<string, boolean> | Array<string | Record<string, boolean>>;
30
+ buttonClass: string | Record<string, boolean> | Array<string | Record<string, boolean>>;
31
+ defaultTab: TabType;
24
32
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
25
- container: HTMLDivElement;
33
+ popupRef: HTMLDivElement;
26
34
  searchInputRef: ({
27
35
  $: import('vue').ComponentInternalInstance;
28
36
  $data: {};
@@ -202,5 +210,5 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
202
210
  }>, {
203
211
  isOpen: import('vue').Ref<boolean, boolean>;
204
212
  }, {}, {}, {}, {}> | null;
205
- }, HTMLDivElement>;
213
+ }, any>;
206
214
  export default _default;
@@ -14,9 +14,8 @@ export interface IconSection {
14
14
  labelKey: string;
15
15
  icons: Array<[string, LucideIconMeta]>;
16
16
  }
17
- export declare function useIconPickerSearch(lucideData: Ref<Record<string, LucideIconMeta> | null>, emojiSectionsData: Ref<EmojiSection[]>, query: Ref<string>, selectedCategory: Ref<string | null>, selectedSkinTone: Ref<number>, delay?: number): {
17
+ export declare function useIconPickerSearch(lucideData: Ref<Record<string, LucideIconMeta> | null>, emojiSectionsData: Ref<EmojiSection[]>, query: Ref<string>, selectedCategory: Ref<string | null>, selectedSkinTone: Ref<number>): {
18
18
  filteredIcons: import('vue').ComputedRef<[string, LucideIconMeta][]>;
19
19
  filteredIconSections: import('vue').ComputedRef<IconSection[]>;
20
20
  filteredEmojiSections: import('vue').ComputedRef<DisplayEmojiSection[]>;
21
- debouncedQuery: Readonly<Ref<string, string>>;
22
21
  };
@@ -0,0 +1,24 @@
1
+ import { PaginationRootEmits, PaginationRootProps } from './reka-ui';
2
+ export type PaginationSizes = 'small' | 'medium';
3
+ export type PaginationProps = Omit<PaginationRootProps, 'dir' | 'asChild' | 'as' | 'itemsPerPage' | 'total'> & {
4
+ total: number;
5
+ itemsPerPage?: number;
6
+ defaultItemsPerPage?: number;
7
+ pageSizes?: number[];
8
+ showTotal?: boolean;
9
+ showSizes?: boolean;
10
+ showJumper?: boolean;
11
+ hideOnSinglePage?: boolean;
12
+ size?: PaginationSizes;
13
+ };
14
+ export type PaginationEmits = PaginationRootEmits & {
15
+ 'update:itemsPerPage': [value: number];
16
+ };
17
+ export type PaginationSlots = {
18
+ prev?: (props: {
19
+ disabled: boolean;
20
+ }) => unknown;
21
+ next?: (props: {
22
+ disabled: boolean;
23
+ }) => unknown;
24
+ };
@@ -1,56 +1,38 @@
1
- declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
- pageSize: NumberConstructor;
3
- defaultPageSize: NumberConstructor;
4
- total: NumberConstructor;
5
- pageCount: NumberConstructor;
6
- pagerCount: import('element-plus/es/utils/index.mjs').EpPropFinalized<NumberConstructor, unknown, unknown, 7, boolean>;
7
- currentPage: NumberConstructor;
8
- defaultCurrentPage: NumberConstructor;
9
- layout: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
10
- pageSizes: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => number[]) | (() => number[]) | ((new (...args: any[]) => number[]) | (() => number[]))[], unknown, unknown, () => [10, 20, 30, 40, 50, 100], boolean>;
11
- popperClass: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
12
- prevText: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
13
- prevIcon: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown, () => any, boolean>;
14
- nextText: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
15
- nextIcon: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown, () => any, boolean>;
16
- teleported: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
17
- small: BooleanConstructor;
18
- background: BooleanConstructor;
19
- disabled: BooleanConstructor;
20
- hideOnSinglePage: BooleanConstructor;
21
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
22
- pageSize: NumberConstructor;
23
- defaultPageSize: NumberConstructor;
24
- total: NumberConstructor;
25
- pageCount: NumberConstructor;
26
- pagerCount: import('element-plus/es/utils/index.mjs').EpPropFinalized<NumberConstructor, unknown, unknown, 7, boolean>;
27
- currentPage: NumberConstructor;
28
- defaultCurrentPage: NumberConstructor;
29
- layout: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
30
- pageSizes: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => number[]) | (() => number[]) | ((new (...args: any[]) => number[]) | (() => number[]))[], unknown, unknown, () => [10, 20, 30, 40, 50, 100], boolean>;
31
- popperClass: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
32
- prevText: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
33
- prevIcon: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown, () => any, boolean>;
34
- nextText: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
35
- nextIcon: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown, () => any, boolean>;
36
- teleported: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
37
- small: BooleanConstructor;
38
- background: BooleanConstructor;
39
- disabled: BooleanConstructor;
40
- hideOnSinglePage: BooleanConstructor;
41
- }>> & Readonly<{}>, {
42
- small: boolean;
1
+ import { PaginationProps, PaginationSlots } from './Pagination.types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: Readonly<PaginationSlots> & PaginationSlots;
5
+ refs: {
6
+ jumperInput: HTMLInputElement;
7
+ };
8
+ rootEl: any;
9
+ };
10
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
+ declare const __VLS_component: import('vue').DefineComponent<PaginationProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ "update:page": (value: number) => any;
13
+ "update:itemsPerPage": (value: number) => any;
14
+ }, string, import('vue').PublicProps, Readonly<PaginationProps> & Readonly<{
15
+ "onUpdate:page"?: ((value: number) => any) | undefined;
16
+ "onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
17
+ }>, {
43
18
  disabled: boolean;
44
- teleported: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
45
- popperClass: string;
46
- layout: string;
47
- background: boolean;
48
- pagerCount: number;
19
+ size: import('./Pagination.types').PaginationSizes;
20
+ defaultPage: number;
21
+ siblingCount: number;
22
+ showEdges: boolean;
23
+ defaultItemsPerPage: number;
49
24
  pageSizes: number[];
50
- prevText: string;
51
- prevIcon: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown>;
52
- nextText: string;
53
- nextIcon: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) | ((new (...args: any[]) => (string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>) & {}) | (() => string | import('vue').Component<any, any, any, import('vue').ComputedOptions, import('vue').MethodOptions>))[], unknown, unknown>;
25
+ showTotal: boolean;
26
+ showSizes: boolean;
27
+ showJumper: boolean;
54
28
  hideOnSinglePage: boolean;
55
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
30
+ jumperInput: HTMLInputElement;
31
+ }, any>;
32
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
56
33
  export default _default;
34
+ type __VLS_WithTemplateSlots<T, S> = T & {
35
+ new (): {
36
+ $slots: S;
37
+ };
38
+ };
@@ -1,2 +1,4 @@
1
1
  import { default as N8nPagination } from './Pagination.vue';
2
2
  export default N8nPagination;
3
+ export { N8nPagination };
4
+ export type * from './Pagination.types';
@@ -0,0 +1,2 @@
1
+ export { PaginationEllipsis, PaginationList, PaginationListItem, PaginationNext, PaginationPrev, PaginationRoot, useForwardProps, } from 'reka-ui';
2
+ export type { PaginationRootEmits, PaginationRootProps } from 'reka-ui';
@@ -101,6 +101,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
101
101
  validateEvent: {
102
102
  type: PropType<boolean | undefined>;
103
103
  };
104
+ valueKey: {
105
+ type: PropType<string | undefined>;
106
+ };
104
107
  automaticDropdown: {
105
108
  type: PropType<boolean | undefined>;
106
109
  };
@@ -119,9 +122,6 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
119
122
  reserveKeyword: {
120
123
  type: PropType<boolean | undefined>;
121
124
  };
122
- valueKey: {
123
- type: PropType<string | undefined>;
124
- };
125
125
  collapseTags: {
126
126
  type: PropType<boolean | undefined>;
127
127
  };
@@ -233,6 +233,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
233
233
  validateEvent: {
234
234
  type: PropType<boolean | undefined>;
235
235
  };
236
+ valueKey: {
237
+ type: PropType<string | undefined>;
238
+ };
236
239
  automaticDropdown: {
237
240
  type: PropType<boolean | undefined>;
238
241
  };
@@ -251,9 +254,6 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
251
254
  reserveKeyword: {
252
255
  type: PropType<boolean | undefined>;
253
256
  };
254
- valueKey: {
255
- type: PropType<string | undefined>;
256
- };
257
257
  collapseTags: {
258
258
  type: PropType<boolean | undefined>;
259
259
  };
@@ -285,8 +285,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
285
285
  disabled: boolean;
286
286
  size: "small" | "mini" | "medium" | "large" | "xlarge";
287
287
  loading: boolean;
288
- filterable: boolean;
289
288
  multiple: boolean;
289
+ filterable: boolean;
290
290
  multipleLimit: number;
291
291
  defaultFirstOption: boolean;
292
292
  popperAppendToBody: boolean;
@@ -5,6 +5,7 @@ export interface ToggleProps extends Pick<ButtonProps, 'variant' | 'size' | 'dis
5
5
  modelValue?: boolean | null;
6
6
  value?: AcceptableValue;
7
7
  label: string;
8
+ showTooltip?: boolean;
8
9
  icon?: IconName;
9
10
  name?: string;
10
11
  required?: boolean;
@@ -14,6 +15,8 @@ declare function __VLS_template(): {
14
15
  slots: {
15
16
  default?(_: {}): any;
16
17
  default?(_: {}): any;
18
+ default?(_: {}): any;
19
+ default?(_: {}): any;
17
20
  };
18
21
  refs: {};
19
22
  rootEl: any;
@@ -27,6 +30,7 @@ declare const __VLS_component: import('vue').DefineComponent<ToggleProps, {}, {}
27
30
  disabled: boolean;
28
31
  size: import('../..').ButtonSize;
29
32
  variant: import('../..').ButtonVariant | import('../..').LegacyButtonVariant;
33
+ showTooltip: boolean;
30
34
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
35
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
32
36
  export default _default;
@@ -247,8 +247,10 @@
247
247
  --tag--padding: 0 var(--spacing--4xs);
248
248
  --tag--color--background: var(--color--neutral-125);
249
249
  --tag--color--background--hover: var(--color--neutral-150);
250
+ --tag--color--background--active: var(--color--neutral-200);
250
251
  --tag--border-color: var(--color--neutral-150);
251
252
  --tag--border-color--hover: var(--color--neutral-200);
253
+ --tag--border-color--active: var(--color--neutral-250);
252
254
  --tag--radius: var(--radius);
253
255
  --tag--color--text: var(--color--text);
254
256
  --tag--font-size: var(--font-size--2xs);
@@ -877,8 +879,10 @@
877
879
  // Tag
878
880
  --tag--color--background: var(--color--neutral-700);
879
881
  --tag--color--background--hover: var(--color--neutral-600);
882
+ --tag--color--background--active: var(--color--neutral-500);
880
883
  --tag--border-color: var(--color--neutral-800);
881
884
  --tag--border-color--hover: var(--color--neutral-700);
885
+ --tag--border-color--active: var(--color--neutral-600);
882
886
  --tag--color--text: var(--color--text--shade-1);
883
887
 
884
888
  // Variables
@@ -699,28 +699,6 @@ $table-row-striped-background-color: var(--table--row--color--background--even);
699
699
  $table-header-background-color: $color-white;
700
700
  $table-fixed-box-shadow: 0 0 10px rgba(0, 0, 0, 0.12);
701
701
 
702
- /* Pagination
703
- -------------------------- */
704
- /// fontSize||Font|1
705
- $pagination-font-size: var(--font-size--2xs);
706
- /// color||Color|0
707
- $pagination-background-color: $color-white;
708
- /// color||Color|0
709
- $pagination-font-color: var(--color--text--shade-1);
710
- $pagination-border-radius: 3px;
711
- /// color||Color|0
712
- $pagination-button-color: var(--color--text--shade-1);
713
- /// height||Other|4
714
- $pagination-button-width: 35.5px;
715
- /// height||Other|4
716
- $pagination-button-height: 28px;
717
- /// color||Color|0
718
- $pagination-button-disabled-color: var(--color--text--tint-2);
719
- /// color||Color|0
720
- $pagination-button-disabled-background-color: $color-white;
721
- /// color||Color|0
722
- $pagination-hover-color: var(--color--primary);
723
-
724
702
  /* Popup
725
703
  -------------------------- */
726
704
  /// color||Color|0
@@ -1,4 +1,5 @@
1
1
  @use 'mixins/mixins';
2
+ @use 'mixins/motion';
2
3
  @use 'mixins/utils';
3
4
  @use './common/var';
4
5
  @use 'common/popup';
@@ -113,31 +114,15 @@
113
114
  }
114
115
 
115
116
  .dialog-fade-enter-active {
116
- animation: dialog-fade-in 0.3s;
117
- }
117
+ --animation--fade-in-down--duration: 0.3s;
118
+ --animation--fade-in-down--translate: 20px;
118
119
 
119
- .dialog-fade-leave-active {
120
- animation: dialog-fade-out 0.3s;
120
+ @include motion.fade-in-down;
121
121
  }
122
122
 
123
- @keyframes dialog-fade-in {
124
- 0% {
125
- transform: translate3d(0, -20px, 0);
126
- opacity: 0;
127
- }
128
- 100% {
129
- transform: translate3d(0, 0, 0);
130
- opacity: 1;
131
- }
132
- }
123
+ .dialog-fade-leave-active {
124
+ --animation--fade-out-up--duration: 0.3s;
125
+ --animation--fade-out-up--translate: 20px;
133
126
 
134
- @keyframes dialog-fade-out {
135
- 0% {
136
- transform: translate3d(0, 0, 0);
137
- opacity: 1;
138
- }
139
- 100% {
140
- transform: translate3d(0, -20px, 0);
141
- opacity: 0;
142
- }
127
+ @include motion.fade-out-up;
143
128
  }
@@ -4,7 +4,6 @@
4
4
  @use './base.scss';
5
5
  @use './fonts.scss';
6
6
  @use './markdown.scss';
7
- @use './pagination.scss';
8
7
  @use './dialog.scss';
9
8
  @use './dropdown.scss';
10
9
  @use './menu.scss';
@@ -1,4 +1,5 @@
1
1
  @use 'mixins/mixins';
2
+ @use 'mixins/motion';
2
3
  @use './common/var';
3
4
 
4
5
  @include mixins.b(loading-parent) {
@@ -22,6 +23,8 @@
22
23
  left: 0;
23
24
  transition: opacity 0.3s;
24
25
 
26
+ @include motion.reduced-motion;
27
+
25
28
  @include mixins.when(fullscreen) {
26
29
  position: fixed;
27
30
 
@@ -55,14 +58,19 @@
55
58
  }
56
59
 
57
60
  .circular {
61
+ --animation--spin--duration: 2s;
62
+
58
63
  max-height: 100%;
59
64
  height: var.$loading-spinner-size;
60
65
  width: var.$loading-spinner-size;
61
- animation: loading-rotate 2s linear infinite;
66
+
67
+ @include motion.spin;
62
68
  }
63
69
 
64
70
  .path {
65
71
  animation: loading-dash 1.5s ease-in-out infinite;
72
+
73
+ @include motion.reduced-motion;
66
74
  stroke-dasharray: 90, 150;
67
75
  stroke-dashoffset: 0;
68
76
  stroke-width: 2;
@@ -80,12 +88,6 @@
80
88
  opacity: 0;
81
89
  }
82
90
 
83
- @keyframes loading-rotate {
84
- 100% {
85
- transform: rotate(360deg);
86
- }
87
- }
88
-
89
91
  @keyframes loading-dash {
90
92
  0% {
91
93
  stroke-dasharray: 1, 200;
@@ -1,4 +1,5 @@
1
1
  @use 'mixins/mixins';
2
+ @use 'mixins/motion';
2
3
  @use './common/var';
3
4
  @use 'common/popup';
4
5
  @use 'input';
@@ -323,31 +324,15 @@
323
324
  }
324
325
 
325
326
  .msgbox-fade-enter-active {
326
- animation: msgbox-fade-in 0.3s;
327
- }
327
+ --animation--fade-in-down--duration: 0.3s;
328
+ --animation--fade-in-down--translate: 20px;
328
329
 
329
- .msgbox-fade-leave-active {
330
- animation: msgbox-fade-out 0.3s;
330
+ @include motion.fade-in-down;
331
331
  }
332
332
 
333
- @keyframes msgbox-fade-in {
334
- 0% {
335
- transform: translate3d(0, -20px, 0);
336
- opacity: 0;
337
- }
338
- 100% {
339
- transform: translate3d(0, 0, 0);
340
- opacity: 1;
341
- }
342
- }
333
+ .msgbox-fade-leave-active {
334
+ --animation--fade-out-up--duration: 0.3s;
335
+ --animation--fade-out-up--translate: 20px;
343
336
 
344
- @keyframes msgbox-fade-out {
345
- 0% {
346
- transform: translate3d(0, 0, 0);
347
- opacity: 1;
348
- }
349
- 100% {
350
- transform: translate3d(0, -20px, 0);
351
- opacity: 0;
352
- }
337
+ @include motion.fade-out-up;
353
338
  }
@@ -0,0 +1,13 @@
1
+ @mixin floating-item {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--spacing--2xs);
5
+ position: relative;
6
+ user-select: none;
7
+ outline: none;
8
+ font-size: var(--font-size--sm);
9
+ line-height: var(--line-height--sm);
10
+ min-height: var(--spacing--xl);
11
+ padding: var(--spacing--2xs);
12
+ border-radius: var(--radius--2xs);
13
+ }
@@ -0,0 +1,80 @@
1
+ @use 'motion';
2
+ @use '../common/var';
3
+
4
+ @mixin popover-surface($z-index: var.$index-popper, $slide-distance: var(--spacing--5xs)) {
5
+ --n8n--popover--offset--slide-distance: #{$slide-distance};
6
+ --n8n--popover--offset--slide-x: 0;
7
+ --n8n--popover--offset--slide-y: 0;
8
+ --n8n--popover--offset--origin-x: center;
9
+ --n8n--popover--offset--origin-y: center;
10
+ --animation--popover-in--translate-x: var(--n8n--popover--offset--slide-x);
11
+ --animation--popover-in--translate-y: var(--n8n--popover--offset--slide-y);
12
+
13
+ overflow: hidden;
14
+ border-radius: var(--popover-content--radius, var(--radius--xs));
15
+ background-color: var(--background--surface);
16
+ --shadow-color--outline: var(--border-color);
17
+ box-shadow:
18
+ var(--shadow--md),
19
+ inset var(--shadow--outline);
20
+ will-change: transform, opacity;
21
+ transform-origin: var(--n8n--popover--offset--origin-x) var(--n8n--popover--offset--origin-y);
22
+
23
+ @if $z-index {
24
+ z-index: $z-index;
25
+ }
26
+
27
+ &[data-state='open'] {
28
+ @include motion.popover-in;
29
+ }
30
+
31
+ &[data-state='closed'] {
32
+ display: none;
33
+ }
34
+ }
35
+
36
+ @mixin popover-placement-offsets() {
37
+ &[data-state='open'][data-side='top'] {
38
+ --n8n--popover--offset--slide-y: calc(-1 * var(--n8n--popover--offset--slide-distance));
39
+ --n8n--popover--offset--origin-y: bottom;
40
+ }
41
+
42
+ &[data-state='open'][data-side='right'] {
43
+ --n8n--popover--offset--slide-x: var(--n8n--popover--offset--slide-distance);
44
+ --n8n--popover--offset--origin-x: left;
45
+ }
46
+
47
+ &[data-state='open'][data-side='bottom'] {
48
+ --n8n--popover--offset--slide-y: var(--n8n--popover--offset--slide-distance);
49
+ --n8n--popover--offset--origin-y: top;
50
+ }
51
+
52
+ &[data-state='open'][data-side='left'] {
53
+ --n8n--popover--offset--slide-x: calc(-1 * var(--n8n--popover--offset--slide-distance));
54
+ --n8n--popover--offset--origin-x: right;
55
+ }
56
+
57
+ &[data-state='open'][data-side='top'][data-align='start'],
58
+ &[data-state='open'][data-side='bottom'][data-align='start'] {
59
+ --n8n--popover--offset--slide-x: calc(-1 * var(--n8n--popover--offset--slide-distance));
60
+ --n8n--popover--offset--origin-x: left;
61
+ }
62
+
63
+ &[data-state='open'][data-side='top'][data-align='end'],
64
+ &[data-state='open'][data-side='bottom'][data-align='end'] {
65
+ --n8n--popover--offset--slide-x: var(--n8n--popover--offset--slide-distance);
66
+ --n8n--popover--offset--origin-x: right;
67
+ }
68
+
69
+ &[data-state='open'][data-side='left'][data-align='start'],
70
+ &[data-state='open'][data-side='right'][data-align='start'] {
71
+ --n8n--popover--offset--slide-y: calc(-1 * var(--n8n--popover--offset--slide-distance));
72
+ --n8n--popover--offset--origin-y: top;
73
+ }
74
+
75
+ &[data-state='open'][data-side='left'][data-align='end'],
76
+ &[data-state='open'][data-side='right'][data-align='end'] {
77
+ --n8n--popover--offset--slide-y: var(--n8n--popover--offset--slide-distance);
78
+ --n8n--popover--offset--origin-y: bottom;
79
+ }
80
+ }
@@ -1,9 +1,11 @@
1
1
  @forward 'breakpoints';
2
2
  @forward 'button' hide $B, $E;
3
3
  @forward 'config';
4
+ @forward 'floating-item';
4
5
  @forward 'focus';
5
6
  @forward 'function';
6
7
  @forward 'input';
7
8
  @forward 'markdown';
8
9
  @forward 'mixins';
10
+ @forward 'popover';
9
11
  @forward 'utils';
@@ -74,6 +74,36 @@ $E: null;
74
74
  }
75
75
  }
76
76
 
77
+ @mixin scroll-mask($edge, $size: var(--spacing--sm)) {
78
+ @if $edge == top {
79
+ mask-image: linear-gradient(to bottom, transparent 0, black $size, black 100%);
80
+ } @else if $edge == bottom {
81
+ mask-image: linear-gradient(to bottom, black 0, black calc(100% - $size), transparent 100%);
82
+ } @else if $edge == left {
83
+ mask-image: linear-gradient(to right, transparent 0, black $size, black 100%);
84
+ } @else if $edge == right {
85
+ mask-image: linear-gradient(to right, black 0, black calc(100% - $size), transparent 100%);
86
+ } @else if $edge == y {
87
+ mask-image: linear-gradient(
88
+ to bottom,
89
+ transparent 0,
90
+ black $size,
91
+ black calc(100% - $size),
92
+ transparent 100%
93
+ );
94
+ } @else if $edge == x {
95
+ mask-image: linear-gradient(
96
+ to right,
97
+ transparent 0,
98
+ black $size,
99
+ black calc(100% - $size),
100
+ transparent 100%
101
+ );
102
+ } @else {
103
+ @error "Unsupported scroll mask edge: #{$edge}";
104
+ }
105
+ }
106
+
77
107
  /* Placeholder
78
108
  -------------------------- */
79
109
  @mixin placeholder {