@tcn/ui 0.12.5 → 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.
Files changed (122) hide show
  1. package/dist/inputs/color_input/color_input.js +18 -18
  2. package/dist/inputs/color_input/color_input.js.map +1 -1
  3. package/dist/inputs/control/control.d.ts +10 -0
  4. package/dist/inputs/control/control.d.ts.map +1 -0
  5. package/dist/inputs/control/control.js +17 -0
  6. package/dist/inputs/control/control.js.map +1 -0
  7. package/dist/inputs/control_set/control_set.d.ts +5 -0
  8. package/dist/inputs/control_set/control_set.d.ts.map +1 -0
  9. package/dist/inputs/control_set/control_set.js +20 -0
  10. package/dist/inputs/{input_group/input_group.js.map → control_set/control_set.js.map} +1 -1
  11. package/dist/inputs/date_picker/date_picker_input.js +20 -20
  12. package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
  13. package/dist/inputs/index.d.ts +2 -1
  14. package/dist/inputs/index.d.ts.map +1 -1
  15. package/dist/inputs/index.js +27 -24
  16. package/dist/inputs/index.js.map +1 -1
  17. package/dist/inputs/input/input.js +6 -6
  18. package/dist/inputs/input/input.js.map +1 -1
  19. package/dist/inputs/phone_number_input/phone_number_country_select_adapter.js +15 -15
  20. package/dist/inputs/phone_number_input/phone_number_country_select_adapter.js.map +1 -1
  21. package/dist/inputs/phone_number_input/phone_number_input.js +24 -24
  22. package/dist/inputs/phone_number_input/phone_number_input.js.map +1 -1
  23. package/dist/inputs/phone_number_input/phone_number_input_adapter.js +21 -21
  24. package/dist/inputs/phone_number_input/phone_number_input_adapter.js.map +1 -1
  25. package/dist/inputs/phone_number_input/sip_input.js +14 -14
  26. package/dist/inputs/phone_number_input/sip_input.js.map +1 -1
  27. package/dist/inputs/select/select.js +6 -6
  28. package/dist/inputs/select/select.js.map +1 -1
  29. package/dist/inputs/textarea/textarea.js +8 -8
  30. package/dist/inputs/textarea/textarea.js.map +1 -1
  31. package/dist/inputs/unit_input/unit_input.js +20 -20
  32. package/dist/inputs/unit_input/unit_input.js.map +1 -1
  33. package/dist/overlay/frame/frame.d.ts +2 -2
  34. package/dist/overlay/frame/frame.d.ts.map +1 -1
  35. package/dist/overlay/frame/frame.js +67 -59
  36. package/dist/overlay/frame/frame.js.map +1 -1
  37. package/dist/overlay/slide/slide.d.ts +9 -0
  38. package/dist/overlay/slide/slide.d.ts.map +1 -0
  39. package/dist/overlay/slide/slide.js +29 -0
  40. package/dist/overlay/slide/slide.js.map +1 -0
  41. package/dist/slide.css +1 -0
  42. package/dist/surfaces/drawers/drawer.d.ts +5 -0
  43. package/dist/surfaces/drawers/drawer.d.ts.map +1 -0
  44. package/dist/surfaces/drawers/drawer.js +23 -0
  45. package/dist/surfaces/drawers/drawer.js.map +1 -0
  46. package/dist/surfaces/index.d.ts +1 -4
  47. package/dist/surfaces/index.d.ts.map +1 -1
  48. package/dist/surfaces/index.js +20 -26
  49. package/dist/surfaces/index.js.map +1 -1
  50. package/dist/surfaces/modal/modal.d.ts +1 -1
  51. package/dist/surfaces/modal/modal.d.ts.map +1 -1
  52. package/dist/surfaces/window/window.d.ts +1 -1
  53. package/dist/surfaces/window/window.d.ts.map +1 -1
  54. package/dist/themes/stylesheets/reset.css +1 -1
  55. package/dist/themes/stylesheets/reset.js +2 -2
  56. package/dist/themes/stylesheets/reset.js.map +1 -1
  57. package/dist/themes/themes/ergo/ergo_theme.css +1 -1
  58. package/dist/themes/themes/ergo/ergo_theme.js +70 -6
  59. package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
  60. package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +1 -1
  61. package/dist/utils/dnd/hooks/use_drag_container.js.map +1 -1
  62. package/package.json +2 -2
  63. package/src/inputs/color_input/color_input.tsx +3 -3
  64. package/src/inputs/control/control.stories.tsx +158 -0
  65. package/src/inputs/control/control.tsx +32 -0
  66. package/src/inputs/control/control_stories.module.css +7 -0
  67. package/src/inputs/control_set/control_set.stories.tsx +46 -0
  68. package/src/inputs/{input_group/input_group.tsx → control_set/control_set.tsx} +5 -5
  69. package/src/inputs/date_picker/date_picker_input.stories.tsx +1 -1
  70. package/src/inputs/date_picker/date_picker_input.tsx +1 -1
  71. package/src/inputs/index.ts +2 -1
  72. package/src/inputs/input/input.tsx +1 -1
  73. package/src/inputs/phone_number_input/phone_number_country_select_adapter.tsx +1 -1
  74. package/src/inputs/phone_number_input/phone_number_input.tsx +1 -1
  75. package/src/inputs/phone_number_input/phone_number_input_adapter.tsx +2 -2
  76. package/src/inputs/phone_number_input/sip_input.tsx +4 -4
  77. package/src/inputs/select/select.tsx +1 -1
  78. package/src/inputs/textarea/textarea.stories.tsx +1 -1
  79. package/src/inputs/textarea/textarea.tsx +1 -1
  80. package/src/inputs/unit_input/unit_input.tsx +3 -3
  81. package/src/overlay/frame/frame.tsx +13 -16
  82. package/src/overlay/slide/slide.module.css +30 -0
  83. package/src/overlay/slide/slide.stories.tsx +58 -0
  84. package/src/overlay/slide/slide.tsx +51 -0
  85. package/src/surfaces/drawers/drawer.stories.tsx +130 -0
  86. package/src/surfaces/drawers/drawer.tsx +26 -0
  87. package/src/surfaces/index.ts +1 -4
  88. package/src/themes/stylesheets/reset.css +2 -2
  89. package/src/themes/themes/ergo/ergo_theme.css +70 -6
  90. package/src/utils/dnd/hooks/use_drag_container.ts +0 -7
  91. package/dist/drawer_bottom.css +0 -1
  92. package/dist/drawer_end.css +0 -1
  93. package/dist/drawer_start.css +0 -1
  94. package/dist/drawer_top.css +0 -1
  95. package/dist/inputs/input_group/input_group.d.ts +0 -5
  96. package/dist/inputs/input_group/input_group.d.ts.map +0 -1
  97. package/dist/inputs/input_group/input_group.js +0 -20
  98. package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.d.ts +0 -7
  99. package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.d.ts.map +0 -1
  100. package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.js +0 -22
  101. package/dist/surfaces/drawers/drawer_bottom/drawer_bottom.js.map +0 -1
  102. package/dist/surfaces/drawers/drawer_end/drawer_end.d.ts +0 -7
  103. package/dist/surfaces/drawers/drawer_end/drawer_end.d.ts.map +0 -1
  104. package/dist/surfaces/drawers/drawer_end/drawer_end.js +0 -20
  105. package/dist/surfaces/drawers/drawer_end/drawer_end.js.map +0 -1
  106. package/dist/surfaces/drawers/drawer_start/drawer_start.d.ts +0 -7
  107. package/dist/surfaces/drawers/drawer_start/drawer_start.d.ts.map +0 -1
  108. package/dist/surfaces/drawers/drawer_start/drawer_start.js +0 -22
  109. package/dist/surfaces/drawers/drawer_start/drawer_start.js.map +0 -1
  110. package/dist/surfaces/drawers/drawer_top/drawer_top.d.ts +0 -7
  111. package/dist/surfaces/drawers/drawer_top/drawer_top.d.ts.map +0 -1
  112. package/dist/surfaces/drawers/drawer_top/drawer_top.js +0 -20
  113. package/dist/surfaces/drawers/drawer_top/drawer_top.js.map +0 -1
  114. package/src/surfaces/drawers/__stories__/drawers.stories.tsx +0 -26
  115. package/src/surfaces/drawers/drawer_bottom/drawer_bottom.module.css +0 -5
  116. package/src/surfaces/drawers/drawer_bottom/drawer_bottom.tsx +0 -23
  117. package/src/surfaces/drawers/drawer_end/drawer_end.module.css +0 -5
  118. package/src/surfaces/drawers/drawer_end/drawer_end.tsx +0 -24
  119. package/src/surfaces/drawers/drawer_start/drawer_start.module.css +0 -5
  120. package/src/surfaces/drawers/drawer_start/drawer_start.tsx +0 -23
  121. package/src/surfaces/drawers/drawer_top/drawer_top.module.css +0 -5
  122. package/src/surfaces/drawers/drawer_top/drawer_top.tsx +0 -24
