@tcn/ui 0.12.4 → 0.12.6
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/inputs/color_input/color_input.js +18 -18
- package/dist/inputs/color_input/color_input.js.map +1 -1
- package/dist/inputs/control/control.d.ts +10 -0
- package/dist/inputs/control/control.d.ts.map +1 -0
- package/dist/inputs/control/control.js +17 -0
- package/dist/inputs/control/control.js.map +1 -0
- package/dist/inputs/control_set/control_set.d.ts +5 -0
- package/dist/inputs/control_set/control_set.d.ts.map +1 -0
- package/dist/inputs/control_set/control_set.js +20 -0
- package/dist/inputs/{input_group/input_group.js.map → control_set/control_set.js.map} +1 -1
- package/dist/inputs/date_picker/date_picker_input.js +20 -20
- package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
- package/dist/inputs/index.d.ts +2 -1
- package/dist/inputs/index.d.ts.map +1 -1
- package/dist/inputs/index.js +27 -24
- package/dist/inputs/index.js.map +1 -1
- package/dist/inputs/input/input.js +6 -6
- package/dist/inputs/input/input.js.map +1 -1
- package/dist/inputs/phone_number_input/phone_number_country_select_adapter.js +15 -15
- package/dist/inputs/phone_number_input/phone_number_country_select_adapter.js.map +1 -1
- package/dist/inputs/phone_number_input/phone_number_input.js +24 -24
- package/dist/inputs/phone_number_input/phone_number_input.js.map +1 -1
- package/dist/inputs/phone_number_input/phone_number_input_adapter.js +21 -21
- package/dist/inputs/phone_number_input/phone_number_input_adapter.js.map +1 -1
- package/dist/inputs/phone_number_input/sip_input.js +14 -14
- package/dist/inputs/phone_number_input/sip_input.js.map +1 -1
- package/dist/inputs/select/select.js +6 -6
- package/dist/inputs/select/select.js.map +1 -1
- package/dist/inputs/textarea/textarea.js +8 -8
- package/dist/inputs/textarea/textarea.js.map +1 -1
- package/dist/inputs/unit_input/unit_input.js +20 -20
- package/dist/inputs/unit_input/unit_input.js.map +1 -1
- package/dist/overlay/frame/frame.d.ts +2 -2
- package/dist/overlay/frame/frame.d.ts.map +1 -1
- package/dist/overlay/frame/frame.js +68 -66
- package/dist/overlay/frame/frame.js.map +1 -1
- package/dist/overlay/slide/slide.d.ts +9 -0
- package/dist/overlay/slide/slide.d.ts.map +1 -0
- package/dist/overlay/slide/slide.js +29 -0
- package/dist/overlay/slide/slide.js.map +1 -0
- package/dist/slide.css +1 -0
- package/dist/stacks/box/box.d.ts +5 -4
- package/dist/stacks/box/box.d.ts.map +1 -1
- package/dist/stacks/box/box.js.map +1 -1
- package/dist/stacks/box/detect_resize_bounds.d.ts +15 -0
- package/dist/stacks/box/detect_resize_bounds.d.ts.map +1 -0
- package/dist/stacks/box/detect_resize_bounds.js +49 -0
- package/dist/stacks/box/detect_resize_bounds.js.map +1 -0
- package/dist/stacks/box/resize_handlers.d.ts.map +1 -1
- package/dist/stacks/box/resize_handlers.js +51 -44
- package/dist/stacks/box/resize_handlers.js.map +1 -1
- package/dist/stacks/box/start_resize_handle.d.ts.map +1 -1
- package/dist/stacks/box/start_resize_handle.js +2 -1
- package/dist/stacks/box/start_resize_handle.js.map +1 -1
- package/dist/stacks/box/types.d.ts +17 -4
- package/dist/stacks/box/types.d.ts.map +1 -1
- package/dist/surfaces/drawers/drawer.d.ts +5 -0
- package/dist/surfaces/drawers/drawer.d.ts.map +1 -0
- package/dist/surfaces/drawers/drawer.js +23 -0
- package/dist/surfaces/drawers/drawer.js.map +1 -0
- package/dist/surfaces/index.d.ts +1 -4
- package/dist/surfaces/index.d.ts.map +1 -1
- package/dist/surfaces/index.js +20 -26
- package/dist/surfaces/index.js.map +1 -1
- package/dist/surfaces/modal/modal.d.ts +1 -1
- package/dist/surfaces/modal/modal.d.ts.map +1 -1
- package/dist/surfaces/modal/modal.js +22 -13
- package/dist/surfaces/modal/modal.js.map +1 -1
- package/dist/surfaces/window/window.d.ts +1 -1
- package/dist/surfaces/window/window.d.ts.map +1 -1
- package/dist/surfaces/window/window.js +21 -24
- package/dist/surfaces/window/window.js.map +1 -1
- package/dist/themes/stylesheets/reset.css +1 -1
- package/dist/themes/stylesheets/reset.js +2 -2
- package/dist/themes/stylesheets/reset.js.map +1 -1
- package/dist/themes/themes/ergo/ergo_theme.css +1 -1
- package/dist/themes/themes/ergo/ergo_theme.js +70 -6
- package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
- package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +1 -1
- package/dist/utils/dnd/hooks/use_drag_container.js.map +1 -1
- package/package.json +2 -2
- package/src/inputs/color_input/color_input.tsx +3 -3
- package/src/inputs/control/control.stories.tsx +158 -0
- package/src/inputs/control/control.tsx +32 -0
- package/src/inputs/control/control_stories.module.css +7 -0
- package/src/inputs/control_set/control_set.stories.tsx +46 -0
- package/src/inputs/{input_group/input_group.tsx → control_set/control_set.tsx} +5 -5
- package/src/inputs/date_picker/date_picker_input.stories.tsx +1 -1
- package/src/inputs/date_picker/date_picker_input.tsx +1 -1
- package/src/inputs/index.ts +2 -1
- package/src/inputs/input/input.tsx +1 -1
- package/src/inputs/phone_number_input/phone_number_country_select_adapter.tsx +1 -1
- package/src/inputs/phone_number_input/phone_number_input.tsx +1 -1
- package/src/inputs/phone_number_input/phone_number_input_adapter.tsx +2 -2
- package/src/inputs/phone_number_input/sip_input.tsx +4 -4
- package/src/inputs/select/select.tsx +1 -1
- package/src/inputs/textarea/textarea.stories.tsx +1 -1
- package/src/inputs/textarea/textarea.tsx +1 -1
- package/src/inputs/unit_input/unit_input.tsx +3 -3
- package/src/overlay/frame/frame.tsx +43 -63
- package/src/overlay/slide/slide.module.css +30 -0
- package/src/overlay/slide/slide.stories.tsx +58 -0
- package/src/overlay/slide/slide.tsx +51 -0
- package/src/stacks/box/box.tsx +10 -16
- package/src/stacks/box/detect_resize_bounds.ts +84 -0
- package/src/stacks/box/resize_handlers.ts +27 -15
- package/src/stacks/box/start_resize_handle.tsx +6 -3
- package/src/stacks/box/types.ts +23 -25
- package/src/surfaces/drawers/drawer.stories.tsx +130 -0
- package/src/surfaces/drawers/drawer.tsx +26 -0
- package/src/surfaces/index.ts +1 -4
- package/src/surfaces/modal/__stories__/modal.stories.tsx +70 -3
- package/src/surfaces/modal/modal.tsx +11 -2
- package/src/surfaces/window/window.stories.tsx +64 -8
- package/src/surfaces/window/window.tsx +6 -9
- package/src/themes/stylesheets/reset.css +2 -2
- package/src/themes/themes/ergo/ergo_theme.css +70 -6
- package/src/utils/dnd/hooks/use_drag_container.ts +0 -7
- package/dist/drawer_bottom.css +0 -1
- package/dist/drawer_end.css +0 -1
- package/dist/drawer_start.css +0 -1
- package/dist/drawer_top.css +0 -1
- package/dist/inputs/input_group/input_group.d.ts +0 -5
- package/dist/inputs/input_group/input_group.d.ts.map +0 -1
- package/dist/inputs/input_group/input_group.js +0 -20
- package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.d.ts +0 -7
- package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.d.ts.map +0 -1
- package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.js +0 -22
- package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.js.map +0 -1
- package/dist/surfaces/drawers/drawer_end/drawer_end.d.ts +0 -7
- package/dist/surfaces/drawers/drawer_end/drawer_end.d.ts.map +0 -1
- package/dist/surfaces/drawers/drawer_end/drawer_end.js +0 -20
- package/dist/surfaces/drawers/drawer_end/drawer_end.js.map +0 -1
- package/dist/surfaces/drawers/drawer_start/drawer_start.d.ts +0 -7
- package/dist/surfaces/drawers/drawer_start/drawer_start.d.ts.map +0 -1
- package/dist/surfaces/drawers/drawer_start/drawer_start.js +0 -22
- package/dist/surfaces/drawers/drawer_start/drawer_start.js.map +0 -1
- package/dist/surfaces/drawers/drawer_top/drawer_top.d.ts +0 -7
- package/dist/surfaces/drawers/drawer_top/drawer_top.d.ts.map +0 -1
- package/dist/surfaces/drawers/drawer_top/drawer_top.js +0 -20
- package/dist/surfaces/drawers/drawer_top/drawer_top.js.map +0 -1
- package/src/surfaces/drawers/__stories__/drawers.stories.tsx +0 -26
- package/src/surfaces/drawers/drawer_bottom/drawer_bottom.module.css +0 -5
- package/src/surfaces/drawers/drawer_bottom/drawer_bottom.tsx +0 -23
- package/src/surfaces/drawers/drawer_end/drawer_end.module.css +0 -5
- package/src/surfaces/drawers/drawer_end/drawer_end.tsx +0 -24
- package/src/surfaces/drawers/drawer_start/drawer_start.module.css +0 -5
- package/src/surfaces/drawers/drawer_start/drawer_start.tsx +0 -23
- package/src/surfaces/drawers/drawer_top/drawer_top.module.css +0 -5
- package/src/surfaces/drawers/drawer_top/drawer_top.tsx +0 -24
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { clsx as
|
|
1
|
+
import { jsx as x } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as l } from "clsx";
|
|
3
3
|
import f from "react";
|
|
4
|
-
import '../../textarea.css';const d = "_textarea_8286394", i = { textarea: d },
|
|
5
|
-
return /* @__PURE__ */
|
|
4
|
+
import '../../textarea.css';const d = "_textarea_8286394", i = { textarea: d }, T = f.forwardRef(function({ className: r, width: s, height: o, style: c, onChange: t, ...e }, n) {
|
|
5
|
+
return /* @__PURE__ */ x(
|
|
6
6
|
"textarea",
|
|
7
7
|
{
|
|
8
|
-
style: { width:
|
|
9
|
-
className:
|
|
8
|
+
style: { width: s, height: o, ...c },
|
|
9
|
+
className: l(r, i.textarea, "tcn-textarea", "tcn-entry"),
|
|
10
10
|
"data-is-disabled": e.disabled || !1,
|
|
11
|
-
ref:
|
|
11
|
+
ref: n,
|
|
12
12
|
onChange: (a) => {
|
|
13
13
|
t && t(a.currentTarget.value, a);
|
|
14
14
|
},
|
|
@@ -17,6 +17,6 @@ import '../../textarea.css';const d = "_textarea_8286394", i = { textarea: d },
|
|
|
17
17
|
);
|
|
18
18
|
});
|
|
19
19
|
export {
|
|
20
|
-
|
|
20
|
+
T as Textarea
|
|
21
21
|
};
|
|
22
22
|
//# sourceMappingURL=textarea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sources":["../../../src/inputs/textarea/textarea.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React from 'react';\nimport { TextareaHTMLAttributes } from 'react';\nimport styles from './textarea.module.css';\n\nexport interface TextareaProps\n extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange'> {\n value?: string;\n width?: string;\n height?: string;\n disabled?: boolean;\n placeholder?: string;\n onChange?: (value: string, event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n}\n\nexport const Textarea = React.forwardRef(function Textarea(\n { className, width, height, style, onChange, ...props }: TextareaProps,\n ref: React.Ref<HTMLTextAreaElement>\n) {\n return (\n <textarea\n style={{ width, height, ...style }}\n className={clsx(className, styles.textarea, 'tcn-textarea', 'tcn-
|
|
1
|
+
{"version":3,"file":"textarea.js","sources":["../../../src/inputs/textarea/textarea.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React from 'react';\nimport { TextareaHTMLAttributes } from 'react';\nimport styles from './textarea.module.css';\n\nexport interface TextareaProps\n extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange'> {\n value?: string;\n width?: string;\n height?: string;\n disabled?: boolean;\n placeholder?: string;\n onChange?: (value: string, event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n}\n\nexport const Textarea = React.forwardRef(function Textarea(\n { className, width, height, style, onChange, ...props }: TextareaProps,\n ref: React.Ref<HTMLTextAreaElement>\n) {\n return (\n <textarea\n style={{ width, height, ...style }}\n className={clsx(className, styles.textarea, 'tcn-textarea', 'tcn-entry')}\n data-is-disabled={props.disabled || false}\n ref={ref}\n onChange={e => {\n onChange && onChange(e.currentTarget.value, e);\n }}\n {...props}\n />\n );\n});\n"],"names":["Textarea","React","className","width","height","style","onChange","props","ref","jsx","clsx","styles","e"],"mappings":";;;oDAeaA,IAAWC,EAAM,WAAW,SACvC,EAAE,WAAAC,GAAW,OAAAC,GAAO,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,GAAU,GAAGC,EAAA,GAChDC,GACA;AACA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO,EAAE,OAAAN,GAAO,QAAAC,GAAQ,GAAGC,EAAA;AAAA,MAC3B,WAAWK,EAAKR,GAAWS,EAAO,UAAU,gBAAgB,WAAW;AAAA,MACvE,oBAAkBJ,EAAM,YAAY;AAAA,MACpC,KAAAC;AAAA,MACA,UAAU,CAAAI,MAAK;AACb,QAAAN,KAAYA,EAASM,EAAE,cAAc,OAAOA,CAAC;AAAA,MAC/C;AAAA,MACC,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
|
|
@@ -10,10 +10,10 @@ import "../../utils/dnd/context.js";
|
|
|
10
10
|
import "../../draggable.module-BgelQsuJ.js";
|
|
11
11
|
import { Input as v } from "../input/input.js";
|
|
12
12
|
import { Select as w } from "../select/select.js";
|
|
13
|
-
import {
|
|
13
|
+
import { ControlSet as h } from "../control_set/control_set.js";
|
|
14
14
|
import '../../unit_input.css';const j = "_unit-input_4bd8bc8", k = "_unit-input-flex-box_8db2f9b", F = "_unit-input-number_c95f85a", H = "_unit-input-select_1bbbad9", l = { "unit-input": j, "unit-input-flex-box": k, "unit-input-number": F, "unit-input-select": H };
|
|
15
|
-
function U(
|
|
16
|
-
return
|
|
15
|
+
function U(s) {
|
|
16
|
+
return s.replace(/[^.\d-]/g, "").replace(/(?!^)-/g, "").replace(/(\..*?)\.+/g, "$1");
|
|
17
17
|
}
|
|
18
18
|
const Q = y.forwardRef(function({
|
|
19
19
|
value: A,
|
|
@@ -22,27 +22,27 @@ const Q = y.forwardRef(function({
|
|
|
22
22
|
onChange: t,
|
|
23
23
|
inputRef: b,
|
|
24
24
|
unitRef: x,
|
|
25
|
-
disabled:
|
|
25
|
+
disabled: p,
|
|
26
26
|
...R
|
|
27
|
-
},
|
|
28
|
-
const c = E(null),
|
|
29
|
-
function
|
|
30
|
-
if (
|
|
27
|
+
}, N) {
|
|
28
|
+
const c = E(null), _ = V(b, c);
|
|
29
|
+
function I(e, u) {
|
|
30
|
+
if (u == null)
|
|
31
31
|
return;
|
|
32
|
-
const n =
|
|
33
|
-
n.value = i, i.length <
|
|
32
|
+
const n = u.currentTarget, a = n.selectionStart || 0, i = U(e), f = Number(i);
|
|
33
|
+
n.value = i, i.length < e.length && n.setSelectionRange(a - 1, a - 1), i === "" ? t && t(null, r || "") : isNaN(f) || t && t(f, r || "");
|
|
34
34
|
}
|
|
35
|
-
function S(
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
35
|
+
function S(e) {
|
|
36
|
+
const u = c.current;
|
|
37
|
+
if (u == null)
|
|
38
38
|
return;
|
|
39
|
-
const n = Number(
|
|
40
|
-
isNaN(n) ? t && t(null,
|
|
39
|
+
const n = Number(u.value);
|
|
40
|
+
isNaN(n) ? t && t(null, e) : t && t(n, e);
|
|
41
41
|
}
|
|
42
42
|
return /* @__PURE__ */ g(
|
|
43
43
|
h,
|
|
44
44
|
{
|
|
45
|
-
ref:
|
|
45
|
+
ref: N,
|
|
46
46
|
className: o(l["unit-input"], "tcn-unit-input"),
|
|
47
47
|
height: "auto",
|
|
48
48
|
...R,
|
|
@@ -52,9 +52,9 @@ const Q = y.forwardRef(function({
|
|
|
52
52
|
{
|
|
53
53
|
width: "flex",
|
|
54
54
|
className: o(l["unit-input-number"], "tcn-unit-input-number"),
|
|
55
|
-
ref:
|
|
56
|
-
onChange:
|
|
57
|
-
disabled:
|
|
55
|
+
ref: _,
|
|
56
|
+
onChange: I,
|
|
57
|
+
disabled: p,
|
|
58
58
|
style: {
|
|
59
59
|
borderEndEndRadius: 0,
|
|
60
60
|
borderStartEndRadius: 0,
|
|
@@ -70,7 +70,7 @@ const Q = y.forwardRef(function({
|
|
|
70
70
|
width: "auto",
|
|
71
71
|
value: r,
|
|
72
72
|
onChange: S,
|
|
73
|
-
disabled:
|
|
73
|
+
disabled: p,
|
|
74
74
|
style: { borderStartStartRadius: 0, borderEndStartRadius: 0 },
|
|
75
75
|
children: d
|
|
76
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit_input.js","sources":["../../../src/inputs/unit_input/unit_input.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { useForkRef } from '../../utils/index.js';\nimport { type HStackProps } from '../../stacks/h_stack.js';\nimport { Input } from '../input/input.js';\nimport { Select } from '../select/select.js';\nimport { OptionProps } from '../options/option.js';\nimport styles from './unit_input.module.css';\n\nimport {
|
|
1
|
+
{"version":3,"file":"unit_input.js","sources":["../../../src/inputs/unit_input/unit_input.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { clsx } from 'clsx';\nimport { useForkRef } from '../../utils/index.js';\nimport { type HStackProps } from '../../stacks/h_stack.js';\nimport { Input } from '../input/input.js';\nimport { Select } from '../select/select.js';\nimport { OptionProps } from '../options/option.js';\nimport styles from './unit_input.module.css';\n\nimport { ControlSet } from '../control_set/control_set.js';\n\nfunction getDisplayValue(value: string) {\n return value\n .replace(/[^.\\d-]/g, '') // Remove invalid characters\n .replace(/(?!^)-/g, '') // Ensure `-` only at the start\n .replace(/(\\..*?)\\.+/g, '$1'); // Allow only one dot\n}\n\nexport interface UnitInputProps extends Omit<HStackProps, 'onChange' | 'children'> {\n value?: number | null;\n unit?: string;\n children: React.ReactElement<OptionProps> | React.ReactElement<OptionProps>[];\n onChange?: (value: number | null, unit: string) => void;\n inputRef?: React.Ref<HTMLInputElement>;\n unitRef?: React.Ref<HTMLButtonElement>;\n disabled?: boolean;\n}\n\nexport const UnitInput = React.forwardRef(function UnitInput(\n {\n value,\n unit,\n children,\n onChange,\n inputRef,\n unitRef,\n disabled,\n ...props\n }: UnitInputProps,\n ref: React.Ref<HTMLElement>\n) {\n const internalInputRef = useRef<HTMLInputElement>(null);\n const forkedInputRef = useForkRef(inputRef, internalInputRef);\n\n function valueHandler(value: string, event?: React.ChangeEvent<HTMLInputElement>) {\n if (event == null) {\n return;\n }\n\n const input = event.currentTarget;\n const cursorPosition = input.selectionStart || 0;\n const displayValue = getDisplayValue(value);\n const potentialValue = Number(displayValue);\n\n input.value = displayValue;\n\n if (displayValue.length < value.length) {\n input.setSelectionRange(cursorPosition - 1, cursorPosition - 1);\n }\n\n if (displayValue === '') {\n onChange && onChange(null, unit || '');\n } else if (!isNaN(potentialValue)) {\n onChange && onChange(potentialValue, unit || '');\n }\n }\n\n function unitHandler(unit: string) {\n const input = internalInputRef.current;\n if (input == null) {\n return;\n }\n\n const potentialValue = Number(input.value);\n if (isNaN(potentialValue)) {\n onChange && onChange(null, unit);\n } else {\n onChange && onChange(potentialValue, unit);\n }\n }\n\n return (\n <ControlSet\n ref={ref}\n className={clsx(styles['unit-input'], 'tcn-unit-input')}\n height=\"auto\"\n {...props}\n >\n <Input\n width=\"flex\"\n className={clsx(styles['unit-input-number'], 'tcn-unit-input-number')}\n ref={forkedInputRef}\n onChange={valueHandler}\n disabled={disabled}\n style={{\n borderEndEndRadius: 0,\n borderStartEndRadius: 0,\n textAlign: 'start',\n }}\n />\n\n <Select\n className={clsx(styles['unit-input-select'], 'tcn-unit-input-select')}\n ref={unitRef}\n width=\"auto\"\n value={unit}\n onChange={unitHandler}\n disabled={disabled}\n style={{ borderStartStartRadius: 0, borderEndStartRadius: 0 }}\n >\n {children}\n </Select>\n </ControlSet>\n );\n});\n"],"names":["getDisplayValue","value","UnitInput","React","unit","children","onChange","inputRef","unitRef","disabled","props","ref","internalInputRef","useRef","forkedInputRef","useForkRef","valueHandler","event","input","cursorPosition","displayValue","potentialValue","unitHandler","jsxs","ControlSet","clsx","styles","jsx","Input","Select"],"mappings":";;;;;;;;;;;;;;AAWA,SAASA,EAAgBC,GAAe;AACtC,SAAOA,EACJ,QAAQ,YAAY,EAAE,EACtB,QAAQ,WAAW,EAAE,EACrB,QAAQ,eAAe,IAAI;AAChC;AAYO,MAAMC,IAAYC,EAAM,WAAW,SACxC;AAAA,EACE,OAAAF;AAAA,EACA,MAAAG;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAmBC,EAAyB,IAAI,GAChDC,IAAiBC,EAAWR,GAAUK,CAAgB;AAE5D,WAASI,EAAaf,GAAegB,GAA6C;AAChF,QAAIA,KAAS;AACX;AAGF,UAAMC,IAAQD,EAAM,eACdE,IAAiBD,EAAM,kBAAkB,GACzCE,IAAepB,EAAgBC,CAAK,GACpCoB,IAAiB,OAAOD,CAAY;AAE1C,IAAAF,EAAM,QAAQE,GAEVA,EAAa,SAASnB,EAAM,UAC9BiB,EAAM,kBAAkBC,IAAiB,GAAGA,IAAiB,CAAC,GAG5DC,MAAiB,KACnBd,KAAYA,EAAS,MAAMF,KAAQ,EAAE,IAC3B,MAAMiB,CAAc,KAC9Bf,KAAYA,EAASe,GAAgBjB,KAAQ,EAAE;AAAA,EAEnD;AAEA,WAASkB,EAAYlB,GAAc;AACjC,UAAMc,IAAQN,EAAiB;AAC/B,QAAIM,KAAS;AACX;AAGF,UAAMG,IAAiB,OAAOH,EAAM,KAAK;AACzC,IAAI,MAAMG,CAAc,IACtBf,KAAYA,EAAS,MAAMF,CAAI,IAE/BE,KAAYA,EAASe,GAAgBjB,CAAI;AAAA,EAE7C;AAEA,SACE,gBAAAmB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAb;AAAA,MACA,WAAWc,EAAKC,EAAO,YAAY,GAAG,gBAAgB;AAAA,MACtD,QAAO;AAAA,MACN,GAAGhB;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,WAAWH,EAAKC,EAAO,mBAAmB,GAAG,uBAAuB;AAAA,YACpE,KAAKZ;AAAA,YACL,UAAUE;AAAA,YACV,UAAAP;AAAA,YACA,OAAO;AAAA,cACL,oBAAoB;AAAA,cACpB,sBAAsB;AAAA,cACtB,WAAW;AAAA,YAAA;AAAA,UACb;AAAA,QAAA;AAAA,QAGF,gBAAAkB;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,WAAWJ,EAAKC,EAAO,mBAAmB,GAAG,uBAAuB;AAAA,YACpE,KAAKlB;AAAA,YACL,OAAM;AAAA,YACN,OAAOJ;AAAA,YACP,UAAUkB;AAAA,YACV,UAAAb;AAAA,YACA,OAAO,EAAE,wBAAwB,GAAG,sBAAsB,EAAA;AAAA,YAEzD,UAAAJ;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -6,8 +6,8 @@ export interface FrameOwnProps {
|
|
|
6
6
|
veil?: boolean;
|
|
7
7
|
resizable?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export type FrameProps =
|
|
10
|
-
export declare const Frame: React.ForwardRefExoticComponent<
|
|
9
|
+
export type FrameProps = BoxProps & FrameOwnProps;
|
|
10
|
+
export declare const Frame: React.ForwardRefExoticComponent<BoxProps<HTMLElement> & FrameOwnProps & React.RefAttributes<HTMLElement>>;
|
|
11
11
|
interface FrameDialogProps extends BoxProps {
|
|
12
12
|
}
|
|
13
13
|
export declare const FrameDialog: React.ForwardRefExoticComponent<FrameDialogProps & React.RefAttributes<HTMLElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/overlay/frame/frame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/overlay/frame/frame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,uBAAuB,CAAC;AAO/B,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;AAElD,eAAO,MAAM,KAAK,2GAyChB,CAAC;AACH,UAAU,gBAAiB,SAAQ,QAAQ;CAAG;AAE9C,eAAO,MAAM,WAAW,sFAkEvB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { clsx as
|
|
3
|
-
import
|
|
4
|
-
import { flushSync as
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as F } from "clsx";
|
|
3
|
+
import R, { useCallback as _ } from "react";
|
|
4
|
+
import { flushSync as p } from "react-dom";
|
|
5
5
|
import { Box as k } from "../../stacks/box/box.js";
|
|
6
6
|
import "../../stacks/h_collapsible_box.js";
|
|
7
7
|
import "../../stacks/h_stack.js";
|
|
@@ -11,89 +11,91 @@ import "../../stacks/v_stack.js";
|
|
|
11
11
|
import { ZStack as w } from "../../stacks/z_stack.js";
|
|
12
12
|
import { useDragContainer as z } from "../../utils/dnd/context.js";
|
|
13
13
|
import { Draggable as C } from "../../utils/dnd/draggable/draggable.js";
|
|
14
|
-
import { Portal as
|
|
15
|
-
import '../../frame.css';const
|
|
16
|
-
children:
|
|
17
|
-
isOpen:
|
|
18
|
-
draggable:
|
|
19
|
-
veil:
|
|
14
|
+
import { Portal as P } from "../portal/portal.js";
|
|
15
|
+
import '../../frame.css';const S = "_frame-dialog_2a77c1d", B = { "frame-dialog": S }, J = R.forwardRef(function({
|
|
16
|
+
children: a,
|
|
17
|
+
isOpen: c = !1,
|
|
18
|
+
draggable: o = !0,
|
|
19
|
+
veil: l = !1,
|
|
20
20
|
resizable: t = !0,
|
|
21
21
|
className: s,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
enableResizeOnTop: m = !0,
|
|
23
|
+
enableResizeOnBottom: u = !0,
|
|
24
|
+
enableResizeOnStart: h = !0,
|
|
25
|
+
enableResizeOnEnd: r = !0,
|
|
26
|
+
enableResizeOnLeft: d = !1,
|
|
27
|
+
enableResizeOnRight: g = !1,
|
|
28
|
+
...e
|
|
29
|
+
}, n) {
|
|
30
|
+
return c ? /* @__PURE__ */ i(P, { children: /* @__PURE__ */ i(w, { width: "100%", height: "100%", "data-is-veil": l, className: "tcn-frame-veil", children: /* @__PURE__ */ i(C, { draggable: o, children: /* @__PURE__ */ i(
|
|
31
|
+
N,
|
|
26
32
|
{
|
|
27
33
|
className: s,
|
|
28
|
-
ref:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
enableResizeOnTop: t,
|
|
32
|
-
enableResizeOnBottom: t,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
ref: n,
|
|
35
|
+
enableResizeOnStart: t && h,
|
|
36
|
+
enableResizeOnEnd: t && r,
|
|
37
|
+
enableResizeOnTop: t && m,
|
|
38
|
+
enableResizeOnBottom: t && u,
|
|
39
|
+
enableResizeOnRight: t && g,
|
|
40
|
+
enableResizeOnLeft: t && d,
|
|
41
|
+
draggable: o,
|
|
42
|
+
...e,
|
|
43
|
+
children: a
|
|
36
44
|
}
|
|
37
45
|
) }) }) }) : null;
|
|
38
|
-
}),
|
|
46
|
+
}), N = R.forwardRef(
|
|
39
47
|
function({
|
|
40
|
-
as:
|
|
41
|
-
role:
|
|
42
|
-
children:
|
|
43
|
-
className:
|
|
48
|
+
as: a = "div",
|
|
49
|
+
role: c = "dialog",
|
|
50
|
+
children: o,
|
|
51
|
+
className: l,
|
|
44
52
|
draggable: t,
|
|
45
53
|
onWidthResize: s,
|
|
46
|
-
onHeightResize:
|
|
47
|
-
...
|
|
48
|
-
},
|
|
49
|
-
const r = z(),
|
|
50
|
-
(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
onHeightResize: m,
|
|
55
|
+
...u
|
|
56
|
+
}, h) {
|
|
57
|
+
const r = z(), d = R.useCallback(
|
|
58
|
+
(e) => {
|
|
59
|
+
if (!t || e.currentDelta === 0) return;
|
|
60
|
+
const n = e.origin === "right" ? 1 : -1, x = e.currentDelta / 2 * n;
|
|
61
|
+
p(() => {
|
|
62
|
+
r.setPosition((f) => ({
|
|
63
|
+
x: f.x + x,
|
|
64
|
+
y: f.y
|
|
55
65
|
}));
|
|
56
|
-
}), e
|
|
57
|
-
r.setPosition((o) => ({
|
|
58
|
-
x: o.x - i / 2,
|
|
59
|
-
y: o.y
|
|
60
|
-
}));
|
|
61
|
-
}), s?.(u, e, x, i, f)));
|
|
66
|
+
}), s?.(e);
|
|
62
67
|
},
|
|
63
68
|
[s, r, t]
|
|
64
|
-
),
|
|
65
|
-
(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
r.setPosition((o) => ({
|
|
73
|
-
x: o.x,
|
|
74
|
-
y: o.y - i / 2
|
|
69
|
+
), g = _(
|
|
70
|
+
(e) => {
|
|
71
|
+
if (!t || e.currentDelta === 0) return;
|
|
72
|
+
const n = e.origin === "bottom" ? 1 : -1, f = e.currentDelta / 2 * n;
|
|
73
|
+
p(() => {
|
|
74
|
+
r.setPosition((D) => ({
|
|
75
|
+
x: D.x,
|
|
76
|
+
y: D.y + f
|
|
75
77
|
}));
|
|
76
|
-
}),
|
|
78
|
+
}), m?.(e);
|
|
77
79
|
},
|
|
78
|
-
[
|
|
80
|
+
[m, r, t]
|
|
79
81
|
);
|
|
80
|
-
return /* @__PURE__ */
|
|
82
|
+
return /* @__PURE__ */ i(
|
|
81
83
|
k,
|
|
82
84
|
{
|
|
83
|
-
className:
|
|
84
|
-
ref:
|
|
85
|
-
onWidthResize:
|
|
86
|
-
onHeightResize:
|
|
87
|
-
as:
|
|
88
|
-
role:
|
|
89
|
-
...
|
|
90
|
-
children:
|
|
85
|
+
className: F(B["frame-dialog"], "tcn-frame-dialog", l),
|
|
86
|
+
ref: h,
|
|
87
|
+
onWidthResize: d,
|
|
88
|
+
onHeightResize: g,
|
|
89
|
+
as: a,
|
|
90
|
+
role: c,
|
|
91
|
+
...u,
|
|
92
|
+
children: o
|
|
91
93
|
}
|
|
92
94
|
);
|
|
93
95
|
}
|
|
94
96
|
);
|
|
95
97
|
export {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
J as Frame,
|
|
99
|
+
N as FrameDialog
|
|
98
100
|
};
|
|
99
101
|
//# sourceMappingURL=frame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.js","sources":["../../../src/overlay/frame/frame.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React, { useCallback } from 'react';\nimport { flushSync } from 'react-dom';\nimport {
|
|
1
|
+
{"version":3,"file":"frame.js","sources":["../../../src/overlay/frame/frame.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React, { useCallback } from 'react';\nimport { flushSync } from 'react-dom';\nimport {\n Box,\n ZStack,\n type BoxProps,\n type OnHeightResizePayload,\n type OnWidthResizePayload,\n} from '../../stacks/index.js';\nimport { useDragContainer } from '../../utils/dnd/context.js';\nimport { Draggable } from '../../utils/dnd/draggable/draggable.js';\nimport { Portal } from '../portal/portal.js';\n\n// Styles\nimport styles from './frame.module.css';\nexport interface FrameOwnProps {\n isOpen?: boolean;\n draggable?: boolean;\n veil?: boolean;\n resizable?: boolean;\n}\n\nexport type FrameProps = BoxProps & FrameOwnProps;\n\nexport const Frame = React.forwardRef<HTMLElement, FrameProps>(function Frame(\n {\n children,\n isOpen = false,\n draggable = true,\n veil = false,\n resizable = true,\n className,\n enableResizeOnTop = true,\n enableResizeOnBottom = true,\n enableResizeOnStart = true,\n enableResizeOnEnd = true,\n enableResizeOnLeft = false,\n enableResizeOnRight = false,\n ...rest\n }: FrameProps,\n ref\n) {\n if (!isOpen) return null;\n return (\n <Portal>\n <ZStack width=\"100%\" height=\"100%\" data-is-veil={veil} className=\"tcn-frame-veil\">\n <Draggable draggable={draggable}>\n <FrameDialog\n className={className}\n ref={ref}\n enableResizeOnStart={resizable && enableResizeOnStart}\n enableResizeOnEnd={resizable && enableResizeOnEnd}\n enableResizeOnTop={resizable && enableResizeOnTop}\n enableResizeOnBottom={resizable && enableResizeOnBottom}\n enableResizeOnRight={resizable && enableResizeOnRight}\n enableResizeOnLeft={resizable && enableResizeOnLeft}\n draggable={draggable}\n {...rest}\n >\n {children}\n </FrameDialog>\n </Draggable>\n </ZStack>\n </Portal>\n );\n});\ninterface FrameDialogProps extends BoxProps {}\n\nexport const FrameDialog = React.forwardRef<HTMLElement, FrameDialogProps>(\n function FrameDialog(\n {\n as = 'div',\n role = 'dialog',\n children,\n className,\n draggable,\n onWidthResize,\n onHeightResize,\n ...rest\n }: FrameDialogProps,\n ref: React.Ref<HTMLElement>\n ) {\n const drag = useDragContainer();\n\n const handleWidthResize = React.useCallback(\n (payload: OnWidthResizePayload) => {\n if (!draggable) return;\n if (payload.currentDelta === 0) return;\n const sign = payload.origin === 'right' ? 1 : -1;\n const dx = (payload.currentDelta / 2) * sign;\n flushSync(() => {\n drag.setPosition(prev => ({\n x: prev.x + dx,\n y: prev.y,\n }));\n });\n\n onWidthResize?.(payload);\n },\n [onWidthResize, drag, draggable]\n );\n\n const handleHeightResize = useCallback(\n (payload: OnHeightResizePayload) => {\n if (!draggable) return;\n if (payload.currentDelta === 0) return;\n const sign = payload.origin === 'bottom' ? 1 : -1;\n const half = payload.currentDelta / 2;\n const dy = half * sign;\n flushSync(() => {\n drag.setPosition(prev => ({\n x: prev.x,\n y: prev.y + dy,\n }));\n });\n onHeightResize?.(payload);\n },\n [onHeightResize, drag, draggable]\n );\n\n return (\n <Box\n className={clsx(styles['frame-dialog'], 'tcn-frame-dialog', className)}\n ref={ref}\n onWidthResize={handleWidthResize}\n onHeightResize={handleHeightResize}\n as={as}\n role={role}\n {...rest}\n >\n {children}\n </Box>\n );\n }\n);\n"],"names":["Frame","React","children","isOpen","draggable","veil","resizable","className","enableResizeOnTop","enableResizeOnBottom","enableResizeOnStart","enableResizeOnEnd","enableResizeOnLeft","enableResizeOnRight","rest","ref","jsx","Portal","ZStack","Draggable","FrameDialog","as","role","onWidthResize","onHeightResize","drag","useDragContainer","handleWidthResize","payload","sign","dx","flushSync","prev","handleHeightResize","useCallback","dy","Box","clsx","styles"],"mappings":";;;;;;;;;;;;;;8DAyBaA,IAAQC,EAAM,WAAoC,SAC7D;AAAA,EACE,UAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,WAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,sBAAAC,IAAuB;AAAA,EACvB,qBAAAC,IAAsB;AAAA,EACtB,mBAAAC,IAAoB;AAAA,EACpB,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,GAAGC;AACL,GACAC,GACA;AACA,SAAKZ,IAEH,gBAAAa,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACE,GAAA,EAAO,OAAM,QAAO,QAAO,QAAO,gBAAcb,GAAM,WAAU,kBAC/D,UAAA,gBAAAW,EAACG,KAAU,WAAAf,GACT,UAAA,gBAAAY;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAAb;AAAA,MACA,KAAAQ;AAAA,MACA,qBAAqBT,KAAaI;AAAA,MAClC,mBAAmBJ,KAAaK;AAAA,MAChC,mBAAmBL,KAAaE;AAAA,MAChC,sBAAsBF,KAAaG;AAAA,MACnC,qBAAqBH,KAAaO;AAAA,MAClC,oBAAoBP,KAAaM;AAAA,MACjC,WAAAR;AAAA,MACC,GAAGU;AAAA,MAEH,UAAAZ;AAAA,IAAA;AAAA,EAAA,EACH,CACF,GACF,GACF,IArBkB;AAuBtB,CAAC,GAGYkB,IAAcnB,EAAM;AAAA,EAC/B,SACE;AAAA,IACE,IAAAoB,IAAK;AAAA,IACL,MAAAC,IAAO;AAAA,IACP,UAAApB;AAAA,IACA,WAAAK;AAAA,IACA,WAAAH;AAAA,IACA,eAAAmB;AAAA,IACA,gBAAAC;AAAA,IACA,GAAGV;AAAA,EAAA,GAELC,GACA;AACA,UAAMU,IAAOC,EAAA,GAEPC,IAAoB1B,EAAM;AAAA,MAC9B,CAAC2B,MAAkC;AAEjC,YADI,CAACxB,KACDwB,EAAQ,iBAAiB,EAAG;AAChC,cAAMC,IAAOD,EAAQ,WAAW,UAAU,IAAI,IACxCE,IAAMF,EAAQ,eAAe,IAAKC;AACxC,QAAAE,EAAU,MAAM;AACd,UAAAN,EAAK,YAAY,CAAAO,OAAS;AAAA,YACxB,GAAGA,EAAK,IAAIF;AAAA,YACZ,GAAGE,EAAK;AAAA,UAAA,EACR;AAAA,QACJ,CAAC,GAEDT,IAAgBK,CAAO;AAAA,MACzB;AAAA,MACA,CAACL,GAAeE,GAAMrB,CAAS;AAAA,IAAA,GAG3B6B,IAAqBC;AAAA,MACzB,CAACN,MAAmC;AAElC,YADI,CAACxB,KACDwB,EAAQ,iBAAiB,EAAG;AAChC,cAAMC,IAAOD,EAAQ,WAAW,WAAW,IAAI,IAEzCO,IADOP,EAAQ,eAAe,IAClBC;AAClB,QAAAE,EAAU,MAAM;AACd,UAAAN,EAAK,YAAY,CAAAO,OAAS;AAAA,YACxB,GAAGA,EAAK;AAAA,YACR,GAAGA,EAAK,IAAIG;AAAA,UAAA,EACZ;AAAA,QACJ,CAAC,GACDX,IAAiBI,CAAO;AAAA,MAC1B;AAAA,MACA,CAACJ,GAAgBC,GAAMrB,CAAS;AAAA,IAAA;AAGlC,WACE,gBAAAY;AAAA,MAACoB;AAAA,MAAA;AAAA,QACC,WAAWC,EAAKC,EAAO,cAAc,GAAG,oBAAoB/B,CAAS;AAAA,QACrE,KAAAQ;AAAA,QACA,eAAeY;AAAA,QACf,gBAAgBM;AAAA,QAChB,IAAAZ;AAAA,QACA,MAAAC;AAAA,QACC,GAAGR;AAAA,QAEH,UAAAZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { FrameProps } from '../frame/frame.js';
|
|
3
|
+
export type SlideSide = 'top' | 'bottom' | 'start' | 'end';
|
|
4
|
+
export interface SlideOwnProps {
|
|
5
|
+
side: SlideSide;
|
|
6
|
+
}
|
|
7
|
+
export type SlideProps = Omit<FrameProps, 'draggable' | 'enableResizeOnLeft' | 'enableResizeOnRight' | 'enableResizeOnTop' | 'enableResizeOnBottom' | 'enableResizeOnStart' | 'enableResizeOnEnd'> & SlideOwnProps;
|
|
8
|
+
export declare const Slide: React.ForwardRefExoticComponent<Omit<FrameProps, "draggable" | "enableResizeOnTop" | "enableResizeOnEnd" | "enableResizeOnBottom" | "enableResizeOnStart" | "enableResizeOnLeft" | "enableResizeOnRight"> & SlideOwnProps & React.RefAttributes<HTMLElement>>;
|
|
9
|
+
//# sourceMappingURL=slide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slide.d.ts","sourceRoot":"","sources":["../../../src/overlay/slide/slide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAM3D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,UAAU,EACR,WAAW,GACX,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,mBAAmB,CACtB,GACC,aAAa,CAAC;AAGhB,eAAO,MAAM,KAAK,+PAwBhB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import i from "react";
|
|
3
|
+
import { Frame as m } from "../frame/frame.js";
|
|
4
|
+
import { clsx as c } from "clsx";
|
|
5
|
+
import '../../slide.css';const f = "_slide_d303bac", d = { slide: f }, _ = i.forwardRef(function({ children: a, side: t, resizable: o = !1, className: r, ...l }, n) {
|
|
6
|
+
const e = t === "top" || t === "bottom";
|
|
7
|
+
return /* @__PURE__ */ s(
|
|
8
|
+
m,
|
|
9
|
+
{
|
|
10
|
+
"data-side": t,
|
|
11
|
+
className: c(d.slide, r),
|
|
12
|
+
draggable: !1,
|
|
13
|
+
ref: n,
|
|
14
|
+
"data-is-vertical": e,
|
|
15
|
+
"data-is-horizontal": !e,
|
|
16
|
+
resizable: o,
|
|
17
|
+
enableResizeOnTop: t === "bottom",
|
|
18
|
+
enableResizeOnBottom: t === "top",
|
|
19
|
+
enableResizeOnStart: t === "end",
|
|
20
|
+
enableResizeOnEnd: t === "start",
|
|
21
|
+
...l,
|
|
22
|
+
children: a
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
_ as Slide
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=slide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slide.js","sources":["../../../src/overlay/slide/slide.tsx"],"sourcesContent":["import React from 'react';\nimport { Frame, type FrameProps } from '../frame/frame.js';\nimport { clsx } from 'clsx';\n\n// Styles\nimport styles from './slide.module.css';\n\nexport type SlideSide = 'top' | 'bottom' | 'start' | 'end';\n\nexport interface SlideOwnProps {\n side: SlideSide;\n}\n\nexport type SlideProps = Omit<\n FrameProps,\n | 'draggable'\n | 'enableResizeOnLeft'\n | 'enableResizeOnRight'\n | 'enableResizeOnTop'\n | 'enableResizeOnBottom'\n | 'enableResizeOnStart'\n | 'enableResizeOnEnd'\n> &\n SlideOwnProps;\n\n// A Frame fixed to a side of a container (top, bottom, start, end) - disables dragging - and limits resizing to one side\nexport const Slide = React.forwardRef<HTMLElement, SlideProps>(function Slide(\n { children, side, resizable = false, className, ...rest },\n ref\n) {\n const isVertical = side === 'top' || side === 'bottom';\n\n return (\n <Frame\n data-side={side}\n className={clsx(styles['slide'], className)}\n draggable={false}\n ref={ref}\n data-is-vertical={isVertical}\n data-is-horizontal={!isVertical}\n resizable={resizable}\n enableResizeOnTop={side === 'bottom'}\n enableResizeOnBottom={side === 'top'}\n enableResizeOnStart={side === 'end'}\n enableResizeOnEnd={side === 'start'}\n {...rest}\n >\n {children}\n </Frame>\n );\n});\n"],"names":["Slide","React","children","side","resizable","className","rest","ref","isVertical","jsx","Frame","clsx","styles"],"mappings":";;;;8CA0BaA,IAAQC,EAAM,WAAoC,SAC7D,EAAE,UAAAC,GAAU,MAAAC,GAAM,WAAAC,IAAY,IAAO,WAAAC,GAAW,GAAGC,EAAA,GACnDC,GACA;AACA,QAAMC,IAAaL,MAAS,SAASA,MAAS;AAE9C,SACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAWP;AAAA,MACX,WAAWQ,EAAKC,EAAO,OAAUP,CAAS;AAAA,MAC1C,WAAW;AAAA,MACX,KAAAE;AAAA,MACA,oBAAkBC;AAAA,MAClB,sBAAoB,CAACA;AAAA,MACrB,WAAAJ;AAAA,MACA,mBAAmBD,MAAS;AAAA,MAC5B,sBAAsBA,MAAS;AAAA,MAC/B,qBAAqBA,MAAS;AAAA,MAC9B,mBAAmBA,MAAS;AAAA,MAC3B,GAAGG;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
package/dist/slide.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer tcn-system{:where(._slide_d303bac){position:absolute}:where(._slide_d303bac)[data-side=top],:where(._slide_d303bac)[data-side=bottom]{width:100%}:where(._slide_d303bac)[data-side=start],:where(._slide_d303bac)[data-side=end]{height:100%}:where(._slide_d303bac)[data-side=top]{top:0}:where(._slide_d303bac)[data-side=bottom]{bottom:0}:where(._slide_d303bac)[data-side=start]{left:0}:where(._slide_d303bac)[data-side=end]{right:0}}
|
package/dist/stacks/box/box.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { default as React, CSSProperties, HTMLAttributes } from 'react';
|
|
2
2
|
import { HandleProps } from './handle_props.js';
|
|
3
|
+
import { OnHeightResize, OnHeightResizeEnd, OnWidthResize, OnWidthResizeEnd } from './types.js';
|
|
3
4
|
export interface BoxProps<T extends HTMLElement = HTMLElement> extends HTMLAttributes<T> {
|
|
4
5
|
as?: string;
|
|
5
6
|
style?: React.CSSProperties;
|
|
@@ -33,10 +34,10 @@ export interface BoxProps<T extends HTMLElement = HTMLElement> extends HTMLAttri
|
|
|
33
34
|
enableResizeOnRight?: boolean;
|
|
34
35
|
horizontalHandleProps?: HandleProps;
|
|
35
36
|
verticalHandleProps?: HandleProps;
|
|
36
|
-
onWidthResize?:
|
|
37
|
-
onHeightResize?:
|
|
38
|
-
onWidthResizeEnd?:
|
|
39
|
-
onHeightResizeEnd?:
|
|
37
|
+
onWidthResize?: OnWidthResize;
|
|
38
|
+
onHeightResize?: OnHeightResize;
|
|
39
|
+
onWidthResizeEnd?: OnWidthResizeEnd;
|
|
40
|
+
onHeightResizeEnd?: OnHeightResizeEnd;
|
|
40
41
|
}
|
|
41
42
|
export declare const Box: React.ForwardRefExoticComponent<BoxProps<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
42
43
|
//# sourceMappingURL=box.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../../src/stacks/box/box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,cAAc,EAAU,MAAM,OAAO,CAAC;AAOrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../../src/stacks/box/box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,cAAc,EAAU,MAAM,OAAO,CAAC;AAOrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACtF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,eAAO,MAAM,GAAG,2FAsKd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sources":["../../../src/stacks/box/box.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React, { CSSProperties, HTMLAttributes, useRef } from 'react';\nimport { useForkRef } from '../../utils/index.js';\nimport styles from '../stack.module.css';\nimport { isCustomSizeProp } from '../utils/isCustomSizeProp.js';\nimport { removeUndefinedProperties } from '../utils/remove_undefined_properties.js';\nimport { BottomResizeHandle } from './bottom_resize_handle.js';\nimport { EndResizeHandle } from './end_resize_handle.js';\nimport { HandleProps } from './handle_props.js';\nimport { LeftResizeHandle } from './left_resize_handle.js';\nimport { RightResizeHandle } from './right_resize_handle.js';\nimport { StartResizeHandle } from './start_resize_handle.js';\nimport { TopResizeHandle } from './top_resize_handle.js';\n\nexport interface BoxProps<T extends HTMLElement = HTMLElement> extends HTMLAttributes<T> {\n as?: string;\n style?: React.CSSProperties;\n className?: string;\n children?: React.ReactNode;\n width?: 'default' | 'flex' | 'auto' | string | number;\n minWidth?: CSSProperties['minWidth'];\n maxWidth?: CSSProperties['maxWidth'];\n height?: 'default' | 'flex' | 'auto' | string | number;\n minHeight?: CSSProperties['minHeight'];\n maxHeight?: CSSProperties['maxHeight'];\n zIndex?: number;\n padding?: CSSProperties['padding'];\n paddingInline?: CSSProperties['paddingInline'];\n paddingBlock?: CSSProperties['paddingBlock'];\n margin?: CSSProperties['margin'];\n marginBlock?: CSSProperties['marginBlock'];\n marginInline?: CSSProperties['marginInline'];\n marginInlineStart?: CSSProperties['marginInlineStart'];\n marginInlineEnd?: CSSProperties['marginInlineEnd'];\n marginTop?: CSSProperties['marginTop'];\n marginBottom?: CSSProperties['marginBottom'];\n overflow?: React.CSSProperties['overflow'];\n overflowX?: React.CSSProperties['overflowX'];\n overflowY?: React.CSSProperties['overflowY'];\n enableResizeOnTop?: boolean;\n enableResizeOnEnd?: boolean;\n enableResizeOnBottom?: boolean;\n enableResizeOnStart?: boolean;\n enableResizeOnLeft?: boolean;\n enableResizeOnRight?: boolean;\n horizontalHandleProps?: HandleProps;\n verticalHandleProps?: HandleProps;\n onWidthResize?: (\n width: number,\n origin: 'left' | 'right',\n totalDelta: number,\n currentDelta: number,\n atLimit: boolean\n ) => void;\n onHeightResize?: (\n height: number,\n origin: 'top' | 'bottom',\n totalDelta: number,\n currentDelta: number,\n atLimit: boolean\n ) => void;\n onWidthResizeEnd?: (width: number, origin: 'left' | 'right') => void;\n onHeightResizeEnd?: (height: number, origin: 'top' | 'bottom') => void;\n}\n\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(function Box(\n {\n style,\n className,\n as = 'div',\n children,\n width = 'default',\n minWidth,\n maxWidth,\n height = 'default',\n minHeight,\n maxHeight,\n zIndex,\n padding,\n paddingInline,\n paddingBlock,\n margin,\n marginBlock,\n marginInline,\n marginInlineStart,\n marginInlineEnd,\n marginTop,\n marginBottom,\n overflow,\n overflowX,\n overflowY,\n enableResizeOnTop = false,\n enableResizeOnEnd = false,\n enableResizeOnBottom = false,\n enableResizeOnStart = false,\n enableResizeOnLeft = false,\n enableResizeOnRight = false,\n onWidthResize,\n onHeightResize,\n onWidthResizeEnd,\n onHeightResizeEnd,\n horizontalHandleProps,\n verticalHandleProps,\n ...otherProps\n }: BoxProps,\n ref\n) {\n const As = as as React.ElementType;\n const boxRef = useRef<HTMLElement | null>(null);\n const forkedRef = useForkRef(ref, boxRef);\n const hasHorizontalResize =\n enableResizeOnEnd || enableResizeOnStart || enableResizeOnLeft || enableResizeOnRight;\n const hasVerticalResize = enableResizeOnBottom || enableResizeOnTop;\n\n const cannotHorizontalFlex = hasHorizontalResize;\n const cannotVerticalFlex = hasVerticalResize;\n const warnHorizontalFlex = cannotHorizontalFlex && width === 'flex';\n const warnVerticalFlex = cannotVerticalFlex && height === 'flex';\n const isFlexing =\n !warnHorizontalFlex && !warnVerticalFlex && (width === 'flex' || height === 'flex');\n\n if (warnHorizontalFlex) {\n width = '100%';\n // biome-ignore lint/suspicious/noConsole: Need to warn the developer\n console.warn('You cannot have a resizable box and flex simultaneously');\n }\n\n if (warnVerticalFlex) {\n height = 'auto';\n // biome-ignore lint/suspicious/noConsole: Need to warn the developer\n console.warn('You cannot have a resizable box and flex simultaneously');\n }\n\n const propStyles = {\n width: !isCustomSizeProp(width) ? width : undefined,\n minWidth,\n maxWidth,\n height: !isCustomSizeProp(height) ? height : undefined,\n minHeight,\n maxHeight,\n padding,\n paddingInline,\n paddingBlock,\n margin,\n marginBlock,\n marginInline,\n marginInlineStart,\n marginInlineEnd,\n marginTop,\n marginBottom,\n overflow,\n overflowX,\n overflowY,\n zIndex,\n };\n\n return (\n <As\n data-enabled-resize-on-start={String(enableResizeOnStart)}\n data-enabled-resize-on-end={String(enableResizeOnEnd)}\n data-enabled-resize-on-top={String(enableResizeOnTop)}\n data-enabled-resize-on-bottom={String(enableResizeOnBottom)}\n data_enabled-resize-on-left={String(enableResizeOnLeft)}\n data_enabled-resize-on-right={String(enableResizeOnRight)}\n data-height={height}\n data-width={width}\n ref={forkedRef}\n style={{\n ...removeUndefinedProperties(propStyles),\n ...style,\n }}\n className={clsx(\n styles['box'],\n className,\n isFlexing && 'stack-flex',\n isFlexing && styles['stack-flex'],\n 'tcn-box'\n )}\n {...otherProps}\n >\n {children}\n {enableResizeOnTop && (\n <TopResizeHandle\n onHeightResize={onHeightResize}\n onHeightResizeEnd={onHeightResizeEnd}\n targetRef={boxRef}\n handleProps={horizontalHandleProps}\n />\n )}\n {enableResizeOnBottom && (\n <BottomResizeHandle\n onHeightResize={onHeightResize}\n onHeightResizeEnd={onHeightResizeEnd}\n targetRef={boxRef}\n handleProps={verticalHandleProps}\n />\n )}\n {enableResizeOnStart && (\n <StartResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={horizontalHandleProps}\n />\n )}\n {enableResizeOnEnd && (\n <EndResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={horizontalHandleProps}\n />\n )}\n {enableResizeOnLeft && (\n <LeftResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={verticalHandleProps}\n />\n )}\n {enableResizeOnRight && (\n <RightResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={verticalHandleProps}\n />\n )}\n </As>\n );\n});\n"],"names":["Box","React","style","className","as","children","width","minWidth","maxWidth","height","minHeight","maxHeight","zIndex","padding","paddingInline","paddingBlock","margin","marginBlock","marginInline","marginInlineStart","marginInlineEnd","marginTop","marginBottom","overflow","overflowX","overflowY","enableResizeOnTop","enableResizeOnEnd","enableResizeOnBottom","enableResizeOnStart","enableResizeOnLeft","enableResizeOnRight","onWidthResize","onHeightResize","onWidthResizeEnd","onHeightResizeEnd","horizontalHandleProps","verticalHandleProps","otherProps","ref","As","boxRef","useRef","forkedRef","useForkRef","hasHorizontalResize","hasVerticalResize","cannotHorizontalFlex","cannotVerticalFlex","warnHorizontalFlex","warnVerticalFlex","isFlexing","propStyles","isCustomSizeProp","jsxs","removeUndefinedProperties","clsx","styles","jsx","TopResizeHandle","BottomResizeHandle","StartResizeHandle","EndResizeHandle","LeftResizeHandle","RightResizeHandle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"box.js","sources":["../../../src/stacks/box/box.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React, { CSSProperties, HTMLAttributes, useRef } from 'react';\nimport { useForkRef } from '../../utils/index.js';\nimport styles from '../stack.module.css';\nimport { isCustomSizeProp } from '../utils/isCustomSizeProp.js';\nimport { removeUndefinedProperties } from '../utils/remove_undefined_properties.js';\nimport { BottomResizeHandle } from './bottom_resize_handle.js';\nimport { EndResizeHandle } from './end_resize_handle.js';\nimport { HandleProps } from './handle_props.js';\nimport { LeftResizeHandle } from './left_resize_handle.js';\nimport { RightResizeHandle } from './right_resize_handle.js';\nimport { StartResizeHandle } from './start_resize_handle.js';\nimport { TopResizeHandle } from './top_resize_handle.js';\nimport type {\n OnHeightResize,\n OnHeightResizeEnd,\n OnWidthResize,\n OnWidthResizeEnd,\n} from './types.js';\n\nexport interface BoxProps<T extends HTMLElement = HTMLElement> extends HTMLAttributes<T> {\n as?: string;\n style?: React.CSSProperties;\n className?: string;\n children?: React.ReactNode;\n width?: 'default' | 'flex' | 'auto' | string | number;\n minWidth?: CSSProperties['minWidth'];\n maxWidth?: CSSProperties['maxWidth'];\n height?: 'default' | 'flex' | 'auto' | string | number;\n minHeight?: CSSProperties['minHeight'];\n maxHeight?: CSSProperties['maxHeight'];\n zIndex?: number;\n padding?: CSSProperties['padding'];\n paddingInline?: CSSProperties['paddingInline'];\n paddingBlock?: CSSProperties['paddingBlock'];\n margin?: CSSProperties['margin'];\n marginBlock?: CSSProperties['marginBlock'];\n marginInline?: CSSProperties['marginInline'];\n marginInlineStart?: CSSProperties['marginInlineStart'];\n marginInlineEnd?: CSSProperties['marginInlineEnd'];\n marginTop?: CSSProperties['marginTop'];\n marginBottom?: CSSProperties['marginBottom'];\n overflow?: React.CSSProperties['overflow'];\n overflowX?: React.CSSProperties['overflowX'];\n overflowY?: React.CSSProperties['overflowY'];\n enableResizeOnTop?: boolean;\n enableResizeOnEnd?: boolean;\n enableResizeOnBottom?: boolean;\n enableResizeOnStart?: boolean;\n enableResizeOnLeft?: boolean;\n enableResizeOnRight?: boolean;\n horizontalHandleProps?: HandleProps;\n verticalHandleProps?: HandleProps;\n onWidthResize?: OnWidthResize;\n onHeightResize?: OnHeightResize;\n onWidthResizeEnd?: OnWidthResizeEnd;\n onHeightResizeEnd?: OnHeightResizeEnd;\n}\n\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(function Box(\n {\n style,\n className,\n as = 'div',\n children,\n width = 'default',\n minWidth,\n maxWidth,\n height = 'default',\n minHeight,\n maxHeight,\n zIndex,\n padding,\n paddingInline,\n paddingBlock,\n margin,\n marginBlock,\n marginInline,\n marginInlineStart,\n marginInlineEnd,\n marginTop,\n marginBottom,\n overflow,\n overflowX,\n overflowY,\n enableResizeOnTop = false,\n enableResizeOnEnd = false,\n enableResizeOnBottom = false,\n enableResizeOnStart = false,\n enableResizeOnLeft = false,\n enableResizeOnRight = false,\n onWidthResize,\n onHeightResize,\n onWidthResizeEnd,\n onHeightResizeEnd,\n horizontalHandleProps,\n verticalHandleProps,\n ...otherProps\n }: BoxProps,\n ref\n) {\n const As = as as React.ElementType;\n const boxRef = useRef<HTMLElement | null>(null);\n const forkedRef = useForkRef(ref, boxRef);\n const hasHorizontalResize =\n enableResizeOnEnd || enableResizeOnStart || enableResizeOnLeft || enableResizeOnRight;\n const hasVerticalResize = enableResizeOnBottom || enableResizeOnTop;\n\n const cannotHorizontalFlex = hasHorizontalResize;\n const cannotVerticalFlex = hasVerticalResize;\n const warnHorizontalFlex = cannotHorizontalFlex && width === 'flex';\n const warnVerticalFlex = cannotVerticalFlex && height === 'flex';\n const isFlexing =\n !warnHorizontalFlex && !warnVerticalFlex && (width === 'flex' || height === 'flex');\n\n if (warnHorizontalFlex) {\n width = '100%';\n // biome-ignore lint/suspicious/noConsole: Need to warn the developer\n console.warn('You cannot have a resizable box and flex simultaneously');\n }\n\n if (warnVerticalFlex) {\n height = 'auto';\n // biome-ignore lint/suspicious/noConsole: Need to warn the developer\n console.warn('You cannot have a resizable box and flex simultaneously');\n }\n\n const propStyles = {\n width: !isCustomSizeProp(width) ? width : undefined,\n minWidth,\n maxWidth,\n height: !isCustomSizeProp(height) ? height : undefined,\n minHeight,\n maxHeight,\n padding,\n paddingInline,\n paddingBlock,\n margin,\n marginBlock,\n marginInline,\n marginInlineStart,\n marginInlineEnd,\n marginTop,\n marginBottom,\n overflow,\n overflowX,\n overflowY,\n zIndex,\n };\n\n return (\n <As\n data-enabled-resize-on-start={String(enableResizeOnStart)}\n data-enabled-resize-on-end={String(enableResizeOnEnd)}\n data-enabled-resize-on-top={String(enableResizeOnTop)}\n data-enabled-resize-on-bottom={String(enableResizeOnBottom)}\n data_enabled-resize-on-left={String(enableResizeOnLeft)}\n data_enabled-resize-on-right={String(enableResizeOnRight)}\n data-height={height}\n data-width={width}\n ref={forkedRef}\n style={{\n ...removeUndefinedProperties(propStyles),\n ...style,\n }}\n className={clsx(\n styles['box'],\n className,\n isFlexing && 'stack-flex',\n isFlexing && styles['stack-flex'],\n 'tcn-box'\n )}\n {...otherProps}\n >\n {children}\n {enableResizeOnTop && (\n <TopResizeHandle\n onHeightResize={onHeightResize}\n onHeightResizeEnd={onHeightResizeEnd}\n targetRef={boxRef}\n handleProps={horizontalHandleProps}\n />\n )}\n {enableResizeOnBottom && (\n <BottomResizeHandle\n onHeightResize={onHeightResize}\n onHeightResizeEnd={onHeightResizeEnd}\n targetRef={boxRef}\n handleProps={verticalHandleProps}\n />\n )}\n {enableResizeOnStart && (\n <StartResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={horizontalHandleProps}\n />\n )}\n {enableResizeOnEnd && (\n <EndResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={horizontalHandleProps}\n />\n )}\n {enableResizeOnLeft && (\n <LeftResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={verticalHandleProps}\n />\n )}\n {enableResizeOnRight && (\n <RightResizeHandle\n onWidthResize={onWidthResize}\n onWidthResizeEnd={onWidthResizeEnd}\n targetRef={boxRef}\n handleProps={verticalHandleProps}\n />\n )}\n </As>\n );\n});\n"],"names":["Box","React","style","className","as","children","width","minWidth","maxWidth","height","minHeight","maxHeight","zIndex","padding","paddingInline","paddingBlock","margin","marginBlock","marginInline","marginInlineStart","marginInlineEnd","marginTop","marginBottom","overflow","overflowX","overflowY","enableResizeOnTop","enableResizeOnEnd","enableResizeOnBottom","enableResizeOnStart","enableResizeOnLeft","enableResizeOnRight","onWidthResize","onHeightResize","onWidthResizeEnd","onHeightResizeEnd","horizontalHandleProps","verticalHandleProps","otherProps","ref","As","boxRef","useRef","forkedRef","useForkRef","hasHorizontalResize","hasVerticalResize","cannotHorizontalFlex","cannotVerticalFlex","warnHorizontalFlex","warnVerticalFlex","isFlexing","propStyles","isCustomSizeProp","jsxs","removeUndefinedProperties","clsx","styles","jsx","TopResizeHandle","BottomResizeHandle","StartResizeHandle","EndResizeHandle","LeftResizeHandle","RightResizeHandle"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type ConstraintAxis = 'width' | 'height';
|
|
2
|
+
export type DetectResizeBoundsParams = {
|
|
3
|
+
element: HTMLElement;
|
|
4
|
+
axis: ConstraintAxis;
|
|
5
|
+
nextSize: number;
|
|
6
|
+
epsilon?: number;
|
|
7
|
+
};
|
|
8
|
+
export type DetectResizeBoundsResult = {
|
|
9
|
+
hitMin: boolean;
|
|
10
|
+
hitMax: boolean;
|
|
11
|
+
clamped: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare function detectResizeBounds({ element, axis, nextSize, epsilon, }: DetectResizeBoundsParams): DetectResizeBoundsResult;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=detect_resize_bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect_resize_bounds.d.ts","sourceRoot":"","sources":["../../../src/stacks/box/detect_resize_bounds.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAgCF,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAa,GACd,EAAE,wBAAwB,GAAG,wBAAwB,CAiCrD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const u = {
|
|
2
|
+
width: {
|
|
3
|
+
size: "width",
|
|
4
|
+
min: "minWidth",
|
|
5
|
+
max: "maxWidth"
|
|
6
|
+
},
|
|
7
|
+
height: {
|
|
8
|
+
size: "height",
|
|
9
|
+
min: "minHeight",
|
|
10
|
+
max: "maxHeight"
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
function l(e) {
|
|
14
|
+
const n = /^(-?\d+(?:\.\d+)?)px$/.exec(e.trim());
|
|
15
|
+
return n ? Number(n[1]) : null;
|
|
16
|
+
}
|
|
17
|
+
function x(e, n, i) {
|
|
18
|
+
const c = l(n), t = l(i), s = c !== null && e < c, o = t !== null && e > t;
|
|
19
|
+
return {
|
|
20
|
+
hitMin: s,
|
|
21
|
+
hitMax: o,
|
|
22
|
+
clamped: s || o
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function z({
|
|
26
|
+
element: e,
|
|
27
|
+
axis: n,
|
|
28
|
+
nextSize: i,
|
|
29
|
+
epsilon: c = 0.5
|
|
30
|
+
}) {
|
|
31
|
+
const t = u[n], s = getComputedStyle(e), o = x(i, s[t.min], s[t.max]);
|
|
32
|
+
if (o.clamped) return o;
|
|
33
|
+
const d = e.style, h = d[t.size];
|
|
34
|
+
try {
|
|
35
|
+
d[t.size] = `${i}px`;
|
|
36
|
+
const r = e.getBoundingClientRect()[t.size] - i, a = r > c, m = r < -c;
|
|
37
|
+
return {
|
|
38
|
+
hitMin: a,
|
|
39
|
+
hitMax: m,
|
|
40
|
+
clamped: a || m
|
|
41
|
+
};
|
|
42
|
+
} finally {
|
|
43
|
+
d[t.size] = h;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
z as detectResizeBounds
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=detect_resize_bounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect_resize_bounds.js","sources":["../../../src/stacks/box/detect_resize_bounds.ts"],"sourcesContent":["type ConstraintAxis = 'width' | 'height';\n\nexport type DetectResizeBoundsParams = {\n element: HTMLElement;\n axis: ConstraintAxis;\n nextSize: number;\n epsilon?: number; // Tolerance for the constraint hit detection.\n};\n\nexport type DetectResizeBoundsResult = {\n hitMin: boolean;\n hitMax: boolean;\n clamped: boolean;\n};\n\nconst styleKeys = {\n width: {\n size: 'width',\n min: 'minWidth',\n max: 'maxWidth',\n },\n height: {\n size: 'height',\n min: 'minHeight',\n max: 'maxHeight',\n },\n} as const;\n\nfunction parsePx(value: string): number | null {\n const match = /^(-?\\d+(?:\\.\\d+)?)px$/.exec(value.trim());\n return match ? Number(match[1]) : null;\n}\n\nfunction detectByPixelValue(nextSize: number, min: string, max: string) {\n const minPx = parsePx(min);\n const maxPx = parsePx(max);\n const hitMin = minPx !== null && nextSize < minPx;\n const hitMax = maxPx !== null && nextSize > maxPx;\n return {\n hitMin,\n hitMax,\n clamped: hitMin || hitMax,\n };\n}\n\nexport function detectResizeBounds({\n element,\n axis,\n nextSize,\n epsilon = 0.5,\n}: DetectResizeBoundsParams): DetectResizeBoundsResult {\n const keys = styleKeys[axis];\n\n const computed = getComputedStyle(element);\n const fastPath = detectByPixelValue(nextSize, computed[keys.min], computed[keys.max]);\n if (fastPath.clamped) return fastPath;\n\n const style = element.style;\n const prevInlineSize = style[keys.size]; // Save the previous size to revert later.\n\n try {\n // Temporarily apply the new size to the element to offload bound test to browser.\n style[keys.size] = `${nextSize}px`;\n\n // Force layout so browser resolves min/max/intrinsic constraints.\n const rect = element.getBoundingClientRect();\n const renderedSize = rect[keys.size];\n\n const delta = renderedSize - nextSize;\n\n const hitMin = delta > epsilon;\n const hitMax = delta < -epsilon;\n const clamped = hitMin || hitMax;\n\n return {\n hitMin,\n hitMax,\n clamped,\n };\n } finally {\n // revert the style change\n style[keys.size] = prevInlineSize;\n }\n}\n"],"names":["styleKeys","parsePx","value","match","detectByPixelValue","nextSize","min","max","minPx","maxPx","hitMin","hitMax","detectResizeBounds","element","axis","epsilon","keys","computed","fastPath","style","prevInlineSize","delta"],"mappings":"AAeA,MAAMA,IAAY;AAAA,EAChB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EAAA;AAAA,EAEP,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,EAAA;AAET;AAEA,SAASC,EAAQC,GAA8B;AAC7C,QAAMC,IAAQ,wBAAwB,KAAKD,EAAM,MAAM;AACvD,SAAOC,IAAQ,OAAOA,EAAM,CAAC,CAAC,IAAI;AACpC;AAEA,SAASC,EAAmBC,GAAkBC,GAAaC,GAAa;AACtE,QAAMC,IAAQP,EAAQK,CAAG,GACnBG,IAAQR,EAAQM,CAAG,GACnBG,IAASF,MAAU,QAAQH,IAAWG,GACtCG,IAASF,MAAU,QAAQJ,IAAWI;AAC5C,SAAO;AAAA,IACL,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,SAASD,KAAUC;AAAA,EAAA;AAEvB;AAEO,SAASC,EAAmB;AAAA,EACjC,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAT;AAAA,EACA,SAAAU,IAAU;AACZ,GAAuD;AACrD,QAAMC,IAAOhB,EAAUc,CAAI,GAErBG,IAAW,iBAAiBJ,CAAO,GACnCK,IAAWd,EAAmBC,GAAUY,EAASD,EAAK,GAAG,GAAGC,EAASD,EAAK,GAAG,CAAC;AACpF,MAAIE,EAAS,QAAS,QAAOA;AAE7B,QAAMC,IAAQN,EAAQ,OAChBO,IAAiBD,EAAMH,EAAK,IAAI;AAEtC,MAAI;AAEF,IAAAG,EAAMH,EAAK,IAAI,IAAI,GAAGX,CAAQ;AAM9B,UAAMgB,IAHOR,EAAQ,sBAAA,EACKG,EAAK,IAAI,IAENX,GAEvBK,IAASW,IAAQN,GACjBJ,IAASU,IAAQ,CAACN;AAGxB,WAAO;AAAA,MACL,QAAAL;AAAA,MACA,QAAAC;AAAA,MACA,SALcD,KAAUC;AAAA,IAKxB;AAAA,EAEJ,UAAA;AAEE,IAAAQ,EAAMH,EAAK,IAAI,IAAII;AAAA,EACrB;AACF;"}
|