inconel 0.1.16 → 0.1.18

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 (32) hide show
  1. package/dist/cjs/components/CheckBoxList/CheckBoxList.cjs +2 -0
  2. package/dist/cjs/components/CheckBoxList/CheckBoxList.cjs.map +1 -0
  3. package/dist/cjs/components/FloatingPanel/FloatingPanel.cjs +2 -0
  4. package/dist/cjs/components/FloatingPanel/FloatingPanel.cjs.map +1 -0
  5. package/dist/cjs/components/MultiSelectCheckBox/MultiSelectCheckBox.cjs +2 -0
  6. package/dist/cjs/components/MultiSelectCheckBox/MultiSelectCheckBox.cjs.map +1 -0
  7. package/dist/cjs/index.cjs +1 -1
  8. package/dist/cjs/styles.css +1 -1
  9. package/dist/components/CheckBoxList/CheckBoxList.d.ts +25 -0
  10. package/dist/components/CheckBoxList/CheckBoxList.d.ts.map +1 -0
  11. package/dist/components/CheckBoxList/CheckBoxList.js +243 -0
  12. package/dist/components/CheckBoxList/CheckBoxList.js.map +1 -0
  13. package/dist/components/CheckBoxList/index.d.ts +3 -0
  14. package/dist/components/CheckBoxList/index.d.ts.map +1 -0
  15. package/dist/components/FloatingPanel/FloatingPanel.d.ts +29 -0
  16. package/dist/components/FloatingPanel/FloatingPanel.d.ts.map +1 -0
  17. package/dist/components/FloatingPanel/FloatingPanel.js +180 -0
  18. package/dist/components/FloatingPanel/FloatingPanel.js.map +1 -0
  19. package/dist/components/FloatingPanel/index.d.ts +3 -0
  20. package/dist/components/FloatingPanel/index.d.ts.map +1 -0
  21. package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.d.ts +40 -0
  22. package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.d.ts.map +1 -0
  23. package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.js +315 -0
  24. package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.js.map +1 -0
  25. package/dist/components/MultiSelectCheckBox/index.d.ts +3 -0
  26. package/dist/components/MultiSelectCheckBox/index.d.ts.map +1 -0
  27. package/dist/components/index.d.ts +3 -0
  28. package/dist/components/index.d.ts.map +1 -1
  29. package/dist/index.js +76 -70
  30. package/dist/index.js.map +1 -1
  31. package/dist/styles.css +1 -1
  32. package/package.json +1 -1