@@ -1,14 +1,14 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import { clsx as x } from "clsx";
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 }, b = f.forwardRef(function({ className: r, width: o, height: s, style: c, onChange: t, ...e }, l) {
5
- return /* @__PURE__ */ n(
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: o, height: s, ...c },
9
- className: x(r, i.textarea, "tcn-textarea", "tcn-control"),
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: l,
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
- b as Textarea
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-control')}\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,aAAa;AAAA,MACzE,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;"}
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 { InputGroup as h } from "../input_group/input_group.js";
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(p) {
16
- return p.replace(/[^.\d-]/g, "").replace(/(?!^)-/g, "").replace(/(\..*?)\.+/g, "$1");
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: s,
25
+ disabled: p,
26
26
  ...R
27
- }, I) {
28
- const c = E(null), N = V(b, c);
29
- function _(u, e) {
30
- if (e == null)
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 = e.currentTarget, a = n.selectionStart || 0, i = U(u), f = Number(i);
33
- n.value = i, i.length < u.length && n.setSelectionRange(a - 1, a - 1), i === "" ? t && t(null, r || "") : isNaN(f) || t && t(f, r || "");
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(u) {
36
- const e = c.current;
37
- if (e == null)
35
+ function S(e) {
36
+ const u = c.current;
37
+ if (u == null)
38
38
  return;
39
- const n = Number(e.value);
40
- isNaN(n) ? t && t(null, u) : t && t(n, u);
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: I,
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: N,
56
- onChange: _,
57
- disabled: s,
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: s,
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 { InputGroup } from '../input_group/input_group.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 <InputGroup\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 </InputGroup>\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","InputGroup","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;"}
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 = Omit<BoxProps, 'enableResizeOnLeft' | 'enableResizeOnRight' | 'enableResizeOnTop' | 'enableResizeOnBottom'> & FrameOwnProps;
10
- export declare const Frame: React.ForwardRefExoticComponent<Omit<BoxProps<HTMLElement>, "enableResizeOnTop" | "enableResizeOnBottom" | "enableResizeOnLeft" | "enableResizeOnRight"> & FrameOwnProps & React.RefAttributes<HTMLElement>>;
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,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,IAAI,CAC3B,QAAQ,EACN,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,sBAAsB,CACzB,GACC,aAAa,CAAC;AAEhB,eAAO,MAAM,KAAK,8MAqChB,CAAC;AACH,UAAU,gBAAiB,SAAQ,QAAQ;CAAG;AAE9C,eAAO,MAAM,WAAW,sFAkEvB,CAAC"}
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 e } from "react/jsx-runtime";
2
- import { clsx as O } from "clsx";
3
- import h, { useCallback as _ } from "react";
4
- import { flushSync as R } from "react-dom";
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";
@@ -12,82 +12,90 @@ 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
14
  import { Portal as P } from "../portal/portal.js";
15
- import '../../frame.css';const B = "_frame-dialog_2a77c1d", N = { "frame-dialog": B }, J = h.forwardRef(function({
16
- children: f,
15
+ import '../../frame.css';const S = "_frame-dialog_2a77c1d", B = { "frame-dialog": S }, J = R.forwardRef(function({
16
+ children: a,
17
17
  isOpen: c = !1,
18
- draggable: i = !0,
19
- veil: a = !1,
18
+ draggable: o = !0,
19
+ veil: l = !1,
20
20
  resizable: t = !0,
21
- className: o,
22
- ...n
23
- }, l) {
24
- return c ? /* @__PURE__ */ e(P, { children: /* @__PURE__ */ e(w, { width: "100%", height: "100%", "data-is-veil": a, className: "tcn-frame-veil", children: /* @__PURE__ */ e(C, { draggable: i, children: /* @__PURE__ */ e(
25
- S,
21
+ className: s,
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
- className: o,
28
- ref: l,
29
- enableResizeOnLeft: t,
30
- enableResizeOnRight: t,
31
- enableResizeOnTop: t,
32
- enableResizeOnBottom: t,
33
- draggable: i,
34
- ...n,
35
- children: f
33
+ className: s,
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
- }), S = h.forwardRef(
46
+ }), N = R.forwardRef(
39
47
  function({
40
- as: f = "div",
48
+ as: a = "div",
41
49
  role: c = "dialog",
42
- children: i,
43
- className: a,
50
+ children: o,
51
+ className: l,
44
52
  draggable: t,
45
- onWidthResize: o,
46
- onHeightResize: n,
47
- ...l
48
- }, D) {
49
- const m = z(), p = h.useCallback(
50
- (r) => {
51
- if (!t || r.currentDelta === 0) return;
52
- const u = r.origin === "right" ? 1 : -1, g = r.currentDelta / 2 * u;
53
- R(() => {
54
- m.setPosition((s) => ({
55
- x: s.x + g,
56
- y: s.y
53
+ onWidthResize: s,
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
57
65
  }));
58
- }), o?.(r);
66
+ }), s?.(e);
59
67
  },
60
- [o, m, t]
61
- ), F = _(
62
- (r) => {
63
- if (!t || r.currentDelta === 0) return;
64
- const u = r.origin === "bottom" ? 1 : -1, s = r.currentDelta / 2 * u;
65
- R(() => {
66
- m.setPosition((d) => ({
67
- x: d.x,
68
- y: d.y + s
68
+ [s, r, t]
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
69
77
  }));
70
- }), n?.(r);
78
+ }), m?.(e);
71
79
  },
72
- [n, m, t]
80
+ [m, r, t]
73
81
  );
74
- return /* @__PURE__ */ e(
82
+ return /* @__PURE__ */ i(
75
83
  k,
76
84
  {
77
- className: O(N["frame-dialog"], "tcn-frame-dialog", a),
78
- ref: D,
79
- onWidthResize: p,
80
- onHeightResize: F,
81
- as: f,
85
+ className: F(B["frame-dialog"], "tcn-frame-dialog", l),
86
+ ref: h,
87
+ onWidthResize: d,
88
+ onHeightResize: g,
89
+ as: a,
82
90
  role: c,
83
- ...l,
84
- children: i
91
+ ...u,
92
+ children: o
85
93
  }
86
94
  );
87
95
  }
88
96
  );
89
97
  export {
90
98
  J as Frame,
91
- S as FrameDialog
99
+ N as FrameDialog
92
100
  };
93
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 {\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 = Omit<\n BoxProps,\n | 'enableResizeOnLeft'\n | 'enableResizeOnRight'\n | 'enableResizeOnTop'\n | 'enableResizeOnBottom'\n> &\n 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 ...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 enableResizeOnLeft={resizable}\n enableResizeOnRight={resizable}\n enableResizeOnTop={resizable}\n enableResizeOnBottom={resizable}\n // TODO: check to see if these should be enabled, and if so - if left/right should be disabled.\n // Could add a \"directional\" prop and use that in conjunction with enableResizeOnStart/End and deprecate enableResizeOnLeft/Right.\n // enableResizeOnStart={resizable}\n // enableResizeOnEnd={resizable}\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","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":";;;;;;;;;;;;;;8DAgCaA,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,GAAGC;AACL,GACAC,GACA;AACA,SAAKN,IAEH,gBAAAO,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACE,GAAA,EAAO,OAAM,QAAO,QAAO,QAAO,gBAAcP,GAAM,WAAU,kBAC/D,UAAA,gBAAAK,EAACG,KAAU,WAAAT,GACT,UAAA,gBAAAM;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAAP;AAAA,MACA,KAAAE;AAAA,MACA,oBAAoBH;AAAA,MACpB,qBAAqBA;AAAA,MACrB,mBAAmBA;AAAA,MACnB,sBAAsBA;AAAA,MAKtB,WAAAF;AAAA,MACC,GAAGI;AAAA,MAEH,UAAAN;AAAA,IAAA;AAAA,EAAA,EACH,CACF,GACF,GACF,IAvBkB;AAyBtB,CAAC,GAGYY,IAAcb,EAAM;AAAA,EAC/B,SACE;AAAA,IACE,IAAAc,IAAK;AAAA,IACL,MAAAC,IAAO;AAAA,IACP,UAAAd;AAAA,IACA,WAAAK;AAAA,IACA,WAAAH;AAAA,IACA,eAAAa;AAAA,IACA,gBAAAC;AAAA,IACA,GAAGV;AAAA,EAAA,GAELC,GACA;AACA,UAAMU,IAAOC,EAAA,GAEPC,IAAoBpB,EAAM;AAAA,MAC9B,CAACqB,MAAkC;AAEjC,YADI,CAAClB,KACDkB,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,GAAMf,CAAS;AAAA,IAAA,GAG3BuB,IAAqBC;AAAA,MACzB,CAACN,MAAmC;AAElC,YADI,CAAClB,KACDkB,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,GAAMf,CAAS;AAAA,IAAA;AAGlC,WACE,gBAAAM;AAAA,MAACoB;AAAA,MAAA;AAAA,QACC,WAAWC,EAAKC,EAAO,cAAc,GAAG,oBAAoBzB,CAAS;AAAA,QACrE,KAAAE;AAAA,QACA,eAAeY;AAAA,QACf,gBAAgBM;AAAA,QAChB,IAAAZ;AAAA,QACA,MAAAC;AAAA,QACC,GAAGR;AAAA,QAEH,UAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;"}
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}}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { SlideProps } from '../../overlay/slide/slide.js';
3
+ export type DrawerProps = SlideProps;
4
+ export declare const Drawer: React.ForwardRefExoticComponent<Omit<import('../../overlay/index.js').FrameProps, "draggable" | "enableResizeOnTop" | "enableResizeOnEnd" | "enableResizeOnBottom" | "enableResizeOnStart" | "enableResizeOnLeft" | "enableResizeOnRight"> & import('../../overlay/slide/slide.js').SlideOwnProps & React.RefAttributes<HTMLElement>>;
5
+ //# sourceMappingURL=drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/surfaces/drawers/drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;AAErC,eAAO,MAAM,MAAM,uUAkBjB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { clsx as s } from "clsx";
3
+ import i from "react";
4
+ import { Scaffold as l } from "../../layouts/scaffold/scaffold.js";
5
+ import { Slide as d } from "../../overlay/slide/slide.js";
6
+ const D = i.forwardRef(function({ children: e, className: a, isOpen: f, veil: o = !1, resizable: t = !1, ...c }, m) {
7
+ return /* @__PURE__ */ r(
8
+ d,
9
+ {
10
+ ref: m,
11
+ isOpen: f,
12
+ veil: o,
13
+ resizable: t,
14
+ className: s("tcn-surface", "tcn-drawer", a),
15
+ ...c,
16
+ children: /* @__PURE__ */ r(l, { className: "tcn-drawer-scaffold", width: "100%", height: "100%", children: e })
17
+ }
18
+ );
19
+ });
20
+ export {
21
+ D as Drawer
22
+ };
23
+ //# sourceMappingURL=drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.js","sources":["../../../src/surfaces/drawers/drawer.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport React from 'react';\nimport { Scaffold } from '../../layouts/scaffold/scaffold.js';\nimport { Slide, type SlideProps } from '../../overlay/slide/slide.js';\n\nexport type DrawerProps = SlideProps;\n\nexport const Drawer = React.forwardRef<HTMLElement, DrawerProps>(function Drawer(\n { children, className, isOpen, veil = false, resizable = false, ...props }: DrawerProps,\n ref\n) {\n return (\n <Slide\n ref={ref}\n isOpen={isOpen}\n veil={veil}\n resizable={resizable}\n className={clsx('tcn-surface', 'tcn-drawer', className)}\n {...props}\n >\n <Scaffold className={'tcn-drawer-scaffold'} width=\"100%\" height=\"100%\">\n {children}\n </Scaffold>\n </Slide>\n );\n});\n"],"names":["Drawer","React","children","className","isOpen","veil","resizable","props","ref","jsx","Slide","clsx","Scaffold"],"mappings":";;;;;AAOO,MAAMA,IAASC,EAAM,WAAqC,SAC/D,EAAE,UAAAC,GAAU,WAAAC,GAAW,QAAAC,GAAQ,MAAAC,IAAO,IAAO,WAAAC,IAAY,IAAO,GAAGC,EAAA,GACnEC,GACA;AACA,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,QAAAJ;AAAA,MACA,MAAAC;AAAA,MACA,WAAAC;AAAA,MACA,WAAWK,EAAK,eAAe,cAAcR,CAAS;AAAA,MACrD,GAAGI;AAAA,MAEJ,UAAA,gBAAAE,EAACG,KAAS,WAAW,uBAAuB,OAAM,QAAO,QAAO,QAC7D,UAAAV,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
@@ -5,10 +5,7 @@ export * from './page/h_page.js';
5
5
  export * from './page/v_page.js';
6
6
  export * from './panel/panel.js';
7
7
  export * from './popover/popover.js';
8
- export * from './drawers/drawer_bottom/drawer_bottom.js';
9
- export * from './drawers/drawer_top/drawer_top.js';
10
- export * from './drawers/drawer_start/drawer_start.js';
11
- export * from './drawers/drawer_end/drawer_end.js';
8
+ export { Drawer, type DrawerProps } from './drawers/drawer.js';
12
9
  export { Window, type WindowProps } from './window/window.js';
13
10
  export { Modal, type ModalProps } from './modal/modal.js';
14
11
  export { Tooltip, type TooltipProps } from './tooltip/tooltip.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,33 +1,27 @@
1
1
  import { Alert as e } from "./alert/alert.js";
2
- import { Card as p } from "./card/card.js";
3
- import { Confirm as f } from "./confirm/confirm.js";
2
+ import { Card as f } from "./card/card.js";
3
+ import { Confirm as t } from "./confirm/confirm.js";
4
4
  import { HPage as a } from "./page/h_page.js";
5
- import { VPage as w } from "./page/v_page.js";
6
- import { Panel as d } from "./panel/panel.js";
7
- import { Popover as l } from "./popover/popover.js";
8
- import { DrawerBottom as C } from "./drawers/drawer_bottom/drawer_bottom.js";
9
- import { DrawerTop as T } from "./drawers/drawer_top/drawer_top.js";
10
- import { DrawerStart as A } from "./drawers/drawer_start/drawer_start.js";
11
- import { DrawerEnd as E } from "./drawers/drawer_end/drawer_end.js";
12
- import { Window as M } from "./window/window.js";
13
- import { Modal as V } from "./modal/modal.js";
14
- import { Tooltip as b } from "./tooltip/tooltip.js";
15
- import { PopConfirm as h } from "./pop_confirm/pop_confirm.js";
5
+ import { VPage as i } from "./page/v_page.js";
6
+ import { Panel as n } from "./panel/panel.js";
7
+ import { Popover as C } from "./popover/popover.js";
8
+ import { Drawer as w } from "./drawers/drawer.js";
9
+ import { Window as A } from "./window/window.js";
10
+ import { Modal as H } from "./modal/modal.js";
11
+ import { Tooltip as T } from "./tooltip/tooltip.js";
12
+ import { PopConfirm as W } from "./pop_confirm/pop_confirm.js";
16
13
  export {
17
14
  e as Alert,
18
- p as Card,
19
- f as Confirm,
20
- C as DrawerBottom,
21
- E as DrawerEnd,
22
- A as DrawerStart,
23
- T as DrawerTop,
15
+ f as Card,
16
+ t as Confirm,
17
+ w as Drawer,
24
18
  a as HPage,
25
- V as Modal,
26
- d as Panel,
27
- h as PopConfirm,
28
- l as Popover,
29
- b as Tooltip,
30
- w as VPage,
31
- M as Window
19
+ H as Modal,
20
+ n as Panel,
21
+ W as PopConfirm,
22
+ C as Popover,
23
+ T as Tooltip,
24
+ i as VPage,
25
+ A as Window
32
26
  };
33
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { FrameProps } from '../../overlay/frame/frame.js';
3
3
  export type ModalProps = FrameProps;
4
- export declare const Modal: React.ForwardRefExoticComponent<Omit<import('../../stacks/index.js').BoxProps<HTMLElement>, "enableResizeOnTop" | "enableResizeOnBottom" | "enableResizeOnLeft" | "enableResizeOnRight"> & import('../../overlay/index.js').FrameOwnProps & React.RefAttributes<HTMLElement>>;
4
+ export declare const Modal: React.ForwardRefExoticComponent<import('../../stacks/index.js').BoxProps<HTMLElement> & import('../../overlay/index.js').FrameOwnProps & React.RefAttributes<HTMLElement>>;
5
5
  //# sourceMappingURL=modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/surfaces/modal/modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAMtE,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAEpC,eAAO,MAAM,KAAK,+QA2BhB,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/surfaces/modal/modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAMtE,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAEpC,eAAO,MAAM,KAAK,4KA2BhB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { FrameProps } from '../../overlay/frame/frame.js';
3
3
  export type WindowProps = FrameProps;
4
- export declare const Window: React.ForwardRefExoticComponent<Omit<import('../../stacks/index.js').BoxProps<HTMLElement>, "enableResizeOnTop" | "enableResizeOnBottom" | "enableResizeOnLeft" | "enableResizeOnRight"> & import('../../overlay/index.js').FrameOwnProps & React.RefAttributes<HTMLElement>>;
4
+ export declare const Window: React.ForwardRefExoticComponent<import('../../stacks/index.js').BoxProps<HTMLElement> & import('../../overlay/index.js').FrameOwnProps & React.RefAttributes<HTMLElement>>;
5
5
  //# sourceMappingURL=window.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/surfaces/window/window.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAMtE,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;AAErC,eAAO,MAAM,MAAM,+QA2BjB,CAAC"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/surfaces/window/window.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAMtE,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;AAErC,eAAO,MAAM,MAAM,4KA2BjB,CAAC"}
@@ -1 +1 @@
1
- @layer tcn-reset{html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,button,video,dialog{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,hgroup,menu,nav{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}legend{all:unset;display:block;margin:0;padding:0;font:inherit;color:inherit}dialog{max-width:none;max-height:none;background:transparent;color:inherit}}
1
+ @layer tcn-reset{html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,button,video,dialog{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}header,section,article,aside,details,figcaption,figure,footer,hgroup,menu,nav{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}legend{all:unset;display:block;margin:0;padding:0;font:inherit;color:inherit}dialog{max-width:none;max-height:none;background:transparent;color:inherit}}
@@ -91,8 +91,8 @@ const n = `/* https://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
91
91
  vertical-align: baseline;
92
92
  }
93
93
  /* HTML5 display-role reset for older browsers */
94
- /* FIXME: sometimes reset breaks stacks display value (flex) */
95
- /* header, section */
94
+ header,
95
+ section,
96
96
  article,
97
97
  aside,
98
98
  details,
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sources":["../../../src/themes/stylesheets/reset.css?raw","../../../src/themes/stylesheets/reset.ts"],"sourcesContent":["export default \"/* https://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */\\n@layer tcn-reset {\\n html,\\n body,\\n div,\\n span,\\n applet,\\n object,\\n iframe,\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6,\\n p,\\n blockquote,\\n pre,\\n a,\\n abbr,\\n acronym,\\n address,\\n big,\\n cite,\\n code,\\n del,\\n dfn,\\n em,\\n img,\\n ins,\\n kbd,\\n q,\\n s,\\n samp,\\n small,\\n strike,\\n strong,\\n sub,\\n sup,\\n tt,\\n var,\\n b,\\n u,\\n i,\\n center,\\n dl,\\n dt,\\n dd,\\n ol,\\n ul,\\n li,\\n fieldset,\\n form,\\n label,\\n legend,\\n table,\\n caption,\\n tbody,\\n tfoot,\\n thead,\\n tr,\\n th,\\n td,\\n article,\\n aside,\\n canvas,\\n details,\\n embed,\\n figure,\\n figcaption,\\n footer,\\n header,\\n hgroup,\\n menu,\\n nav,\\n output,\\n ruby,\\n section,\\n summary,\\n time,\\n mark,\\n audio,\\n button,\\n video,\\n dialog {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-size: 100%;\\n font: inherit;\\n vertical-align: baseline;\\n }\\n /* HTML5 display-role reset for older browsers */\\n /* FIXME: sometimes reset breaks stacks display value (flex) */\\n /* header, section */\\n article,\\n aside,\\n details,\\n figcaption,\\n figure,\\n footer,\\n hgroup,\\n menu,\\n nav {\\n display: block;\\n }\\n body {\\n line-height: 1;\\n }\\n ol,\\n ul {\\n list-style: none;\\n }\\n blockquote,\\n q {\\n quotes: none;\\n }\\n blockquote:before,\\n blockquote:after,\\n q:before,\\n q:after {\\n content: \\\"\\\";\\n content: none;\\n }\\n table {\\n border-collapse: collapse;\\n border-spacing: 0;\\n }\\n\\n legend {\\n all: unset;\\n display: block;\\n margin: 0;\\n padding: 0;\\n font: inherit;\\n color: inherit;\\n }\\n dialog {\\n max-width: none;\\n max-height: none;\\n background: transparent;\\n color: inherit;\\n }\\n}\\n\"","import css from './reset.css?raw';\n\nexport const reset = new CSSStyleSheet();\nreset.replaceSync(css);\n"],"names":["css","reset"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCEFC,IAAQ,IAAI,cAAA;AACzBA,EAAM,YAAYD,CAAG;"}
1
+ {"version":3,"file":"reset.js","sources":["../../../src/themes/stylesheets/reset.css?raw","../../../src/themes/stylesheets/reset.ts"],"sourcesContent":["export default \"/* https://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */\\n@layer tcn-reset {\\n html,\\n body,\\n div,\\n span,\\n applet,\\n object,\\n iframe,\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6,\\n p,\\n blockquote,\\n pre,\\n a,\\n abbr,\\n acronym,\\n address,\\n big,\\n cite,\\n code,\\n del,\\n dfn,\\n em,\\n img,\\n ins,\\n kbd,\\n q,\\n s,\\n samp,\\n small,\\n strike,\\n strong,\\n sub,\\n sup,\\n tt,\\n var,\\n b,\\n u,\\n i,\\n center,\\n dl,\\n dt,\\n dd,\\n ol,\\n ul,\\n li,\\n fieldset,\\n form,\\n label,\\n legend,\\n table,\\n caption,\\n tbody,\\n tfoot,\\n thead,\\n tr,\\n th,\\n td,\\n article,\\n aside,\\n canvas,\\n details,\\n embed,\\n figure,\\n figcaption,\\n footer,\\n header,\\n hgroup,\\n menu,\\n nav,\\n output,\\n ruby,\\n section,\\n summary,\\n time,\\n mark,\\n audio,\\n button,\\n video,\\n dialog {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-size: 100%;\\n font: inherit;\\n vertical-align: baseline;\\n }\\n /* HTML5 display-role reset for older browsers */\\n header,\\n section,\\n article,\\n aside,\\n details,\\n figcaption,\\n figure,\\n footer,\\n hgroup,\\n menu,\\n nav {\\n display: block;\\n }\\n body {\\n line-height: 1;\\n }\\n ol,\\n ul {\\n list-style: none;\\n }\\n blockquote,\\n q {\\n quotes: none;\\n }\\n blockquote:before,\\n blockquote:after,\\n q:before,\\n q:after {\\n content: \\\"\\\";\\n content: none;\\n }\\n table {\\n border-collapse: collapse;\\n border-spacing: 0;\\n }\\n\\n legend {\\n all: unset;\\n display: block;\\n margin: 0;\\n padding: 0;\\n font: inherit;\\n color: inherit;\\n }\\n dialog {\\n max-width: none;\\n max-height: none;\\n background: transparent;\\n color: inherit;\\n }\\n}\\n\"","import css from './reset.css?raw';\n\nexport const reset = new CSSStyleSheet();\nreset.replaceSync(css);\n"],"names":["css","reset"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCEFC,IAAQ,IAAI,cAAA;AACzBA,EAAM,YAAYD,CAAG;"}