@aristobyte-ui/dropdown 2.4.0 → 2.5.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.
@@ -0,0 +1,64 @@
1
+ @use '@aristobyte-ui/utils/styles' as *;
2
+
3
+ .dropdown {
4
+ width: max-content;
5
+
6
+ &__button {
7
+ width: max-content;
8
+ }
9
+
10
+ &__box {
11
+ &-variant--default &-options {
12
+ background-color: $color-default;
13
+ }
14
+
15
+ &-variant--primary &-options {
16
+ background-color: $color-primary;
17
+ }
18
+
19
+ &-variant--secondary &-options {
20
+ background-color: $color-secondary;
21
+ }
22
+
23
+ &-variant--warning &-options {
24
+ background-color: $color-warning;
25
+ }
26
+
27
+ &-variant--error &-options {
28
+ background-color: $color-error;
29
+ }
30
+
31
+ &-variant--success &-options {
32
+ background-color: $color-success;
33
+ }
34
+
35
+ &-overlay {
36
+ backdrop-filter: blur(12px);
37
+ height: 100%;
38
+ left: 0;
39
+ position: fixed;
40
+ top: 0;
41
+ width: 100%;
42
+ z-index: 99999999999;
43
+ }
44
+
45
+ &-options {
46
+ align-items: flex-start;
47
+ border-radius: 8px; //TODO: change to dynamic
48
+ box-shadow:
49
+ 0 4px 6px rgba(0, 0, 0, 0.04),
50
+ 0 12px 24px rgba(0, 0, 0, 0.1);
51
+ display: flex;
52
+ flex-direction: column;
53
+ opacity: 1;
54
+ min-width: 300px;
55
+ padding: 4px;
56
+ position: absolute;
57
+ transition:
58
+ transform 200ms $cubic-bezier-secondary,
59
+ opacity 150ms ease;
60
+ width: 100%;
61
+ z-index: 99999999999;
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { type IDropdownOption } from '../DropdownOption';
3
+ import { type IButton } from '@aristobyte-ui/button';
4
+ import './Dropdown.scss';
5
+ export interface IDropdown {
6
+ children: React.ReactElement<IDropdownOption> | React.ReactElement<IDropdownOption>[];
7
+ value: string;
8
+ button?: Omit<IButton, 'children' | 'dangerouslySetInnerHTML'>;
9
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning';
10
+ appearance?: 'solid' | 'outline' | 'outline-dashed' | 'no-outline' | 'glowing';
11
+ onChange?: (newValue: string) => void;
12
+ initiallyOpened?: boolean;
13
+ choice?: 'multiple' | 'single';
14
+ placeholder?: string;
15
+ disabled?: boolean;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ }
19
+ export declare const Dropdown: React.FC<IDropdown>;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/dropdown/src/main/components/Dropdown/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,iBAAiB,CAAC;AAQzB,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,yBAAyB,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAChF,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA4JxC,CAAC"}
@@ -0,0 +1,68 @@
1
+ @use '@aristobyte-ui/utils/styles' as *;
2
+
3
+ .dropdown-option {
4
+ align-items: center;
5
+ border-radius: 8px; //TODO: change to dynamic
6
+ color: $white;
7
+ display: flex;
8
+ font-size: 14px;
9
+ font-weight: 500;
10
+ gap: 10px;
11
+ padding: 10px 16px;
12
+ text-align: left;
13
+ transition: all 120ms ease-out;
14
+ width: 100%;
15
+
16
+ &-variant {
17
+ &--default:hover {
18
+ background-color: $color-default-hover;
19
+ }
20
+
21
+ &--primary:hover {
22
+ background-color: $color-primary-hover;
23
+ }
24
+
25
+ &--secondary:hover {
26
+ background-color: $color-secondary-hover;
27
+ }
28
+
29
+ &--warning:hover {
30
+ background-color: $color-warning-hover;
31
+ }
32
+
33
+ &--error:hover {
34
+ background-color: $color-error-hover;
35
+ }
36
+
37
+ &--success:hover {
38
+ background-color: $color-success-hover;
39
+ }
40
+ }
41
+
42
+ &--disabled,
43
+ &--disabled:hover {
44
+ background-color: $color-default-disabled;
45
+ cursor: auto;
46
+ opacity: 0.5;
47
+ }
48
+
49
+ &__title {
50
+ color: $white;
51
+ }
52
+
53
+ &__description {
54
+ color: rgba($white, 0.6);
55
+ }
56
+
57
+ &__tick {
58
+ color: rgba($white, 0.6);
59
+ opacity: 0;
60
+ transform: scale(0, 0.7) translate(0, 10px);
61
+ transition: all 120ms ease-out;
62
+
63
+ &--active {
64
+ opacity: 1;
65
+ transform: scale(1) translate(0);
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import './DropdownOption.scss';
3
+ export interface IDropdownOption {
4
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning';
5
+ appearance?: 'solid' | 'outline' | 'outline-dashed' | 'no-outline' | 'glowing';
6
+ children: string;
7
+ value: string;
8
+ onChange?: () => void;
9
+ selectedValues?: string[];
10
+ description?: string;
11
+ icon?: string;
12
+ disabled?: boolean;
13
+ choice?: 'multiple' | 'single';
14
+ style?: React.CSSProperties;
15
+ }
16
+ export declare const DropdownOption: React.FC<IDropdownOption>;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/dropdown/src/main/components/DropdownOption/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAChF,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+BpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./Dropdown";
2
+ export * from "./DropdownOption";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/dropdown/src/main/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './components';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/dropdown/src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,64 @@
1
+ @use '@aristobyte-ui/utils/styles' as *;
2
+
3
+ .dropdown {
4
+ width: max-content;
5
+
6
+ &__button {
7
+ width: max-content;
8
+ }
9
+
10
+ &__box {
11
+ &-variant--default &-options {
12
+ background-color: $color-default;
13
+ }
14
+
15
+ &-variant--primary &-options {
16
+ background-color: $color-primary;
17
+ }
18
+
19
+ &-variant--secondary &-options {
20
+ background-color: $color-secondary;
21
+ }
22
+
23
+ &-variant--warning &-options {
24
+ background-color: $color-warning;
25
+ }
26
+
27
+ &-variant--error &-options {
28
+ background-color: $color-error;
29
+ }
30
+
31
+ &-variant--success &-options {
32
+ background-color: $color-success;
33
+ }
34
+
35
+ &-overlay {
36
+ backdrop-filter: blur(12px);
37
+ height: 100%;
38
+ left: 0;
39
+ position: fixed;
40
+ top: 0;
41
+ width: 100%;
42
+ z-index: 99999999999;
43
+ }
44
+
45
+ &-options {
46
+ align-items: flex-start;
47
+ border-radius: 8px; //TODO: change to dynamic
48
+ box-shadow:
49
+ 0 4px 6px rgba(0, 0, 0, 0.04),
50
+ 0 12px 24px rgba(0, 0, 0, 0.1);
51
+ display: flex;
52
+ flex-direction: column;
53
+ opacity: 1;
54
+ min-width: 300px;
55
+ padding: 4px;
56
+ position: absolute;
57
+ transition:
58
+ transform 200ms $cubic-bezier-secondary,
59
+ opacity 150ms ease;
60
+ width: 100%;
61
+ z-index: 99999999999;
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { type IDropdownOption } from '../DropdownOption';
3
+ import { type IButton } from '@aristobyte-ui/button';
4
+ import './Dropdown.scss';
5
+ export interface IDropdown {
6
+ children: React.ReactElement<IDropdownOption> | React.ReactElement<IDropdownOption>[];
7
+ value: string;
8
+ button?: Omit<IButton, 'children' | 'dangerouslySetInnerHTML'>;
9
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning';
10
+ appearance?: 'solid' | 'outline' | 'outline-dashed' | 'no-outline' | 'glowing';
11
+ onChange?: (newValue: string) => void;
12
+ initiallyOpened?: boolean;
13
+ choice?: 'multiple' | 'single';
14
+ placeholder?: string;
15
+ disabled?: boolean;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ }
19
+ export declare const Dropdown: React.FC<IDropdown>;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/dropdown/src/main/components/Dropdown/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,iBAAiB,CAAC;AAQzB,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,yBAAyB,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAChF,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA4JxC,CAAC"}
@@ -0,0 +1,68 @@
1
+ @use '@aristobyte-ui/utils/styles' as *;
2
+
3
+ .dropdown-option {
4
+ align-items: center;
5
+ border-radius: 8px; //TODO: change to dynamic
6
+ color: $white;
7
+ display: flex;
8
+ font-size: 14px;
9
+ font-weight: 500;
10
+ gap: 10px;
11
+ padding: 10px 16px;
12
+ text-align: left;
13
+ transition: all 120ms ease-out;
14
+ width: 100%;
15
+
16
+ &-variant {
17
+ &--default:hover {
18
+ background-color: $color-default-hover;
19
+ }
20
+
21
+ &--primary:hover {
22
+ background-color: $color-primary-hover;
23
+ }
24
+
25
+ &--secondary:hover {
26
+ background-color: $color-secondary-hover;
27
+ }
28
+
29
+ &--warning:hover {
30
+ background-color: $color-warning-hover;
31
+ }
32
+
33
+ &--error:hover {
34
+ background-color: $color-error-hover;
35
+ }
36
+
37
+ &--success:hover {
38
+ background-color: $color-success-hover;
39
+ }
40
+ }
41
+
42
+ &--disabled,
43
+ &--disabled:hover {
44
+ background-color: $color-default-disabled;
45
+ cursor: auto;
46
+ opacity: 0.5;
47
+ }
48
+
49
+ &__title {
50
+ color: $white;
51
+ }
52
+
53
+ &__description {
54
+ color: rgba($white, 0.6);
55
+ }
56
+
57
+ &__tick {
58
+ color: rgba($white, 0.6);
59
+ opacity: 0;
60
+ transform: scale(0, 0.7) translate(0, 10px);
61
+ transition: all 120ms ease-out;
62
+
63
+ &--active {
64
+ opacity: 1;
65
+ transform: scale(1) translate(0);
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import './DropdownOption.scss';
3
+ export interface IDropdownOption {
4
+ variant?: 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning';
5
+ appearance?: 'solid' | 'outline' | 'outline-dashed' | 'no-outline' | 'glowing';
6
+ children: string;
7
+ value: string;
8
+ onChange?: () => void;
9
+ selectedValues?: string[];
10
+ description?: string;
11
+ icon?: string;
12
+ disabled?: boolean;
13
+ choice?: 'multiple' | 'single';
14
+ style?: React.CSSProperties;
15
+ }
16
+ export declare const DropdownOption: React.FC<IDropdownOption>;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/dropdown/src/main/components/DropdownOption/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAChF,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+BpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./Dropdown";
2
+ export * from "./DropdownOption";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/dropdown/src/main/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './components';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/dropdown/src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aristobyte-ui/dropdown",
3
3
  "description": "react dropdown component with trigger button, dropdownoptions, placement variants, fully typed typescript support, and composable integration with aristobyte ui button",
4
- "version": "2.4.0",
4
+ "version": "2.5.1",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "author": "AristoByte <info@aristobyte.com>",
@@ -45,12 +45,14 @@
45
45
  },
46
46
  "main": "lib/src/main/index.js",
47
47
  "module": "es/src/main/index.js",
48
+ "types": "es/src/main/index.d.ts",
48
49
  "peerDependencies": {
49
50
  "react": "^19.1.0",
50
- "react-dom": "^19.1.0"
51
+ "react-dom": "^19.1.0",
52
+ "sass": "^1.97.3"
51
53
  },
52
54
  "dependencies": {
53
- "@aristobyte-ui/button": "2.4.0",
54
- "@aristobyte-ui/utils": "2.4.0"
55
+ "@aristobyte-ui/button": "^2.5.1",
56
+ "@aristobyte-ui/utils": "^2.5.1"
55
57
  }
56
58
  }