@@ -0,0 +1,243 @@
1
+ import { jsxs as u, jsx as l } from "react/jsx-runtime";
2
+ import { useState as O, useCallback as h, useMemo as b, useEffect as ee } from "react";
3
+ import { classNames as F } from "../shared/classNames.js";
4
+ /* empty css */
5
+ function a(f) {
6
+ return f != null;
7
+ }
8
+ const I = [];
9
+ function se({
10
+ id: f = null,
11
+ className: U = null,
12
+ options: V = I,
13
+ defaultSelectedOptions: L = I,
14
+ optionLabel: T = "label",
15
+ optionValue: k = "value",
16
+ multiple: d = !0,
17
+ transferMode: $ = !1,
18
+ disabled: s = !1,
19
+ selectedText: G = "seçildi",
20
+ emptyText: H = "Veri bulunamadı",
21
+ sourceTitle: J = "Veriler",
22
+ selectedTitle: K = "Seçilenler",
23
+ transferAllText: Q = "Tümünü aktar",
24
+ clearAllText: W = "Tümünü temizle",
25
+ searchPlaceholder: N = "Ara",
26
+ onChange: E
27
+ }) {
28
+ const [r, j] = O([]), [_, w] = O(""), [S, X] = O(""), t = h(
29
+ (e) => e?.[k] ?? e?.value ?? e?.id,
30
+ [k]
31
+ ), p = h(
32
+ (e) => e?.[T] ?? e?.label ?? e?.name ?? "",
33
+ [T]
34
+ ), z = b(() => L.map((c) => {
35
+ if (c && typeof c == "object") {
36
+ const n = c;
37
+ return n[k] ?? n.value ?? n.id;
38
+ }
39
+ return c;
40
+ }).filter(a), [L, k]), o = b(() => {
41
+ const e = /* @__PURE__ */ new Map();
42
+ return V.forEach((c) => {
43
+ const n = t(c);
44
+ a(n) && !e.has(n) && e.set(n, c);
45
+ }), Array.from(e.values());
46
+ }, [t, V]), g = b(
47
+ () => o.filter((e) => {
48
+ const c = t(e);
49
+ return a(c) && r.includes(c);
50
+ }),
51
+ [t, o, r]
52
+ ), y = b(
53
+ () => o.filter((e) => {
54
+ const c = t(e);
55
+ return !a(c) || !r.includes(c);
56
+ }),
57
+ [t, o, r]
58
+ ), v = h(
59
+ (e, c) => {
60
+ const n = c.trim().toLocaleLowerCase();
61
+ return n ? e.filter(
62
+ (i) => String(p(i)).toLocaleLowerCase().includes(n)
63
+ ) : e;
64
+ },
65
+ [p]
66
+ ), M = b(
67
+ () => v(y, _),
68
+ [v, _, y]
69
+ ), q = b(
70
+ () => v(g, S),
71
+ [v, g, S]
72
+ ), B = b(
73
+ () => v(o, _),
74
+ [v, o, _]
75
+ ), D = h(
76
+ (e) => {
77
+ const c = o.filter((i) => {
78
+ const m = t(i);
79
+ return a(m) && e.includes(m);
80
+ }), n = o.filter((i) => {
81
+ const m = t(i);
82
+ return !a(m) || !e.includes(m);
83
+ });
84
+ E?.(c, n);
85
+ },
86
+ [t, o, E]
87
+ ), x = h(
88
+ (e) => {
89
+ const c = d ? e : e.slice(-1);
90
+ j(c), D(c);
91
+ },
92
+ [D, d]
93
+ ), R = h(
94
+ (e) => {
95
+ if (s) return;
96
+ const c = t(e);
97
+ if (!a(c)) return;
98
+ if (r.includes(c)) {
99
+ x(
100
+ r.filter((i) => i !== c)
101
+ );
102
+ return;
103
+ }
104
+ x(d ? [...r, c] : [c]);
105
+ },
106
+ [s, t, d, r, x]
107
+ ), Z = h(() => {
108
+ if (s) return;
109
+ const e = o.map((c) => t(c)).filter(a);
110
+ x(d ? e : e.slice(0, 1));
111
+ }, [s, t, d, o, x]), P = h(() => {
112
+ s || x([]);
113
+ }, [s, x]);
114
+ ee(() => {
115
+ const e = o.map((i) => t(i)).filter(a), c = z.filter(
116
+ (i) => e.includes(i)
117
+ ), n = d ? c : c.slice(0, 1);
118
+ j(n);
119
+ }, [t, d, z, o]);
120
+ const C = h(
121
+ (e, c = "list") => {
122
+ const n = t(e), i = a(n) && r.includes(n), m = `${f || "inconel-checkbox-list"}-${c}-${String(n)}`, Y = p(e);
123
+ return /* @__PURE__ */ u(
124
+ "label",
125
+ {
126
+ className: F(
127
+ "inconel-checkbox-list__item",
128
+ i && "inconel-is-selected"
129
+ ),
130
+ htmlFor: m,
131
+ title: String(Y),
132
+ children: [
133
+ /* @__PURE__ */ l(
134
+ "input",
135
+ {
136
+ type: "checkbox",
137
+ id: m,
138
+ checked: i,
139
+ disabled: s,
140
+ onChange: () => R(e)
141
+ }
142
+ ),
143
+ /* @__PURE__ */ l("span", { className: "inconel-checkbox-list__checkmark", "aria-hidden": "true" }),
144
+ /* @__PURE__ */ l("span", { className: "inconel-checkbox-list__item-label", children: Y })
145
+ ]
146
+ },
147
+ `${c}-${String(n)}`
148
+ );
149
+ },
150
+ [s, p, t, R, f, r]
151
+ ), A = () => /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__empty", children: H });
152
+ return /* @__PURE__ */ u(
153
+ "div",
154
+ {
155
+ className: F(
156
+ "inconel-checkbox-list",
157
+ $ && "inconel-checkbox-list--transfer-mode",
158
+ s && "inconel-is-disabled",
159
+ U
160
+ ),
161
+ id: f ?? void 0,
162
+ children: [
163
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__summary", children: /* @__PURE__ */ u("span", { children: [
164
+ g.length,
165
+ " ",
166
+ G
167
+ ] }) }),
168
+ $ ? /* @__PURE__ */ u("div", { className: "inconel-checkbox-list__transfer", children: [
169
+ /* @__PURE__ */ u("section", { className: "inconel-checkbox-list__box", children: [
170
+ /* @__PURE__ */ u("div", { className: "inconel-checkbox-list__box-header", children: [
171
+ /* @__PURE__ */ l("span", { children: J }),
172
+ /* @__PURE__ */ l(
173
+ "button",
174
+ {
175
+ type: "button",
176
+ onClick: Z,
177
+ disabled: s || y.length === 0,
178
+ children: Q
179
+ }
180
+ )
181
+ ] }),
182
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-search", children: /* @__PURE__ */ l(
183
+ "input",
184
+ {
185
+ type: "text",
186
+ value: _,
187
+ onChange: (e) => w(e.target.value),
188
+ placeholder: N,
189
+ disabled: s
190
+ }
191
+ ) }),
192
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-body", children: M.length > 0 ? M.map(
193
+ (e) => C(e, "source")
194
+ ) : A() })
195
+ ] }),
196
+ /* @__PURE__ */ u("section", { className: "inconel-checkbox-list__box inconel-checkbox-list__box--selected", children: [
197
+ /* @__PURE__ */ u("div", { className: "inconel-checkbox-list__box-header", children: [
198
+ /* @__PURE__ */ l("span", { children: K }),
199
+ /* @__PURE__ */ l(
200
+ "button",
201
+ {
202
+ type: "button",
203
+ onClick: P,
204
+ disabled: s || g.length === 0,
205
+ children: W
206
+ }
207
+ )
208
+ ] }),
209
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-search", children: /* @__PURE__ */ l(
210
+ "input",
211
+ {
212
+ type: "text",
213
+ value: S,
214
+ onChange: (e) => X(e.target.value),
215
+ placeholder: N,
216
+ disabled: s
217
+ }
218
+ ) }),
219
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-body", children: q.length > 0 ? q.map(
220
+ (e) => C(e, "selected")
221
+ ) : A() })
222
+ ] })
223
+ ] }) : /* @__PURE__ */ u("div", { className: "inconel-checkbox-list__list", children: [
224
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-search", children: /* @__PURE__ */ l(
225
+ "input",
226
+ {
227
+ type: "text",
228
+ value: _,
229
+ onChange: (e) => w(e.target.value),
230
+ placeholder: N,
231
+ disabled: s
232
+ }
233
+ ) }),
234
+ /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__list-body", children: B.length > 0 ? B.map((e) => C(e)) : A() })
235
+ ] })
236
+ ]
237
+ }
238
+ );
239
+ }
240
+ export {
241
+ se as CheckBoxList
242
+ };
243
+ //# sourceMappingURL=CheckBoxList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckBoxList.js","sources":["../../../src/components/CheckBoxList/CheckBoxList.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ChangeEvent,\n type ReactNode,\n} from 'react'\n\nimport { classNames } from '../shared/classNames'\nimport './styles.css'\n\nexport type CheckBoxListValue = string | number\n\nexport interface CheckBoxListOption {\n [key: string]: unknown\n}\n\nexport interface CheckBoxListProps<\n T extends CheckBoxListOption = CheckBoxListOption,\n> {\n id?: string | null\n className?: string | null\n options?: T[]\n defaultSelectedOptions?: Array<T | CheckBoxListValue>\n optionLabel?: string\n optionValue?: string\n multiple?: boolean\n transferMode?: boolean\n disabled?: boolean\n selectedText?: string\n emptyText?: string\n sourceTitle?: string\n selectedTitle?: string\n transferAllText?: string\n clearAllText?: string\n searchPlaceholder?: string\n onChange?: (selected: T[], unselected: T[]) => void\n}\n\nfunction isDefinedValue(\n value: CheckBoxListValue | undefined | null,\n): value is CheckBoxListValue {\n return value !== undefined && value !== null\n}\n\nconst EMPTY_ARRAY: never[] = []\n\nexport function CheckBoxList<\n T extends CheckBoxListOption = CheckBoxListOption,\n>({\n id = null,\n className = null,\n options = EMPTY_ARRAY,\n defaultSelectedOptions = EMPTY_ARRAY,\n optionLabel = 'label',\n optionValue = 'value',\n multiple = true,\n transferMode = false,\n disabled = false,\n selectedText = 'seçildi',\n emptyText = 'Veri bulunamadı',\n sourceTitle = 'Veriler',\n selectedTitle = 'Seçilenler',\n transferAllText = 'Tümünü aktar',\n clearAllText = 'Tümünü temizle',\n searchPlaceholder = 'Ara',\n onChange,\n}: CheckBoxListProps<T>) {\n const [selectedValues, setSelectedValues] = useState<CheckBoxListValue[]>([])\n const [sourceSearch, setSourceSearch] = useState('')\n const [selectedSearch, setSelectedSearch] = useState('')\n\n const getValue = useCallback(\n (option: T) =>\n (option?.[optionValue] ?? option?.value ?? option?.id) as\n | CheckBoxListValue\n | undefined,\n [optionValue],\n )\n\n const getLabel = useCallback(\n (option: T): ReactNode =>\n (option?.[optionLabel] ?? option?.label ?? option?.name ?? '') as ReactNode,\n [optionLabel],\n )\n\n const normalizedDefaultValues = useMemo(() => {\n const values = defaultSelectedOptions.map((item) => {\n if (item && typeof item === 'object') {\n const option = item as T\n return (option[optionValue] ?? option.value ?? option.id) as\n | CheckBoxListValue\n | undefined\n }\n return item\n })\n return values.filter(isDefinedValue)\n }, [defaultSelectedOptions, optionValue])\n\n const normalizedOptions = useMemo(() => {\n const uniqueMap = new Map<CheckBoxListValue, T>()\n options.forEach((option) => {\n const value = getValue(option)\n if (isDefinedValue(value) && !uniqueMap.has(value)) {\n uniqueMap.set(value, option)\n }\n })\n return Array.from(uniqueMap.values())\n }, [getValue, options])\n\n const selectedOptions = useMemo(\n () =>\n normalizedOptions.filter((option) => {\n const value = getValue(option)\n return isDefinedValue(value) && selectedValues.includes(value)\n }),\n [getValue, normalizedOptions, selectedValues],\n )\n\n const unselectedOptions = useMemo(\n () =>\n normalizedOptions.filter((option) => {\n const value = getValue(option)\n return !isDefinedValue(value) || !selectedValues.includes(value)\n }),\n [getValue, normalizedOptions, selectedValues],\n )\n\n const filterBySearch = useCallback(\n (list: T[], searchValue: string) => {\n const query = searchValue.trim().toLocaleLowerCase()\n if (!query) return list\n return list.filter((option) =>\n String(getLabel(option)).toLocaleLowerCase().includes(query),\n )\n },\n [getLabel],\n )\n\n const filteredUnselectedOptions = useMemo(\n () => filterBySearch(unselectedOptions, sourceSearch),\n [filterBySearch, sourceSearch, unselectedOptions],\n )\n\n const filteredSelectedOptions = useMemo(\n () => filterBySearch(selectedOptions, selectedSearch),\n [filterBySearch, selectedOptions, selectedSearch],\n )\n\n const filteredOptions = useMemo(\n () => filterBySearch(normalizedOptions, sourceSearch),\n [filterBySearch, normalizedOptions, sourceSearch],\n )\n\n const emitChange = useCallback(\n (nextValues: CheckBoxListValue[]) => {\n const selected = normalizedOptions.filter((option) => {\n const value = getValue(option)\n return isDefinedValue(value) && nextValues.includes(value)\n })\n const unselected = normalizedOptions.filter((option) => {\n const value = getValue(option)\n return !isDefinedValue(value) || !nextValues.includes(value)\n })\n onChange?.(selected, unselected)\n },\n [getValue, normalizedOptions, onChange],\n )\n\n const updateSelection = useCallback(\n (nextValues: CheckBoxListValue[]) => {\n const cleanValues = multiple ? nextValues : nextValues.slice(-1)\n setSelectedValues(cleanValues)\n emitChange(cleanValues)\n },\n [emitChange, multiple],\n )\n\n const handleToggle = useCallback(\n (option: T) => {\n if (disabled) return\n const value = getValue(option)\n if (!isDefinedValue(value)) return\n const isSelected = selectedValues.includes(value)\n if (isSelected) {\n updateSelection(\n selectedValues.filter((selectedValue) => selectedValue !== value),\n )\n return\n }\n updateSelection(multiple ? [...selectedValues, value] : [value])\n },\n [disabled, getValue, multiple, selectedValues, updateSelection],\n )\n\n const handleTransferAll = useCallback(() => {\n if (disabled) return\n const values = normalizedOptions\n .map((option) => getValue(option))\n .filter(isDefinedValue)\n updateSelection(multiple ? values : values.slice(0, 1))\n }, [disabled, getValue, multiple, normalizedOptions, updateSelection])\n\n const handleClearAll = useCallback(() => {\n if (disabled) return\n updateSelection([])\n }, [disabled, updateSelection])\n\n useEffect(() => {\n const optionValues = normalizedOptions\n .map((option) => getValue(option))\n .filter(isDefinedValue)\n const nextValues = normalizedDefaultValues.filter((value) =>\n optionValues.includes(value),\n )\n const limitedValues = multiple ? nextValues : nextValues.slice(0, 1)\n setSelectedValues(limitedValues)\n }, [getValue, multiple, normalizedDefaultValues, normalizedOptions])\n\n const renderOption = useCallback(\n (option: T, area: 'list' | 'source' | 'selected' = 'list') => {\n const value = getValue(option)\n const checked = isDefinedValue(value) && selectedValues.includes(value)\n const inputId = `${id || 'inconel-checkbox-list'}-${area}-${String(value)}`\n const label = getLabel(option)\n\n return (\n <label\n className={classNames(\n 'inconel-checkbox-list__item',\n checked && 'inconel-is-selected',\n )}\n htmlFor={inputId}\n key={`${area}-${String(value)}`}\n title={String(label)}\n >\n <input\n type=\"checkbox\"\n id={inputId}\n checked={checked}\n disabled={disabled}\n onChange={() => handleToggle(option)}\n />\n <span className=\"inconel-checkbox-list__checkmark\" aria-hidden=\"true\" />\n <span className=\"inconel-checkbox-list__item-label\">{label}</span>\n </label>\n )\n },\n [disabled, getLabel, getValue, handleToggle, id, selectedValues],\n )\n\n const renderEmpty = () => (\n <div className=\"inconel-checkbox-list__empty\">{emptyText}</div>\n )\n\n return (\n <div\n className={classNames(\n 'inconel-checkbox-list',\n transferMode && 'inconel-checkbox-list--transfer-mode',\n disabled && 'inconel-is-disabled',\n className,\n )}\n id={id ?? undefined}\n >\n <div className=\"inconel-checkbox-list__summary\">\n <span>\n {selectedOptions.length} {selectedText}\n </span>\n </div>\n\n {transferMode ? (\n <div className=\"inconel-checkbox-list__transfer\">\n <section className=\"inconel-checkbox-list__box\">\n <div className=\"inconel-checkbox-list__box-header\">\n <span>{sourceTitle}</span>\n <button\n type=\"button\"\n onClick={handleTransferAll}\n disabled={disabled || unselectedOptions.length === 0}\n >\n {transferAllText}\n </button>\n </div>\n\n <div className=\"inconel-checkbox-list__box-search\">\n <input\n type=\"text\"\n value={sourceSearch}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSourceSearch(event.target.value)\n }\n placeholder={searchPlaceholder}\n disabled={disabled}\n />\n </div>\n\n <div className=\"inconel-checkbox-list__box-body\">\n {filteredUnselectedOptions.length > 0\n ? filteredUnselectedOptions.map((option) =>\n renderOption(option, 'source'),\n )\n : renderEmpty()}\n </div>\n </section>\n\n <section className=\"inconel-checkbox-list__box inconel-checkbox-list__box--selected\">\n <div className=\"inconel-checkbox-list__box-header\">\n <span>{selectedTitle}</span>\n <button\n type=\"button\"\n onClick={handleClearAll}\n disabled={disabled || selectedOptions.length === 0}\n >\n {clearAllText}\n </button>\n </div>\n\n <div className=\"inconel-checkbox-list__box-search\">\n <input\n type=\"text\"\n value={selectedSearch}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSelectedSearch(event.target.value)\n }\n placeholder={searchPlaceholder}\n disabled={disabled}\n />\n </div>\n\n <div className=\"inconel-checkbox-list__box-body\">\n {filteredSelectedOptions.length > 0\n ? filteredSelectedOptions.map((option) =>\n renderOption(option, 'selected'),\n )\n : renderEmpty()}\n </div>\n </section>\n </div>\n ) : (\n <div className=\"inconel-checkbox-list__list\">\n <div className=\"inconel-checkbox-list__box-search\">\n <input\n type=\"text\"\n value={sourceSearch}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSourceSearch(event.target.value)\n }\n placeholder={searchPlaceholder}\n disabled={disabled}\n />\n </div>\n\n <div className=\"inconel-checkbox-list__list-body\">\n {filteredOptions.length > 0\n ? filteredOptions.map((option) => renderOption(option))\n : renderEmpty()}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["isDefinedValue","value","EMPTY_ARRAY","CheckBoxList","id","className","options","defaultSelectedOptions","optionLabel","optionValue","multiple","transferMode","disabled","selectedText","emptyText","sourceTitle","selectedTitle","transferAllText","clearAllText","searchPlaceholder","onChange","selectedValues","setSelectedValues","useState","sourceSearch","setSourceSearch","selectedSearch","setSelectedSearch","getValue","useCallback","option","getLabel","normalizedDefaultValues","useMemo","item","normalizedOptions","uniqueMap","selectedOptions","unselectedOptions","filterBySearch","list","searchValue","query","filteredUnselectedOptions","filteredSelectedOptions","filteredOptions","emitChange","nextValues","selected","unselected","updateSelection","cleanValues","handleToggle","selectedValue","handleTransferAll","values","handleClearAll","useEffect","optionValues","limitedValues","renderOption","area","checked","inputId","label","jsxs","classNames","jsx","renderEmpty","event"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { CheckBoxList } from './CheckBoxList';
2
+ export type { CheckBoxListProps, CheckBoxListOption, CheckBoxListValue, } from './CheckBoxList';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CheckBoxList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { ReactNode } from 'react';
2
+ export type FloatingPanelTrianglePosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'left-top' | 'left-center' | 'left-bottom' | 'right-top' | 'right-center' | 'right-bottom';
3
+ export interface FloatingPanelPosition {
4
+ x: number | null;
5
+ y: number | null;
6
+ }
7
+ export interface FloatingPanelProps {
8
+ id?: string | null;
9
+ className?: string;
10
+ target?: HTMLElement | null;
11
+ watchTarget?: boolean;
12
+ trianglePosition?: FloatingPanelTrianglePosition;
13
+ triangleShow?: boolean;
14
+ windowCenterToPage?: boolean;
15
+ closeButtonShow?: boolean;
16
+ onClosed: () => void;
17
+ onOutsideClick?: (event: MouseEvent) => void;
18
+ closeOnScroll?: boolean;
19
+ transition?: 'slide' | 'fade' | 'off';
20
+ draggable?: boolean;
21
+ defaultPositionX?: number | null;
22
+ defaultPositionY?: number | null;
23
+ onPositionChange?: (position: FloatingPanelPosition) => void;
24
+ render?: boolean;
25
+ children?: ReactNode;
26
+ portalTarget?: Element | null;
27
+ }
28
+ export declare function FloatingPanel({ id, className, target, watchTarget, trianglePosition, triangleShow, windowCenterToPage, closeButtonShow, onClosed, onOutsideClick, closeOnScroll, transition, draggable, defaultPositionX, defaultPositionY, onPositionChange, render, children, portalTarget, }: FloatingPanelProps): import('react').ReactPortal | null;
29
+ //# sourceMappingURL=FloatingPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingPanel/FloatingPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIhF,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,6BAA6B,GACrC,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,aAAa,GACb,WAAW,GACX,cAAc,GACd,cAAc,CAAA;AAElB,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,6BAA6B,CAAA;IAChD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAA;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC9B;AASD,wBAAgB,aAAa,CAAC,EAC5B,EAAS,EACT,SAAS,EACT,MAAa,EACb,WAAkB,EAClB,gBAA6B,EAC7B,YAAmB,EACnB,kBAA0B,EAC1B,eAAsB,EACtB,QAAQ,EACR,cAAc,EACd,aAAqB,EACrB,UAAoB,EACpB,SAAiB,EACjB,gBAAuB,EACvB,gBAAuB,EACvB,gBAAgB,EAChB,MAAa,EACb,QAAQ,EACR,YAAY,GACb,EAAE,kBAAkB,sCA6RpB"}
@@ -0,0 +1,180 @@
1
+ import { jsx as M, jsxs as te } from "react/jsx-runtime";
2
+ import { useState as ne, useRef as m, useCallback as d, useEffect as y } from "react";
3
+ import { createPortal as re } from "react-dom";
4
+ import { classNames as oe } from "../shared/classNames.js";
5
+ /* empty css */
6
+ const a = 10, s = 5;
7
+ function k(p) {
8
+ return p != null && !Number.isNaN(p);
9
+ }
10
+ function ue({
11
+ id: p = null,
12
+ className: q,
13
+ target: u = null,
14
+ watchTarget: z = !0,
15
+ trianglePosition: g = "top-left",
16
+ triangleShow: G = !0,
17
+ windowCenterToPage: v = !1,
18
+ closeButtonShow: K = !0,
19
+ onClosed: f,
20
+ onOutsideClick: W,
21
+ closeOnScroll: S = !1,
22
+ transition: j = "slide",
23
+ draggable: w = !1,
24
+ defaultPositionX: L = null,
25
+ defaultPositionY: R = null,
26
+ onPositionChange: C,
27
+ render: N = !0,
28
+ children: U,
29
+ portalTarget: J
30
+ }) {
31
+ const [Q, O] = ne(!1), c = m(null), V = m(null), X = m(null), $ = m({ x: null, y: null }), E = m(
32
+ void 0
33
+ ), I = m(!1), _ = J ?? (typeof document < "u" ? document.body : null), B = N && _ !== null, Y = !w && z && B, D = d(() => {
34
+ const t = c.current;
35
+ if (!t) return;
36
+ const { width: i, height: l } = t.getBoundingClientRect(), n = window.innerWidth / 2, e = window.innerHeight / 2;
37
+ t.style.transform = `translate(${n - i / 2}px, ${e - l / 2}px)`;
38
+ }, []), F = d(() => {
39
+ const t = c.current;
40
+ if (!t || !u) return;
41
+ const i = window.innerWidth, l = window.innerHeight, n = t.getBoundingClientRect(), e = u.getBoundingClientRect(), h = a * 1.5;
42
+ let r = 0, o = 0;
43
+ switch (g) {
44
+ case "top-left":
45
+ r = e.left + e.width / 2 - h, o = e.top + e.height + s;
46
+ break;
47
+ case "top-center":
48
+ r = e.left + e.width / 2 - n.width / 2, o = e.top + e.height + s;
49
+ break;
50
+ case "top-right":
51
+ r = e.left + e.width / 2 - n.width + h, o = e.top + e.height + s;
52
+ break;
53
+ case "bottom-left":
54
+ r = e.left + e.width / 2 - h, o = e.top - n.height - s;
55
+ break;
56
+ case "bottom-center":
57
+ r = e.left + e.width / 2 - n.width / 2, o = e.top - n.height - s;
58
+ break;
59
+ case "bottom-right":
60
+ r = e.left + e.width / 2 - n.width + h, o = e.top - n.height - s;
61
+ break;
62
+ case "left-top":
63
+ r = e.left + e.width + s, o = e.top + e.height / 2 - h;
64
+ break;
65
+ case "left-center":
66
+ r = e.left + e.width + s, o = e.top + e.height / 2 - n.height / 2;
67
+ break;
68
+ case "left-bottom":
69
+ r = e.left + e.width + s, o = e.top + e.height / 2 - n.height + h;
70
+ break;
71
+ case "right-top":
72
+ r = e.left - n.width - s, o = e.top + e.height / 2 - h;
73
+ break;
74
+ case "right-center":
75
+ r = e.left - n.width - s, o = e.top + e.height / 2 - n.height / 2;
76
+ break;
77
+ case "right-bottom":
78
+ r = e.left - n.width - s, o = e.top + e.height / 2 - n.height + h;
79
+ break;
80
+ }
81
+ r = r < a ? a : r, r = r + n.width + a > i ? i - (n.width + a) : r, o = o < a ? a : o, o = o + n.height + a > l ? l - (n.height + a) : o, t.style.transform = `translate(${r}px, ${o}px)`;
82
+ }, [u, g]), T = d(
83
+ (t) => {
84
+ const i = c.current;
85
+ i && !i.contains(t.target) && f();
86
+ },
87
+ [f]
88
+ ), b = d(
89
+ (t) => {
90
+ const i = c.current;
91
+ i && !i.contains(t.target) && W?.(t);
92
+ },
93
+ [W]
94
+ ), Z = d(() => {
95
+ Y && (v ? D() : F()), u && !document.body.contains(u) && (clearInterval(E.current), f());
96
+ }, [f, D, F, u, Y, v]), x = d((t) => {
97
+ t.preventDefault();
98
+ const i = X.current, l = c.current;
99
+ if (!i || !l) return;
100
+ const n = t.pageX - i.x, e = t.pageY - i.y;
101
+ $.current = { x: n, y: e }, I.current && requestAnimationFrame(() => {
102
+ l.style.transform = `translate(${n}px, ${e}px)`;
103
+ }), O(!0);
104
+ }, []), H = d(() => {
105
+ document.removeEventListener("mouseup", H), document.removeEventListener("mousemove", x), I.current = !1, C?.({
106
+ x: $.current.x,
107
+ y: $.current.y
108
+ }), O(!1);
109
+ }, [x, C]), A = d(
110
+ (t) => {
111
+ t.preventDefault();
112
+ const i = c.current;
113
+ if (!i) return;
114
+ const { left: l, top: n } = i.getBoundingClientRect();
115
+ X.current = { x: t.clientX - l, y: t.clientY - n }, I.current = !0, document.addEventListener("mouseup", H), document.addEventListener("mousemove", x);
116
+ },
117
+ [x, H]
118
+ );
119
+ if (y(() => {
120
+ document.removeEventListener("mousedown", b), clearInterval(E.current), !k(L) && !k(R) && (v ? D() : F()), B && document.addEventListener("mousedown", b);
121
+ let t;
122
+ return u && (E.current = setInterval(Z, 100), t = setTimeout(() => {
123
+ c.current?.classList.add("inconel-is-watched");
124
+ }, 500)), () => {
125
+ document.removeEventListener("mousedown", b), clearInterval(E.current), clearTimeout(t);
126
+ };
127
+ }, [N, u, b, v, w]), y(() => {
128
+ if (S)
129
+ return window.addEventListener("scroll", T, !0), () => window.removeEventListener("scroll", T, !0);
130
+ }, [S, T]), y(() => {
131
+ const t = V.current;
132
+ if (!(!t || !w))
133
+ return t.addEventListener("mousedown", A), () => t.removeEventListener("mousedown", A);
134
+ }, [w, A, N]), y(() => {
135
+ k(L) && k(R) && c.current?.style.setProperty(
136
+ "transform",
137
+ `translate(${L}px, ${R}px)`
138
+ );
139
+ }, []), !B || !_) return null;
140
+ const P = G ? g : "inconel-triangle-off", ee = j === "slide" ? `inconel-is-animated-${g.split("-")[0]}` : j === "fade" ? "inconel-is-animation-fade" : void 0;
141
+ return re(
142
+ /* @__PURE__ */ M(
143
+ "div",
144
+ {
145
+ id: p ?? void 0,
146
+ className: oe(
147
+ "inconel-floating-panel",
148
+ P,
149
+ ee,
150
+ Q && "inconel-is-holding",
151
+ q
152
+ ),
153
+ ref: c,
154
+ style: { transform: "translate(-1000px, 0px)" },
155
+ children: /* @__PURE__ */ te("div", { className: "inconel-floating-panel__content", children: [
156
+ w && /* @__PURE__ */ M("div", { className: "inconel-floating-panel__drag-bg", ref: V }),
157
+ U,
158
+ K && /* @__PURE__ */ M(
159
+ "div",
160
+ {
161
+ className: "inconel-floating-panel__close",
162
+ role: "button",
163
+ tabIndex: 0,
164
+ onClick: () => f(),
165
+ onKeyDown: (t) => {
166
+ (t.key === "Enter" || t.key === " ") && f();
167
+ },
168
+ children: "×"
169
+ }
170
+ )
171
+ ] })
172
+ }
173
+ ),
174
+ _
175
+ );
176
+ }
177
+ export {
178
+ ue as FloatingPanel
179
+ };
180
+ //# sourceMappingURL=FloatingPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.js","sources":["../../../src/components/FloatingPanel/FloatingPanel.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { classNames } from '../shared/classNames'\nimport './styles.css'\n\nexport type FloatingPanelTrianglePosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'left-top'\n | 'left-center'\n | 'left-bottom'\n | 'right-top'\n | 'right-center'\n | 'right-bottom'\n\nexport interface FloatingPanelPosition {\n x: number | null\n y: number | null\n}\n\nexport interface FloatingPanelProps {\n id?: string | null\n className?: string\n target?: HTMLElement | null\n watchTarget?: boolean\n trianglePosition?: FloatingPanelTrianglePosition\n triangleShow?: boolean\n windowCenterToPage?: boolean\n closeButtonShow?: boolean\n onClosed: () => void\n onOutsideClick?: (event: MouseEvent) => void\n closeOnScroll?: boolean\n transition?: 'slide' | 'fade' | 'off'\n draggable?: boolean\n defaultPositionX?: number | null\n defaultPositionY?: number | null\n onPositionChange?: (position: FloatingPanelPosition) => void\n render?: boolean\n children?: ReactNode\n portalTarget?: Element | null\n}\n\nconst TRIANGLE_OFFSET = 10\nconst VERTICAL_OFFSET = 5\n\nfunction isValidNumber(value: number | null | undefined): value is number {\n return value !== null && value !== undefined && !Number.isNaN(value)\n}\n\nexport function FloatingPanel({\n id = null,\n className,\n target = null,\n watchTarget = true,\n trianglePosition = 'top-left',\n triangleShow = true,\n windowCenterToPage = false,\n closeButtonShow = true,\n onClosed,\n onOutsideClick,\n closeOnScroll = false,\n transition = 'slide',\n draggable = false,\n defaultPositionX = null,\n defaultPositionY = null,\n onPositionChange,\n render = true,\n children,\n portalTarget,\n}: FloatingPanelProps) {\n const [holding, setHolding] = useState(false)\n const panelRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const referencePosition = useRef<{ x: number; y: number } | null>(null)\n const lastDragPosition = useRef<FloatingPanelPosition>({ x: null, y: null })\n const watchIntervalRef = useRef<ReturnType<typeof setInterval> | undefined>(\n undefined,\n )\n const isDraggingRef = useRef(false)\n\n const resolvedPortalTarget =\n portalTarget ?? (typeof document !== 'undefined' ? document.body : null)\n const show = render && resolvedPortalTarget !== null\n const watchTargetActive = !draggable && watchTarget && show\n\n const setCenter = useCallback(() => {\n const panelElement = panelRef.current\n if (!panelElement) return\n const { width, height } = panelElement.getBoundingClientRect()\n const halfBrowserWidth = window.innerWidth / 2\n const halfBrowserHeight = window.innerHeight / 2\n panelElement.style.transform = `translate(${halfBrowserWidth - width / 2}px, ${\n halfBrowserHeight - height / 2\n }px)`\n }, [])\n\n const setPosition = useCallback(() => {\n const panelElement = panelRef.current\n if (!panelElement || !target) return\n\n const winWidth = window.innerWidth\n const winHeight = window.innerHeight\n const panelRect = panelElement.getBoundingClientRect()\n const targetRect = target.getBoundingClientRect()\n const horizontalOffset = TRIANGLE_OFFSET * 1.5\n\n let posX = 0\n let posY = 0\n\n switch (trianglePosition) {\n case 'top-left':\n posX = targetRect.left + targetRect.width / 2 - horizontalOffset\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'top-center':\n posX = targetRect.left + targetRect.width / 2 - panelRect.width / 2\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'top-right':\n posX =\n targetRect.left + targetRect.width / 2 - panelRect.width + horizontalOffset\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'bottom-left':\n posX = targetRect.left + targetRect.width / 2 - horizontalOffset\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'bottom-center':\n posX = targetRect.left + targetRect.width / 2 - panelRect.width / 2\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'bottom-right':\n posX =\n targetRect.left + targetRect.width / 2 - panelRect.width + horizontalOffset\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'left-top':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - horizontalOffset\n break\n case 'left-center':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - panelRect.height / 2\n break\n case 'left-bottom':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY =\n targetRect.top + targetRect.height / 2 - panelRect.height + horizontalOffset\n break\n case 'right-top':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - horizontalOffset\n break\n case 'right-center':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - panelRect.height / 2\n break\n case 'right-bottom':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY =\n targetRect.top + targetRect.height / 2 - panelRect.height + horizontalOffset\n break\n default:\n break\n }\n\n posX = posX < TRIANGLE_OFFSET ? TRIANGLE_OFFSET : posX\n posX =\n posX + panelRect.width + TRIANGLE_OFFSET > winWidth\n ? winWidth - (panelRect.width + TRIANGLE_OFFSET)\n : posX\n\n posY = posY < TRIANGLE_OFFSET ? TRIANGLE_OFFSET : posY\n posY =\n posY + panelRect.height + TRIANGLE_OFFSET > winHeight\n ? winHeight - (panelRect.height + TRIANGLE_OFFSET)\n : posY\n\n panelElement.style.transform = `translate(${posX}px, ${posY}px)`\n }, [target, trianglePosition])\n\n const handleScroll = useCallback(\n (event: Event) => {\n const panelElement = panelRef.current\n if (panelElement && !panelElement.contains(event.target as Node)) {\n onClosed()\n }\n },\n [onClosed],\n )\n\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n const panelElement = panelRef.current\n if (panelElement && !panelElement.contains(event.target as Node)) {\n onOutsideClick?.(event)\n }\n },\n [onOutsideClick],\n )\n\n const watchComponent = useCallback(() => {\n if (watchTargetActive) {\n if (windowCenterToPage) setCenter()\n else setPosition()\n }\n\n if (target && !document.body.contains(target)) {\n clearInterval(watchIntervalRef.current)\n onClosed()\n }\n }, [onClosed, setCenter, setPosition, target, watchTargetActive, windowCenterToPage])\n\n const handleMouseMove = useCallback((event: MouseEvent) => {\n event.preventDefault()\n const reference = referencePosition.current\n const panelElement = panelRef.current\n if (!reference || !panelElement) return\n\n const posX = event.pageX - reference.x\n const posY = event.pageY - reference.y\n lastDragPosition.current = { x: posX, y: posY }\n\n if (isDraggingRef.current) {\n requestAnimationFrame(() => {\n panelElement.style.transform = `translate(${posX}px, ${posY}px)`\n })\n }\n setHolding(true)\n }, [])\n\n const handleMouseUp = useCallback(() => {\n document.removeEventListener('mouseup', handleMouseUp)\n document.removeEventListener('mousemove', handleMouseMove)\n isDraggingRef.current = false\n onPositionChange?.({\n x: lastDragPosition.current.x,\n y: lastDragPosition.current.y,\n })\n setHolding(false)\n }, [handleMouseMove, onPositionChange])\n\n const handlePanelMouseDown = useCallback(\n (event: MouseEvent) => {\n event.preventDefault()\n const panelElement = panelRef.current\n if (!panelElement) return\n const { left, top } = panelElement.getBoundingClientRect()\n referencePosition.current = { x: event.clientX - left, y: event.clientY - top }\n isDraggingRef.current = true\n document.addEventListener('mouseup', handleMouseUp)\n document.addEventListener('mousemove', handleMouseMove)\n },\n [handleMouseMove, handleMouseUp],\n )\n\n useEffect(() => {\n document.removeEventListener('mousedown', handleOutsideClick)\n clearInterval(watchIntervalRef.current)\n\n if (!isValidNumber(defaultPositionX) && !isValidNumber(defaultPositionY)) {\n if (windowCenterToPage) setCenter()\n else setPosition()\n }\n\n if (show) {\n document.addEventListener('mousedown', handleOutsideClick)\n }\n\n let watchedTimeout: ReturnType<typeof setTimeout> | undefined\n if (target) {\n watchIntervalRef.current = setInterval(watchComponent, 100)\n watchedTimeout = setTimeout(() => {\n panelRef.current?.classList.add('inconel-is-watched')\n }, 500)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick)\n clearInterval(watchIntervalRef.current)\n clearTimeout(watchedTimeout)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [render, target, handleOutsideClick, windowCenterToPage, draggable])\n\n useEffect(() => {\n if (!closeOnScroll) return undefined\n window.addEventListener('scroll', handleScroll, true)\n return () => window.removeEventListener('scroll', handleScroll, true)\n }, [closeOnScroll, handleScroll])\n\n useEffect(() => {\n const contentElement = contentRef.current\n if (!contentElement || !draggable) return undefined\n contentElement.addEventListener('mousedown', handlePanelMouseDown)\n return () =>\n contentElement.removeEventListener('mousedown', handlePanelMouseDown)\n }, [draggable, handlePanelMouseDown, render])\n\n useEffect(() => {\n if (isValidNumber(defaultPositionX) && isValidNumber(defaultPositionY)) {\n panelRef.current?.style.setProperty(\n 'transform',\n `translate(${defaultPositionX}px, ${defaultPositionY}px)`,\n )\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n if (!show || !resolvedPortalTarget) return null\n\n const triangleClass = triangleShow ? trianglePosition : 'inconel-triangle-off'\n const transitionClass =\n transition === 'slide'\n ? `inconel-is-animated-${trianglePosition.split('-')[0]}`\n : transition === 'fade'\n ? 'inconel-is-animation-fade'\n : undefined\n\n return createPortal(\n <div\n id={id ?? undefined}\n className={classNames(\n 'inconel-floating-panel',\n triangleClass,\n transitionClass,\n holding && 'inconel-is-holding',\n className,\n )}\n ref={panelRef}\n style={{ transform: 'translate(-1000px, 0px)' }}\n >\n <div className=\"inconel-floating-panel__content\">\n {draggable && (\n <div className=\"inconel-floating-panel__drag-bg\" ref={contentRef} />\n )}\n {children}\n {closeButtonShow && (\n <div\n className=\"inconel-floating-panel__close\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onClosed()}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') onClosed()\n }}\n >\n ×\n </div>\n )}\n </div>\n </div>,\n resolvedPortalTarget,\n )\n}\n"],"names":["TRIANGLE_OFFSET","VERTICAL_OFFSET","isValidNumber","value","FloatingPanel","id","className","target","watchTarget","trianglePosition","triangleShow","windowCenterToPage","closeButtonShow","onClosed","onOutsideClick","closeOnScroll","transition","draggable","defaultPositionX","defaultPositionY","onPositionChange","render","children","portalTarget","holding","setHolding","useState","panelRef","useRef","contentRef","referencePosition","lastDragPosition","watchIntervalRef","isDraggingRef","resolvedPortalTarget","show","watchTargetActive","setCenter","useCallback","panelElement","width","height","halfBrowserWidth","halfBrowserHeight","setPosition","winWidth","winHeight","panelRect","targetRect","horizontalOffset","posX","posY","handleScroll","event","handleOutsideClick","watchComponent","handleMouseMove","reference","handleMouseUp","handlePanelMouseDown","left","top","useEffect","watchedTimeout","contentElement","triangleClass","transitionClass","createPortal","jsx","classNames","jsxs"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { FloatingPanel } from './FloatingPanel';
2
+ export type { FloatingPanelProps, FloatingPanelPosition, FloatingPanelTrianglePosition, } from './FloatingPanel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { ReactNode } from 'react';
2
+ export interface MultiSelectCheckBoxOption {
3
+ [key: string]: unknown;
4
+ }
5
+ export interface MultiSelectCheckBoxProps<T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption> {
6
+ id?: string | null;
7
+ label?: ReactNode;
8
+ className?: string | null;
9
+ labelClassName?: string | null;
10
+ inputClassName?: string | null;
11
+ optionsClassName?: string | null;
12
+ optionItemClassName?: string | null;
13
+ searchableInputClassName?: string | null;
14
+ options?: T[];
15
+ defaultSelectedOptions?: T[];
16
+ optionLabel?: string;
17
+ optionValue?: string;
18
+ onChange?: (selected: T[]) => void;
19
+ placeholder?: string;
20
+ selectedInputMessage?: string;
21
+ itemSelectedText?: string;
22
+ selectAllText?: string;
23
+ searchPlaceholder?: string;
24
+ noDataMessage?: string;
25
+ errorMessage?: string;
26
+ errorPlace?: 'in' | 'out';
27
+ isSearchable?: boolean;
28
+ isLoading?: boolean;
29
+ isDisabled?: boolean;
30
+ reactPortal?: boolean;
31
+ windowPosition?: boolean;
32
+ windowHeight?: number;
33
+ windowClose?: (closed: boolean) => void;
34
+ isScrollEnd?: (end: boolean) => void;
35
+ getOptionTooltip?: (option: T) => string | undefined;
36
+ limit?: number | null;
37
+ selectionLimit?: number | null;
38
+ }
39
+ export declare function MultiSelectCheckBox<T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption>({ id, label, className, labelClassName, inputClassName, optionsClassName, optionItemClassName, searchableInputClassName, options, defaultSelectedOptions, optionLabel, optionValue, onChange, placeholder, selectedInputMessage, itemSelectedText, selectAllText, searchPlaceholder, noDataMessage, errorMessage, errorPlace, isSearchable, isLoading, isDisabled, reactPortal, windowPosition, windowHeight, windowClose, isScrollEnd, getOptionTooltip, limit, selectionLimit, }: MultiSelectCheckBoxProps<T>): import("react").JSX.Element;
40
+ //# sourceMappingURL=MultiSelectCheckBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectCheckBox.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelectCheckBox/MultiSelectCheckBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAA;AAKd,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB,CACvC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB;IAE/D,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;IACb,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IACpD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAcD,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EAC/D,EACA,EAAS,EACT,KAAY,EACZ,SAAgB,EAChB,cAAqB,EACrB,cAAqB,EACrB,gBAAuB,EACvB,mBAA0B,EAC1B,wBAA+B,EAC/B,OAAuB,EACvB,sBAAsC,EACtC,WAAqB,EACrB,WAAqB,EACrB,QAAQ,EACR,WAAuB,EACvB,oBAAoB,EACpB,gBAA+B,EAC/B,aAA4B,EAC5B,iBAAyB,EACzB,aAAiC,EACjC,YAAiB,EACjB,UAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,WAAmB,EACnB,cAAsB,EACtB,YAAkB,EAClB,WAAW,EACX,WAAW,EACX,gBACkE,EAClE,KAAY,EACZ,cAAqB,GACtB,EAAE,wBAAwB,CAAC,CAAC,CAAC,+BAwX7B"}