@synerise/ds-subject 1.0.39 → 1.1.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.1.1](https://github.com/Synerise/synerise-design/compare/@synerise/ds-subject@1.1.0...@synerise/ds-subject@1.1.1) (2025-11-13)
7
+
8
+ **Note:** Version bump only for package @synerise/ds-subject
9
+
10
+
11
+
12
+
13
+
14
+ # [1.1.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-subject@1.0.39...@synerise/ds-subject@1.1.0) (2025-11-06)
15
+
16
+
17
+ ### Features
18
+
19
+ * **dropdown:** dropdownMenu component ([f0ec827](https://github.com/Synerise/synerise-design/commit/f0ec82792cdcb021fa9a454912f6e7a892e53895))
20
+
21
+
22
+
23
+
24
+
6
25
  ## [1.0.39](https://github.com/Synerise/synerise-design/compare/@synerise/ds-subject@1.0.38...@synerise/ds-subject@1.0.39) (2025-10-31)
7
26
 
8
27
  **Note:** Version bump only for package @synerise/ds-subject
package/dist/Subject.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { type SubjectProps } from './Subject.types';
3
- declare const Subject: React.FC<SubjectProps>;
3
+ declare const Subject: ({ selectedItem, iconPlaceholder, items, placeholder, onSelectItem, onShowPreview, type, getPopupContainerOverride, onActivate, onDeactivate, texts, opened, }: SubjectProps) => React.JSX.Element;
4
4
  export default Subject;
package/dist/Subject.js CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useEffect } from 'react';
2
2
  import Dropdown from '@synerise/ds-dropdown';
3
3
  import Icon, { ShowM } from '@synerise/ds-icon';
4
4
  import * as S from './Subject.style';
@@ -26,15 +26,18 @@ var Subject = function Subject(_ref) {
26
26
  }, [type]);
27
27
  var onDropdownVisibilityChange = React.useCallback(function (value) {
28
28
  value && onActivate && onActivate('');
29
- !value && onDeactivate && onDeactivate();
30
- }, [onActivate, onDeactivate]);
31
- React.useEffect(function () {
29
+ setDropdownVisible(value);
30
+ }, [onActivate]);
31
+ useEffect(function () {
32
32
  setDropdownVisible(Boolean(opened));
33
33
  }, [opened]);
34
34
  return /*#__PURE__*/React.createElement(S.Subject, null, /*#__PURE__*/React.createElement(Dropdown, {
35
- visible: dropdownVisible,
35
+ open: dropdownVisible,
36
36
  getPopupContainer: getPopupContainerOverride,
37
- onVisibleChange: onDropdownVisibilityChange,
37
+ onOpenChange: onDropdownVisibilityChange,
38
+ onDismiss: onDeactivate,
39
+ size: "medium",
40
+ asChild: true,
38
41
  overlay: /*#__PURE__*/React.createElement(SubjectList, {
39
42
  texts: texts,
40
43
  items: items,
@@ -42,7 +45,10 @@ var Subject = function Subject(_ref) {
42
45
  hideDropdown: function hideDropdown() {
43
46
  return setDropdownVisible(false);
44
47
  }
45
- })
48
+ }),
49
+ popoverProps: {
50
+ testId: 'subject'
51
+ }
46
52
  }, /*#__PURE__*/React.createElement(SubjectTrigger, {
47
53
  onClick: function onClick() {
48
54
  return setDropdownVisible(true);
@@ -1,3 +1,29 @@
1
- import Button from '@synerise/ds-button';
2
- export declare const ShowPreviewButton: import("styled-components").StyledComponent<typeof Button, any, {}, never>;
1
+ export declare const ShowPreviewButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Omit<Partial<{
2
+ href: string;
3
+ target?: string;
4
+ onClick?: React.MouseEventHandler<HTMLElement>;
5
+ } & import("antd/lib/button/button").BaseButtonProps & Omit<import("react").AnchorHTMLAttributes<any>, "type" | "onClick"> & {
6
+ htmlType?: import("antd/lib/button/button").ButtonHTMLType;
7
+ onClick?: React.MouseEventHandler<HTMLElement>;
8
+ } & Omit<import("react").ButtonHTMLAttributes<any>, "type" | "onClick">>, "type" | "ghost"> & {
9
+ type?: import("@synerise/ds-utils").LiteralStringUnion<import("@synerise/ds-button/dist/Button.types").ButtonType>;
10
+ mode?: import("@synerise/ds-utils").LiteralStringUnion<"single-icon" | "split" | "two-icons" | "label-icon" | "icon-label">;
11
+ color?: import("@synerise/ds-utils").LiteralStringUnion<"blue" | "grey" | "red" | "green" | "yellow" | "pink" | "mars" | "orange" | "fern" | "cyan" | "purple" | "violet">;
12
+ groupVariant?: import("@synerise/ds-utils").LiteralStringUnion<"left-rounded" | "squared" | "right-rounded">;
13
+ justifyContent?: string;
14
+ loading?: boolean | {
15
+ delay?: number;
16
+ };
17
+ onClick?: (event: import("react").MouseEvent<HTMLElement>) => void;
18
+ iconColor?: import("@synerise/ds-utils").LiteralStringUnion<"blue" | "grey" | "red" | "green" | "yellow" | "pink" | "mars" | "orange" | "fern" | "cyan" | "purple" | "violet">;
19
+ error?: boolean;
20
+ readOnly?: boolean;
21
+ tagProps?: import("@synerise/ds-tag").TagProps;
22
+ tooltipProps?: import("@synerise/ds-tooltip").TooltipProps;
23
+ } & import("react").RefAttributes<HTMLButtonElement>> & {
24
+ Creator: import("react").ForwardRefExoticComponent<Omit<import("@synerise/ds-button").CreatorProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
25
+ Expander: ({ size, expanded, disabled, onClick, className, }: import("@synerise/ds-button").ExpanderProps) => import("react").JSX.Element;
26
+ Star: (props: import("@synerise/ds-button").StarButtonProps) => React.ReactElement;
27
+ Checkbox: (props: import("@synerise/ds-button").CheckboxButtonProps) => React.ReactElement;
28
+ }, any, {}, never>;
3
29
  export declare const Subject: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -4,7 +4,7 @@ import Dropdown from '@synerise/ds-dropdown';
4
4
  import Icon, { SearchM } from '@synerise/ds-icon';
5
5
  import Result from '@synerise/ds-result';
6
6
  import Scrollbar from '@synerise/ds-scrollbar';
7
- import { focusWithArrowKeys, useOnClickOutside } from '@synerise/ds-utils';
7
+ import { focusWithArrowKeys } from '@synerise/ds-utils';
8
8
  import * as S from './SubjectList.styles';
9
9
  import SubjectListItem from './SubjectListItem';
10
10
  var SubjectList = function SubjectList(_ref) {
@@ -22,9 +22,6 @@ var SubjectList = function SubjectList(_ref) {
22
22
  var classNames = React.useMemo(function () {
23
23
  return "ds-subject-item ds-subject-item-" + uuid();
24
24
  }, []);
25
- useOnClickOutside(overlayRef, function () {
26
- hideDropdown();
27
- });
28
25
  var renderItems = React.useMemo(function () {
29
26
  return items.filter(function (item) {
30
27
  return item.name.toLowerCase().includes(searchQuery.toLowerCase());
@@ -43,9 +40,6 @@ var SubjectList = function SubjectList(_ref) {
43
40
  });
44
41
  }, [items, searchQuery, hideDropdown, onSelectItem, setSearchQuery, classNames]);
45
42
  return /*#__PURE__*/React.createElement(Dropdown.Wrapper, {
46
- style: {
47
- width: '300px'
48
- },
49
43
  ref: overlayRef,
50
44
  "data-testid": "subject-overlay",
51
45
  onKeyDown: function onKeyDown(e) {
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
- import { type SubjectTriggerProps } from '../Subject.types';
3
- declare const SubjectTrigger: React.FC<SubjectTriggerProps>;
2
+ declare const SubjectTrigger: React.ForwardRefExoticComponent<Pick<import("../Subject.types").SubjectProps, "placeholder" | "iconPlaceholder" | "selectedItem"> & {
3
+ color: string;
4
+ onClick: () => void;
5
+ } & React.RefAttributes<HTMLButtonElement>>;
4
6
  export default SubjectTrigger;
@@ -1,19 +1,20 @@
1
- import React from 'react';
1
+ import React, { forwardRef, useMemo } from 'react';
2
2
  import Button from '@synerise/ds-button';
3
3
  import Icon, { AngleDownS } from '@synerise/ds-icon';
4
- var SubjectTrigger = function SubjectTrigger(_ref) {
4
+ var SubjectTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
5
5
  var iconPlaceholder = _ref.iconPlaceholder,
6
6
  placeholder = _ref.placeholder,
7
7
  selectedItem = _ref.selectedItem,
8
8
  color = _ref.color,
9
9
  onClick = _ref.onClick;
10
- var icon = React.useMemo(function () {
10
+ var icon = useMemo(function () {
11
11
  return selectedItem !== undefined ? selectedItem.icon : iconPlaceholder;
12
12
  }, [selectedItem, iconPlaceholder]);
13
- var label = React.useMemo(function () {
13
+ var label = useMemo(function () {
14
14
  return selectedItem !== undefined ? selectedItem.name : placeholder;
15
15
  }, [selectedItem, placeholder]);
16
16
  return /*#__PURE__*/React.createElement(Button, {
17
+ ref: ref,
17
18
  "data-testid": "subject-trigger",
18
19
  type: "custom-color",
19
20
  mode: "two-icons",
@@ -24,5 +25,5 @@ var SubjectTrigger = function SubjectTrigger(_ref) {
24
25
  }), label, /*#__PURE__*/React.createElement(Icon, {
25
26
  component: /*#__PURE__*/React.createElement(AngleDownS, null)
26
27
  }));
27
- };
28
+ });
28
29
  export default SubjectTrigger;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-subject",
3
- "version": "1.0.39",
3
+ "version": "1.1.1",
4
4
  "description": "Subject UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -35,12 +35,12 @@
35
35
  ],
36
36
  "types": "dist/index.d.ts",
37
37
  "dependencies": {
38
- "@synerise/ds-button": "^1.4.16",
39
- "@synerise/ds-dropdown": "^1.0.34",
40
- "@synerise/ds-icon": "^1.7.3",
41
- "@synerise/ds-list-item": "^1.1.0",
42
- "@synerise/ds-result": "^1.0.29",
43
- "@synerise/ds-scrollbar": "^1.1.9",
38
+ "@synerise/ds-button": "^1.5.0",
39
+ "@synerise/ds-dropdown": "^1.1.1",
40
+ "@synerise/ds-icon": "^1.8.0",
41
+ "@synerise/ds-list-item": "^1.2.0",
42
+ "@synerise/ds-result": "^1.0.30",
43
+ "@synerise/ds-scrollbar": "^1.2.0",
44
44
  "@synerise/ds-utils": "^1.5.0",
45
45
  "uuid": "^8.3.2"
46
46
  },
@@ -49,5 +49,5 @@
49
49
  "react": ">=16.9.0 <= 18.3.1",
50
50
  "styled-components": "^5.3.3"
51
51
  },
52
- "gitHead": "73989f3707121812fcd54f3e89e80f6228298689"
52
+ "gitHead": "085189e79075b23a8fb86ce9b7d930f6ac7b3d23"
53
53
  }