@acusti/dropdown 0.44.0 → 0.44.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/dist/styles.js CHANGED
@@ -83,4 +83,4 @@ ${BODY_SELECTOR} [data-ukt-active] {
83
83
  color: var(--uktdd-body-color-hover);
84
84
  }
85
85
  `;
86
- //# sourceMappingURL=styles.js.map
86
+ //# sourceMappingURL=styles.js.map
@@ -5,16 +5,16 @@
5
5
  * @flow
6
6
  */
7
7
 
8
- declare export var ROOT_CLASS_NAME: "uktdropdown";
9
- declare export var ROOT_SELECTOR: ".uktdropdown";
10
- declare export var BODY_CLASS_NAME: "uktdropdown-body";
11
- declare export var LABEL_CLASS_NAME: "uktdropdown-label";
12
- declare export var LABEL_TEXT_CLASS_NAME: "uktdropdown-label-text";
13
- declare export var TRIGGER_CLASS_NAME: "uktdropdown-trigger";
14
- declare export var BODY_SELECTOR: ".uktdropdown-body";
15
- declare export var LABEL_SELECTOR: ".uktdropdown-label";
16
- declare export var LABEL_TEXT_SELECTOR: ".uktdropdown-label-text";
17
- declare export var TRIGGER_SELECTOR: ".uktdropdown-trigger";
18
- declare export var BODY_MAX_HEIGHT_VAR: "--uktdd-body-max-height";
19
- declare export var BODY_MAX_WIDTH_VAR: "--uktdd-body-max-width";
8
+ declare export var ROOT_CLASS_NAME: 'uktdropdown';
9
+ declare export var ROOT_SELECTOR: '.uktdropdown';
10
+ declare export var BODY_CLASS_NAME: 'uktdropdown-body';
11
+ declare export var LABEL_CLASS_NAME: 'uktdropdown-label';
12
+ declare export var LABEL_TEXT_CLASS_NAME: 'uktdropdown-label-text';
13
+ declare export var TRIGGER_CLASS_NAME: 'uktdropdown-trigger';
14
+ declare export var BODY_SELECTOR: '.uktdropdown-body';
15
+ declare export var LABEL_SELECTOR: '.uktdropdown-label';
16
+ declare export var LABEL_TEXT_SELECTOR: '.uktdropdown-label-text';
17
+ declare export var TRIGGER_SELECTOR: '.uktdropdown-trigger';
18
+ declare export var BODY_MAX_HEIGHT_VAR: '--uktdd-body-max-height';
19
+ declare export var BODY_MAX_WIDTH_VAR: '--uktdd-body-max-width';
20
20
  declare export var STYLES: '\n:root {\n --uktdd-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;\n --uktdd-body-bg-color: #fff;\n --uktdd-body-bg-color-hover: rgb(105,162,249);\n --uktdd-body-color-hover: #fff;\n --uktdd-body-buffer: 10px;\n --uktdd-body-max-height: calc(100vh - var(--uktdd-body-buffer));\n --uktdd-body-max-width: calc(100vw - var(--uktdd-body-buffer));\n --uktdd-body-pad-bottom: 9px;\n --uktdd-body-pad-left: 12px;\n --uktdd-body-pad-right: 12px;\n --uktdd-body-pad-top: 9px;\n --uktdd-label-pad-right: 10px;\n}\n.uktdropdown,\n.uktdropdown-trigger {\n font-family: var(--uktdd-font-family);\n}\n.uktdropdown {\n position: relative;\n display: inline-block;\n}\n.uktdropdown.disabled {\n pointer-events: none;\n}\n.uktdropdown > * {\n cursor: default;\n}\n.uktdropdown-label {\n display: flex;\n}\n.uktdropdown-label-text {\n padding-right: var(--uktdd-label-pad-right);\n}\n.uktdropdown-body {\n box-sizing: border-box;\n position: absolute;\n top: 100%;\n max-height: var(--uktdd-body-max-height);\n min-height: 50px;\n max-width: var(--uktdd-body-max-width);\n min-width: 100%;\n overflow: auto;\n z-index: 2;\n padding: var(--uktdd-body-pad-top) var(--uktdd-body-pad-right) var(--uktdd-body-pad-bottom) var(--uktdd-body-pad-left);\n background-color: var(--uktdd-body-bg-color);\n box-shadow: 0 8px 18px rgba(0,0,0,0.25);\n}\n.uktdropdown-body.calculating-position {\n visibility: hidden;\n}\n.uktdropdown-body.out-of-bounds-bottom:not(.out-of-bounds-top) {\n top: auto;\n bottom: 100%;\n}\n.uktdropdown-body.out-of-bounds-right:not(.out-of-bounds-left) {\n left: auto;\n right: 0px;\n}\n.uktdropdown-label + .uktdropdown-body {\n left: auto;\n right: 0;\n}\n.uktdropdown-body.has-items {\n user-select: none;\n}\n.uktdropdown-body [data-ukt-active] {\n background-color: var(--uktdd-body-bg-color-hover);\n color: var(--uktdd-body-color-hover);\n}\n';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acusti/dropdown",
3
- "version": "0.44.0",
3
+ "version": "0.44.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": "./dist/Dropdown.js",
@@ -49,15 +49,15 @@
49
49
  "happy-dom": "^15.11.7",
50
50
  "react": "^19",
51
51
  "react-dom": "^19",
52
- "typescript": "5.3.3",
52
+ "typescript": "5.7.3",
53
53
  "vitest": "^2.1.8"
54
54
  },
55
55
  "dependencies": {
56
- "@acusti/input-text": "^1.9.0",
56
+ "@acusti/input-text": "^1.9.1",
57
57
  "@acusti/matchmaking": "^0.8.0",
58
- "@acusti/styling": "^1",
58
+ "@acusti/styling": "^1.0.1",
59
59
  "@acusti/use-is-out-of-bounds": "^0.13.0",
60
- "@acusti/use-keyboard-events": "^0.9.0",
60
+ "@acusti/use-keyboard-events": "^0.9.1",
61
61
  "clsx": "^2"
62
62
  },
63
63
  "peerDependencies": {
package/src/Dropdown.tsx CHANGED
@@ -26,8 +26,6 @@ import {
26
26
  TRIGGER_CLASS_NAME,
27
27
  } from './styles.js';
28
28
 
29
- type ChildrenTuple = [React.ReactNode, React.ReactNode];
30
-
31
29
  export type Item = {
32
30
  element: HTMLElement | null;
33
31
  event: Event | React.SyntheticEvent<HTMLElement>;
@@ -49,7 +47,7 @@ export type Props = {
49
47
  /**
50
48
  * Can take a single React element or exactly two renderable children.
51
49
  */
52
- children: React.JSX.Element | ChildrenTuple;
50
+ children: ChildrenTuple | React.JSX.Element;
53
51
  className?: string;
54
52
  disabled?: boolean;
55
53
  /**
@@ -91,10 +89,12 @@ export type Props = {
91
89
  value?: string;
92
90
  };
93
91
 
94
- type TimeoutID = ReturnType<typeof setTimeout>;
92
+ type ChildrenTuple = [React.ReactNode, React.ReactNode];
95
93
 
96
94
  type MousePosition = { clientX: number; clientY: number };
97
95
 
96
+ type TimeoutID = ReturnType<typeof setTimeout>;
97
+
98
98
  const { Children, Fragment, useCallback, useEffect, useMemo, useRef, useState } = React;
99
99
 
100
100
  const noop = () => {}; // eslint-disable-line @typescript-eslint/no-empty-function
@@ -148,10 +148,10 @@ export default function Dropdown({
148
148
 
149
149
  const dropdownElementRef = useRef<HTMLDivElement | null>(null);
150
150
  const inputElementRef = useRef<HTMLInputElement | null>(null);
151
- const closingTimerRef = useRef<TimeoutID | null>(null);
152
- const isOpeningTimerRef = useRef<TimeoutID | null>(null);
153
- const currentInputMethodRef = useRef<'mouse' | 'keyboard'>('mouse');
154
- const clearEnteredCharactersTimerRef = useRef<TimeoutID | null>(null);
151
+ const closingTimerRef = useRef<null | TimeoutID>(null);
152
+ const isOpeningTimerRef = useRef<null | TimeoutID>(null);
153
+ const currentInputMethodRef = useRef<'keyboard' | 'mouse'>('mouse');
154
+ const clearEnteredCharactersTimerRef = useRef<null | TimeoutID>(null);
155
155
  const enteredCharactersRef = useRef<string>('');
156
156
  const mouseDownPositionRef = useRef<MousePosition | null>(null);
157
157
  const outOfBounds = useIsOutOfBounds(dropdownBodyElement);
package/src/helpers.ts CHANGED
@@ -10,7 +10,7 @@ export const getItemElements = (dropdownElement: HTMLElement | null) => {
10
10
  const bodyElement = dropdownElement.querySelector(BODY_SELECTOR);
11
11
  if (!bodyElement) return null;
12
12
 
13
- let items: NodeListOf<Element> | HTMLCollection =
13
+ let items: HTMLCollection | NodeListOf<Element> =
14
14
  bodyElement.querySelectorAll(ITEM_SELECTOR);
15
15
 
16
16
  if (items.length) return items;