@synnaxlabs/pluto 0.21.1 → 0.21.2

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 (108) hide show
  1. package/dist/{Keyboard-CEX8wqRX.js → Keyboard-C8cyKsao.js} +2 -2
  2. package/dist/{Keyboard-CEX8wqRX.js.map → Keyboard-C8cyKsao.js.map} +1 -1
  3. package/dist/{Keyboard-CDiwrDN_.cjs → Keyboard-CQoUT-k_.cjs} +2 -2
  4. package/dist/{Keyboard-CDiwrDN_.cjs.map → Keyboard-CQoUT-k_.cjs.map} +1 -1
  5. package/dist/{LinePlot-D3gQs_D3.js → LinePlot-D3us1amT.js} +2 -2
  6. package/dist/{LinePlot-D3gQs_D3.js.map → LinePlot-D3us1amT.js.map} +1 -1
  7. package/dist/{LinePlot-DLRPrgHN.cjs → LinePlot-FmPnet-3.cjs} +2 -2
  8. package/dist/{LinePlot-DLRPrgHN.cjs.map → LinePlot-FmPnet-3.cjs.map} +1 -1
  9. package/dist/{Link-DZF_mhiS.js → Link-3r9yGooG.js} +2 -2
  10. package/dist/{Link-DZF_mhiS.js.map → Link-3r9yGooG.js.map} +1 -1
  11. package/dist/{Link-BKZVZIk7.cjs → Link-pE5mGv-R.cjs} +2 -2
  12. package/dist/{Link-BKZVZIk7.cjs.map → Link-pE5mGv-R.cjs.map} +1 -1
  13. package/dist/{List-Cs01wqeH.js → List-A5VsgE6N.js} +3 -3
  14. package/dist/{List-Cs01wqeH.js.map → List-A5VsgE6N.js.map} +1 -1
  15. package/dist/{List-aushS6dz.cjs → List-DufMhjqX.cjs} +3 -3
  16. package/dist/{List-aushS6dz.cjs.map → List-DufMhjqX.cjs.map} +1 -1
  17. package/dist/{Toggle-DDY2Hs-p.js → Toggle-Blzh0A0b.js} +4 -3
  18. package/dist/{Toggle-DDY2Hs-p.js.map → Toggle-Blzh0A0b.js.map} +1 -1
  19. package/dist/{Toggle-J-_q32C5.cjs → Toggle-D1EoehhH.cjs} +4 -3
  20. package/dist/{Toggle-J-_q32C5.cjs.map → Toggle-D1EoehhH.cjs.map} +1 -1
  21. package/dist/{aggregator-B630XvUR.cjs → aggregator-Ca8xiVD2.cjs} +3 -2
  22. package/dist/{aggregator-B630XvUR.cjs.map → aggregator-Ca8xiVD2.cjs.map} +1 -1
  23. package/dist/{aggregator-CMccKfYY.js → aggregator-Dl2jHye5.js} +3 -2
  24. package/dist/{aggregator-CMccKfYY.js.map → aggregator-Dl2jHye5.js.map} +1 -1
  25. package/dist/button.cjs +1 -1
  26. package/dist/button.js +1 -1
  27. package/dist/color.cjs +1 -1
  28. package/dist/color.js +1 -1
  29. package/dist/dropdown.cjs +1 -1
  30. package/dist/dropdown.js +1 -1
  31. package/dist/ether.cjs +2 -2
  32. package/dist/ether.js +4 -4
  33. package/dist/{external-BEuegMjB.js → external-1LeSvPMo.js} +5 -5
  34. package/dist/{external-BEuegMjB.js.map → external-1LeSvPMo.js.map} +1 -1
  35. package/dist/{external-Dvfxbror.cjs → external-B8ILMNP2.cjs} +3 -3
  36. package/dist/{external-Dvfxbror.cjs.map → external-B8ILMNP2.cjs.map} +1 -1
  37. package/dist/{external-gnae-K0R.cjs → external-B8MvInOj.cjs} +3 -3
  38. package/dist/{external-gnae-K0R.cjs.map → external-B8MvInOj.cjs.map} +1 -1
  39. package/dist/{external-BapFfm1g.cjs → external-BC7QdjAs.cjs} +4 -4
  40. package/dist/{external-BapFfm1g.cjs.map → external-BC7QdjAs.cjs.map} +1 -1
  41. package/dist/{external-DxAWWXHr.cjs → external-BL3iWJdz.cjs} +3 -3
  42. package/dist/{external-DxAWWXHr.cjs.map → external-BL3iWJdz.cjs.map} +1 -1
  43. package/dist/{external-BMHtKaLv.js → external-BMK0UUaW.js} +3 -3
  44. package/dist/external-BMK0UUaW.js.map +1 -0
  45. package/dist/{external-D39DdEvO.cjs → external-BVW64h82.cjs} +4 -4
  46. package/dist/{external-D39DdEvO.cjs.map → external-BVW64h82.cjs.map} +1 -1
  47. package/dist/{external-DxRHU9kB.cjs → external-Bh2-N-ic.cjs} +5 -5
  48. package/dist/{external-DxRHU9kB.cjs.map → external-Bh2-N-ic.cjs.map} +1 -1
  49. package/dist/{external-Dv4zXi92.js → external-BlDgPWoN.js} +4 -4
  50. package/dist/{external-Dv4zXi92.js.map → external-BlDgPWoN.js.map} +1 -1
  51. package/dist/{external-BCAEiTdS.js → external-C0ssJO_w.js} +3 -3
  52. package/dist/{external-BCAEiTdS.js.map → external-C0ssJO_w.js.map} +1 -1
  53. package/dist/{external-CSkoe4lv.js → external-Cco96ysu.js} +3 -3
  54. package/dist/external-Cco96ysu.js.map +1 -0
  55. package/dist/{external-DZ7kcmNL.js → external-ClBFWQBO.js} +3 -3
  56. package/dist/{external-DZ7kcmNL.js.map → external-ClBFWQBO.js.map} +1 -1
  57. package/dist/{external-BI4uis0s.cjs → external-CygFOviM.cjs} +3 -3
  58. package/dist/{external-BI4uis0s.cjs.map → external-CygFOviM.cjs.map} +1 -1
  59. package/dist/{external-Dl-ZGt_l.js → external-D5cOWqK9.js} +4 -4
  60. package/dist/{external-Dl-ZGt_l.js.map → external-D5cOWqK9.js.map} +1 -1
  61. package/dist/{external-OfudrDkh.js → external-D9_xWvtb.js} +3 -3
  62. package/dist/{external-OfudrDkh.js.map → external-D9_xWvtb.js.map} +1 -1
  63. package/dist/{external-CJ0YZYhM.js → external-DJYiyF-g.js} +3 -3
  64. package/dist/{external-CJ0YZYhM.js.map → external-DJYiyF-g.js.map} +1 -1
  65. package/dist/{external-QMwhKJob.js → external-Dsqoldyc.js} +3 -3
  66. package/dist/{external-QMwhKJob.js.map → external-Dsqoldyc.js.map} +1 -1
  67. package/dist/{external-ik_rhtMe.cjs → external-QoTq138N.cjs} +3 -3
  68. package/dist/{external-ik_rhtMe.cjs.map → external-QoTq138N.cjs.map} +1 -1
  69. package/dist/{external-DETy3UAu.cjs → external-S9aNR1qN.cjs} +5 -5
  70. package/dist/{external-DETy3UAu.cjs.map → external-S9aNR1qN.cjs.map} +1 -1
  71. package/dist/{external-BsumfQ2H.cjs → external-XnNSUnBv.cjs} +3 -3
  72. package/dist/external-XnNSUnBv.cjs.map +1 -0
  73. package/dist/{external-mYfZ-ziq.cjs → external-ueyo2Jw7.cjs} +3 -3
  74. package/dist/external-ueyo2Jw7.cjs.map +1 -0
  75. package/dist/{external-DAIKvuBu.js → external-zennQBXe.js} +5 -5
  76. package/dist/{external-DAIKvuBu.js.map → external-zennQBXe.js.map} +1 -1
  77. package/dist/header.cjs +1 -1
  78. package/dist/header.js +1 -1
  79. package/dist/index.cjs +14 -14
  80. package/dist/index.js +24 -24
  81. package/dist/input.cjs +1 -1
  82. package/dist/input.js +1 -1
  83. package/dist/list.cjs +1 -1
  84. package/dist/list.js +1 -1
  85. package/dist/menu.cjs +1 -1
  86. package/dist/menu.js +1 -1
  87. package/dist/src/status/aether/aggregator.d.ts +10 -10
  88. package/dist/src/status/aether/types.d.ts +5 -5
  89. package/dist/src/status/aether/types.d.ts.map +1 -1
  90. package/dist/src/status/colors.d.ts.map +1 -1
  91. package/dist/src/telem/aether/transformers.d.ts +9 -9
  92. package/dist/src/telem/control/aether/chip.d.ts +10 -10
  93. package/dist/src/telem/control/aether/indicator.d.ts +10 -10
  94. package/dist/tabs.cjs +1 -1
  95. package/dist/tabs.js +1 -1
  96. package/dist/text.cjs +2 -2
  97. package/dist/text.js +2 -2
  98. package/dist/theming.cjs +2 -2
  99. package/dist/theming.js +2 -2
  100. package/dist/tree.cjs +1 -1
  101. package/dist/tree.js +1 -1
  102. package/dist/triggers.cjs +1 -1
  103. package/dist/triggers.js +1 -1
  104. package/package.json +2 -2
  105. package/dist/external-BMHtKaLv.js.map +0 -1
  106. package/dist/external-BsumfQ2H.cjs.map +0 -1
  107. package/dist/external-CSkoe4lv.js.map +0 -1
  108. package/dist/external-mYfZ-ziq.cjs.map +0 -1
package/dist/button.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const external = require("./external-BsumfQ2H.cjs");
3
+ const external = require("./external-XnNSUnBv.cjs");
4
4
  exports.Button = external.external;
5
5
  //# sourceMappingURL=button.cjs.map
package/dist/button.js CHANGED
@@ -1,4 +1,4 @@
1
- import { e } from "./external-CSkoe4lv.js";
1
+ import { e } from "./external-Cco96ysu.js";
2
2
  export {
3
3
  e as Button
4
4
  };
package/dist/color.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const external = require("./external-gnae-K0R.cjs");
3
+ const external = require("./external-B8MvInOj.cjs");
4
4
  exports.Color = external.external;
5
5
  //# sourceMappingURL=color.cjs.map
package/dist/color.js CHANGED
@@ -1,4 +1,4 @@
1
- import { e } from "./external-DZ7kcmNL.js";
1
+ import { e } from "./external-ClBFWQBO.js";
2
2
  export {
3
3
  e as Color
4
4
  };
package/dist/dropdown.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Toggle = require("./Toggle-J-_q32C5.cjs");
3
+ const Toggle = require("./Toggle-D1EoehhH.cjs");
4
4
  exports.Dropdown = Toggle.Dropdown;
5
5
  //# sourceMappingURL=dropdown.cjs.map
package/dist/dropdown.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D } from "./Toggle-DDY2Hs-p.js";
1
+ import { D } from "./Toggle-Blzh0A0b.js";
2
2
  export {
3
3
  D as Dropdown
4
4
  };
package/dist/ether.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const aggregator = require("./aggregator-B630XvUR.cjs");
4
- const LinePlot = require("./LinePlot-DLRPrgHN.cjs");
3
+ const aggregator = require("./aggregator-Ca8xiVD2.cjs");
4
+ const LinePlot = require("./LinePlot-FmPnet-3.cjs");
5
5
  const css = require("./css-Pf9qxhQ4.cjs");
6
6
  const external$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7
7
  __proto__: null,
package/dist/ether.js CHANGED
@@ -1,7 +1,7 @@
1
- import { P as Provider, R as REGISTRY, S as SYNNAX_DARK, a as SYNNAX_LIGHT, b as SYNNAX_THEMES, f as fontString, t as themeZ, u as use, d as a, e as REGISTRY$d, r as render$1 } from "./aggregator-CMccKfYY.js";
2
- import { g } from "./aggregator-CMccKfYY.js";
3
- import { C as Context$1, a as Controller, E as Eraser$1, G as GLProgram, L as Loop, R as REASON_DATA, b as REASON_LAYOUT, c as REASON_TOOL, d as REGISTRY$1, e as REGISTRY$2, f as REGISTRY$3, g as REGISTRY$4, h as REGISTRY$5, i as REGISTRY$6, j as REGISTRY$7, k as REGISTRY$8, l as REGISTRY$9, m as REGISTRY$a, n as REGISTRY$b, o as REGISTRY$c, p as REGISTRY$e, q as REGISTRY$f, r as REGISTRY$g, s as REGISTRY$h, A as LinePlot, X as XAxis, Y as YAxis, B as linePlotStateZ, F as xAxisStateZ, H as yAxisStateZ } from "./LinePlot-D3gQs_D3.js";
4
- import { z, D, u, w, t, v, x, y } from "./LinePlot-D3gQs_D3.js";
1
+ import { P as Provider, R as REGISTRY, S as SYNNAX_DARK, a as SYNNAX_LIGHT, b as SYNNAX_THEMES, f as fontString, t as themeZ, u as use, d as a, e as REGISTRY$d, r as render$1 } from "./aggregator-Dl2jHye5.js";
2
+ import { g } from "./aggregator-Dl2jHye5.js";
3
+ import { C as Context$1, a as Controller, E as Eraser$1, G as GLProgram, L as Loop, R as REASON_DATA, b as REASON_LAYOUT, c as REASON_TOOL, d as REGISTRY$1, e as REGISTRY$2, f as REGISTRY$3, g as REGISTRY$4, h as REGISTRY$5, i as REGISTRY$6, j as REGISTRY$7, k as REGISTRY$8, l as REGISTRY$9, m as REGISTRY$a, n as REGISTRY$b, o as REGISTRY$c, p as REGISTRY$e, q as REGISTRY$f, r as REGISTRY$g, s as REGISTRY$h, A as LinePlot, X as XAxis, Y as YAxis, B as linePlotStateZ, F as xAxisStateZ, H as yAxisStateZ } from "./LinePlot-D3us1amT.js";
4
+ import { z, D, u, w, t, v, x, y } from "./LinePlot-D3us1amT.js";
5
5
  import { b } from "./css-DoalWJF6.js";
6
6
  const external$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7
7
  __proto__: null,
@@ -1,11 +1,11 @@
1
- import { A as Selector, n as Dialog, H as Hover, J as Column, z as Core$1, G as componentRenderProp, K as useSelect, B as Button$1, p as m0, j as use, L as CoreDateTime, N as DateTime, E as Editable, O as Link, M as MaybeEditable, Q as Symbols, e as Text, W as WithIcon, F as edit, R as evalColor, U as formatChildren } from "./Toggle-DDY2Hs-p.js";
2
- import { C as ComponentSizeLevels, L as LEVELS, j as LevelComponentSizes, k as dimensions, l as levelZ, s as specZ } from "./aggregator-CMccKfYY.js";
3
- import { K as Keyboard } from "./Keyboard-CEX8wqRX.js";
1
+ import { A as Selector, n as Dialog, H as Hover, J as Column, z as Core$1, G as componentRenderProp, K as useSelect, B as Button$1, p as m0, j as use, L as CoreDateTime, N as DateTime, E as Editable, O as Link, M as MaybeEditable, Q as Symbols, e as Text, W as WithIcon, F as edit, R as evalColor, U as formatChildren } from "./Toggle-Blzh0A0b.js";
2
+ import { C as ComponentSizeLevels, L as LEVELS, j as LevelComponentSizes, k as dimensions, l as levelZ, s as specZ } from "./aggregator-Dl2jHye5.js";
3
+ import { K as Keyboard } from "./Keyboard-C8cyKsao.js";
4
4
  import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
5
5
  import { useState, useEffect, useCallback } from "react";
6
6
  import { P as Pack } from "./Center-hbwH7rg9.js";
7
7
  import { C as CSS } from "./css-DoalWJF6.js";
8
- import { L as List } from "./List-Cs01wqeH.js";
8
+ import { L as List } from "./List-A5VsgE6N.js";
9
9
  const DEFAULT_COLUMNS = [];
10
10
  const Core = ({
11
11
  data,
@@ -217,4 +217,4 @@ export {
217
217
  defaultButton as d,
218
218
  external as e
219
219
  };
220
- //# sourceMappingURL=external-BEuegMjB.js.map
220
+ //# sourceMappingURL=external-1LeSvPMo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-BEuegMjB.js","sources":["../src/select/List.tsx","../src/select/Button.tsx","../src/text/SelectLevel.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type PropsWithChildren, type ReactElement } from \"react\";\n\nimport { type Key, type Keyed } from \"@synnaxlabs/x\";\n\nimport { CSS } from \"@/css\";\nimport { Dropdown } from \"@/dropdown\";\nimport { List as CoreList } from \"@/list\";\nimport { componentRenderProp } from \"@/util/renderProp\";\n\nexport interface SelectListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends CoreList.SelectorProps<K, E>,\n Pick<Partial<CoreList.ColumnHeaderProps<K, E>>, \"columns\">,\n Omit<Dropdown.DialogProps, \"onChange\" | \"children\">,\n PropsWithChildren<{}> {\n data?: E[];\n emptyContent?: ReactElement;\n hideColumnHeader?: boolean;\n omit?: K[];\n}\n\nconst DEFAULT_COLUMNS: CoreList.ColumnSpec[] = [];\n\nexport const Core = <K extends Key, E extends Keyed<K>>({\n data,\n emptyContent,\n value,\n onChange,\n allowMultiple,\n allowNone,\n hideColumnHeader = false,\n children,\n columns = DEFAULT_COLUMNS,\n visible,\n replaceOnSingle,\n omit,\n ...props\n}: SelectListProps<K, E>): ReactElement => (\n <CoreList.List data={data} emptyContent={emptyContent} omit={omit}>\n <CoreList.Selector\n value={value}\n onChange={onChange}\n allowMultiple={allowMultiple}\n allowNone={allowNone}\n replaceOnSingle={replaceOnSingle}\n >\n <Dropdown.Dialog visible={visible} className={CSS.B(\"select\")} {...props}>\n {children}\n <CoreList.Hover disabled={!visible}>\n <CoreList.Column.Header hide={hideColumnHeader} columns={columns}>\n <CoreList.Core.Virtual itemHeight={CoreList.Column.itemHeight}>\n {componentRenderProp(CoreList.Column.Item)}\n </CoreList.Core.Virtual>\n </CoreList.Column.Header>\n </CoreList.Hover>\n </Dropdown.Dialog>\n </CoreList.Selector>\n </CoreList.List>\n);\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n useCallback,\n type ReactElement,\n useState,\n useEffect,\n type ReactNode,\n} from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\nimport { type Keyed, type Key } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { Button as CoreButton } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { Dropdown } from \"@/dropdown\";\nimport { type Input } from \"@/input\";\nimport { type List as CoreList } from \"@/list\";\nimport {\n type UseSelectProps,\n useSelect,\n type UseSelectOnChangeExtra,\n} from \"@/list/useSelect\";\nimport { Core } from \"@/select/List\";\nimport { componentRenderProp, type RenderProp } from \"@/util/renderProp\";\n\nimport \"@/select/Button.css\";\n\nexport interface ButtonOptionProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends Pick<CoreButton.ButtonProps, \"onClick\"> {\n key: K;\n selected: boolean;\n entry: E;\n title: E[keyof E];\n}\n\nexport type ButtonProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>> = Omit<\n UseSelectProps<K, E>,\n \"data\"\n> &\n Omit<Align.PackProps, \"children\" | \"onChange\"> & {\n data: E[];\n children?: RenderProp<ButtonOptionProps<K, E>>;\n entryRenderKey?: keyof E;\n };\n\nexport const Button = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n children = defaultSelectButtonOption,\n value,\n onChange,\n entryRenderKey = \"key\",\n allowNone = false,\n allowMultiple = false,\n data,\n replaceOnSingle,\n ...props\n}: ButtonProps<K, E>): JSX.Element => {\n const { onSelect } = useSelect<K, E>({\n allowMultiple,\n allowNone,\n replaceOnSingle,\n data,\n value,\n onChange,\n } as const as UseSelectProps<K, E>);\n\n return (\n <Align.Pack {...props}>\n {data.map((e) => {\n return children({\n key: e.key,\n onClick: () => onSelect(e.key),\n selected: e.key === value,\n entry: e,\n title: e[entryRenderKey],\n });\n })}\n </Align.Pack>\n );\n};\n\nconst defaultSelectButtonOption = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n onClick,\n selected,\n title,\n}: ButtonOptionProps<K, E>): JSX.Element => (\n <CoreButton.Button onClick={onClick} variant={selected ? \"filled\" : \"outlined\"}>\n {title as ReactNode}\n </CoreButton.Button>\n);\n\nexport interface DropdownButtonButtonProps<K extends Key, E extends Keyed<K>>\n extends CoreButton.ButtonProps {\n selected: E | null;\n renderKey: keyof E;\n toggle: () => void;\n visible: boolean;\n}\n\nexport interface DropdownButtonProps<K extends Key, E extends Keyed<K>>\n extends Omit<Dropdown.DialogProps, \"onChange\" | \"visible\" | \"children\" | \"close\">,\n Input.Control<K>,\n Omit<CoreList.ListProps<K, E>, \"children\">,\n Pick<CoreButton.ButtonProps, \"disabled\"> {\n columns?: Array<CoreList.ColumnSpec<K, E>>;\n children?: RenderProp<DropdownButtonButtonProps<K, E>>;\n entryRenderKey?: keyof E;\n allowNone?: boolean;\n hideColumnHeader?: boolean;\n disabled?: boolean;\n omit?: K[];\n}\n\nexport const BaseButton = ({\n selected,\n renderKey,\n toggle,\n visible,\n children,\n ...props\n}: DropdownButtonButtonProps<any, any>): ReactElement => (\n <CoreButton.Button\n className={CSS.B(\"select-button\")}\n onClick={toggle}\n variant=\"outlined\"\n endIcon={<Icon.Caret.Left className={CSS.BE(\"select-button\", \"indicator\")} />}\n {...props}\n >\n {children ?? selected?.[renderKey]}\n </CoreButton.Button>\n);\n\nexport const defaultButton: RenderProp<DropdownButtonButtonProps<any, any>> =\n componentRenderProp(BaseButton);\n\nexport const DropdownButton = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n data,\n value,\n columns = [],\n children = defaultButton,\n entryRenderKey = \"key\",\n allowNone = false,\n onChange,\n disabled,\n hideColumnHeader = true,\n ...props\n}: DropdownButtonProps<K, E>): ReactElement => {\n const { close, visible, toggle } = Dropdown.use();\n const [selected, setSelected] = useState<E | null>(\n data?.find((e) => e.key === value) ?? null,\n );\n\n useEffect(() => {\n setSelected(data?.find((e) => e.key === value) ?? null);\n }, [data, value]);\n\n const handleChange: UseSelectProps<K, E>[\"onChange\"] = useCallback(\n (next: K, e: UseSelectOnChangeExtra<K, E>): void => {\n close();\n if (next == null) {\n setSelected(null);\n return onChange(value);\n }\n setSelected(e.entries[0]);\n onChange(next);\n },\n [onChange, value, close, setSelected],\n );\n\n return (\n <Core<K, E>\n {...props}\n close={close}\n data={data}\n visible={visible}\n value={[value]}\n onChange={handleChange}\n allowMultiple={false}\n allowNone={allowNone}\n columns={columns}\n hideColumnHeader={hideColumnHeader}\n >\n {children({\n selected,\n renderKey: entryRenderKey,\n toggle,\n visible,\n disabled,\n })}\n </Core>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { Button as CoreButton } from \"@/button\";\nimport { Button, type ButtonOptionProps, type ButtonProps } from \"@/select/Button\";\nimport { type text } from \"@/text/core\";\n\ninterface Entry {\n key: text.Level;\n label: string;\n}\n\nexport interface SelectLevelProps\n extends Omit<ButtonProps<text.Level, Entry>, \"data\" | \"entryRenderKey\"> {}\n\nconst DATA: Entry[] = [\n {\n key: \"h2\",\n label: \"XL\",\n },\n {\n key: \"h3\",\n label: \"L\",\n },\n {\n key: \"h4\",\n label: \"M\",\n },\n {\n key: \"p\",\n label: \"S\",\n },\n {\n key: \"small\",\n label: \"XS\",\n },\n];\n\nconst defaultSelectDirectionButton = ({\n key,\n entry,\n onClick,\n selected,\n}: ButtonOptionProps<text.Level, Entry>): ReactElement => {\n return (\n <CoreButton.Button\n key={key}\n variant={selected ? \"filled\" : \"outlined\"}\n onClick={onClick}\n >\n {entry.label}\n </CoreButton.Button>\n );\n};\n\nexport const SelectLevel = ({\n children = defaultSelectDirectionButton,\n ...props\n}: SelectLevelProps): ReactElement => {\n return (\n <Button {...props} data={DATA}>\n {children}\n </Button>\n );\n};\n"],"names":["CoreList.List","jsx","CoreList.Selector","jsxs","Dropdown.Dialog","CoreList.Hover","CoreList.Column","CoreList.Core","Align.Pack","CoreButton.Button","Icon","Dropdown.use"],"mappings":"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"}
1
+ {"version":3,"file":"external-1LeSvPMo.js","sources":["../src/select/List.tsx","../src/select/Button.tsx","../src/text/SelectLevel.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type PropsWithChildren, type ReactElement } from \"react\";\n\nimport { type Key, type Keyed } from \"@synnaxlabs/x\";\n\nimport { CSS } from \"@/css\";\nimport { Dropdown } from \"@/dropdown\";\nimport { List as CoreList } from \"@/list\";\nimport { componentRenderProp } from \"@/util/renderProp\";\n\nexport interface SelectListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends CoreList.SelectorProps<K, E>,\n Pick<Partial<CoreList.ColumnHeaderProps<K, E>>, \"columns\">,\n Omit<Dropdown.DialogProps, \"onChange\" | \"children\">,\n PropsWithChildren<{}> {\n data?: E[];\n emptyContent?: ReactElement;\n hideColumnHeader?: boolean;\n omit?: K[];\n}\n\nconst DEFAULT_COLUMNS: CoreList.ColumnSpec[] = [];\n\nexport const Core = <K extends Key, E extends Keyed<K>>({\n data,\n emptyContent,\n value,\n onChange,\n allowMultiple,\n allowNone,\n hideColumnHeader = false,\n children,\n columns = DEFAULT_COLUMNS,\n visible,\n replaceOnSingle,\n omit,\n ...props\n}: SelectListProps<K, E>): ReactElement => (\n <CoreList.List data={data} emptyContent={emptyContent} omit={omit}>\n <CoreList.Selector\n value={value}\n onChange={onChange}\n allowMultiple={allowMultiple}\n allowNone={allowNone}\n replaceOnSingle={replaceOnSingle}\n >\n <Dropdown.Dialog visible={visible} className={CSS.B(\"select\")} {...props}>\n {children}\n <CoreList.Hover disabled={!visible}>\n <CoreList.Column.Header hide={hideColumnHeader} columns={columns}>\n <CoreList.Core.Virtual itemHeight={CoreList.Column.itemHeight}>\n {componentRenderProp(CoreList.Column.Item)}\n </CoreList.Core.Virtual>\n </CoreList.Column.Header>\n </CoreList.Hover>\n </Dropdown.Dialog>\n </CoreList.Selector>\n </CoreList.List>\n);\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n useCallback,\n type ReactElement,\n useState,\n useEffect,\n type ReactNode,\n} from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\nimport { type Keyed, type Key } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { Button as CoreButton } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { Dropdown } from \"@/dropdown\";\nimport { type Input } from \"@/input\";\nimport { type List as CoreList } from \"@/list\";\nimport {\n type UseSelectProps,\n useSelect,\n type UseSelectOnChangeExtra,\n} from \"@/list/useSelect\";\nimport { Core } from \"@/select/List\";\nimport { componentRenderProp, type RenderProp } from \"@/util/renderProp\";\n\nimport \"@/select/Button.css\";\n\nexport interface ButtonOptionProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends Pick<CoreButton.ButtonProps, \"onClick\"> {\n key: K;\n selected: boolean;\n entry: E;\n title: E[keyof E];\n}\n\nexport type ButtonProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>> = Omit<\n UseSelectProps<K, E>,\n \"data\"\n> &\n Omit<Align.PackProps, \"children\" | \"onChange\"> & {\n data: E[];\n children?: RenderProp<ButtonOptionProps<K, E>>;\n entryRenderKey?: keyof E;\n };\n\nexport const Button = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n children = defaultSelectButtonOption,\n value,\n onChange,\n entryRenderKey = \"key\",\n allowNone = false,\n allowMultiple = false,\n data,\n replaceOnSingle,\n ...props\n}: ButtonProps<K, E>): JSX.Element => {\n const { onSelect } = useSelect<K, E>({\n allowMultiple,\n allowNone,\n replaceOnSingle,\n data,\n value,\n onChange,\n } as const as UseSelectProps<K, E>);\n\n return (\n <Align.Pack {...props}>\n {data.map((e) => {\n return children({\n key: e.key,\n onClick: () => onSelect(e.key),\n selected: e.key === value,\n entry: e,\n title: e[entryRenderKey],\n });\n })}\n </Align.Pack>\n );\n};\n\nconst defaultSelectButtonOption = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n onClick,\n selected,\n title,\n}: ButtonOptionProps<K, E>): JSX.Element => (\n <CoreButton.Button onClick={onClick} variant={selected ? \"filled\" : \"outlined\"}>\n {title as ReactNode}\n </CoreButton.Button>\n);\n\nexport interface DropdownButtonButtonProps<K extends Key, E extends Keyed<K>>\n extends CoreButton.ButtonProps {\n selected: E | null;\n renderKey: keyof E;\n toggle: () => void;\n visible: boolean;\n}\n\nexport interface DropdownButtonProps<K extends Key, E extends Keyed<K>>\n extends Omit<Dropdown.DialogProps, \"onChange\" | \"visible\" | \"children\" | \"close\">,\n Input.Control<K>,\n Omit<CoreList.ListProps<K, E>, \"children\">,\n Pick<CoreButton.ButtonProps, \"disabled\"> {\n columns?: Array<CoreList.ColumnSpec<K, E>>;\n children?: RenderProp<DropdownButtonButtonProps<K, E>>;\n entryRenderKey?: keyof E;\n allowNone?: boolean;\n hideColumnHeader?: boolean;\n disabled?: boolean;\n omit?: K[];\n}\n\nexport const BaseButton = ({\n selected,\n renderKey,\n toggle,\n visible,\n children,\n ...props\n}: DropdownButtonButtonProps<any, any>): ReactElement => (\n <CoreButton.Button\n className={CSS.B(\"select-button\")}\n onClick={toggle}\n variant=\"outlined\"\n endIcon={<Icon.Caret.Left className={CSS.BE(\"select-button\", \"indicator\")} />}\n {...props}\n >\n {children ?? selected?.[renderKey]}\n </CoreButton.Button>\n);\n\nexport const defaultButton: RenderProp<DropdownButtonButtonProps<any, any>> =\n componentRenderProp(BaseButton);\n\nexport const DropdownButton = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n data,\n value,\n columns = [],\n children = defaultButton,\n entryRenderKey = \"key\",\n allowNone = false,\n onChange,\n disabled,\n hideColumnHeader = true,\n ...props\n}: DropdownButtonProps<K, E>): ReactElement => {\n const { close, visible, toggle } = Dropdown.use();\n const [selected, setSelected] = useState<E | null>(\n data?.find((e) => e.key === value) ?? null,\n );\n\n useEffect(() => {\n setSelected(data?.find((e) => e.key === value) ?? null);\n }, [data, value]);\n\n const handleChange: UseSelectProps<K, E>[\"onChange\"] = useCallback(\n (next: K, e: UseSelectOnChangeExtra<K, E>): void => {\n close();\n if (next == null) {\n setSelected(null);\n return onChange(value);\n }\n setSelected(e.entries[0]);\n onChange(next);\n },\n [onChange, value, close, setSelected],\n );\n\n return (\n <Core<K, E>\n {...props}\n close={close}\n data={data}\n visible={visible}\n value={[value]}\n onChange={handleChange}\n allowMultiple={false}\n allowNone={allowNone}\n columns={columns}\n hideColumnHeader={hideColumnHeader}\n >\n {children({\n selected,\n renderKey: entryRenderKey,\n toggle,\n visible,\n disabled,\n })}\n </Core>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { Button as CoreButton } from \"@/button\";\nimport { Button, type ButtonOptionProps, type ButtonProps } from \"@/select/Button\";\nimport { type text } from \"@/text/core\";\n\ninterface Entry {\n key: text.Level;\n label: string;\n}\n\nexport interface SelectLevelProps\n extends Omit<ButtonProps<text.Level, Entry>, \"data\" | \"entryRenderKey\"> {}\n\nconst DATA: Entry[] = [\n {\n key: \"h2\",\n label: \"XL\",\n },\n {\n key: \"h3\",\n label: \"L\",\n },\n {\n key: \"h4\",\n label: \"M\",\n },\n {\n key: \"p\",\n label: \"S\",\n },\n {\n key: \"small\",\n label: \"XS\",\n },\n];\n\nconst defaultSelectDirectionButton = ({\n key,\n entry,\n onClick,\n selected,\n}: ButtonOptionProps<text.Level, Entry>): ReactElement => {\n return (\n <CoreButton.Button\n key={key}\n variant={selected ? \"filled\" : \"outlined\"}\n onClick={onClick}\n >\n {entry.label}\n </CoreButton.Button>\n );\n};\n\nexport const SelectLevel = ({\n children = defaultSelectDirectionButton,\n ...props\n}: SelectLevelProps): ReactElement => {\n return (\n <Button {...props} data={DATA}>\n {children}\n </Button>\n );\n};\n"],"names":["CoreList.List","jsx","CoreList.Selector","jsxs","Dropdown.Dialog","CoreList.Hover","CoreList.Column","CoreList.Core","Align.Pack","CoreButton.Button","Icon","Dropdown.use"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
3
3
  const React = require("react");
4
- const Toggle = require("./Toggle-J-_q32C5.cjs");
4
+ const Toggle = require("./Toggle-D1EoehhH.cjs");
5
5
  const Center = require("./Center-5NJ61qfA.cjs");
6
6
  const css = require("./css-Pf9qxhQ4.cjs");
7
- const aggregator = require("./aggregator-B630XvUR.cjs");
7
+ const aggregator = require("./aggregator-Ca8xiVD2.cjs");
8
8
  const resetSelection = (selected = "", tabs = []) => {
9
9
  var _a;
10
10
  if (tabs.length === 0)
@@ -283,4 +283,4 @@ exports.external = external;
283
283
  exports.rename = rename;
284
284
  exports.resetSelection = resetSelection;
285
285
  exports.useStatic = useStatic;
286
- //# sourceMappingURL=external-Dvfxbror.cjs.map
286
+ //# sourceMappingURL=external-B8ILMNP2.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-Dvfxbror.cjs","sources":["../src/tabs/Tabs.tsx","../src/tabs/Selector.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport React, {\n createContext,\n type ReactElement,\n type ReactNode,\n useContext,\n useCallback,\n} from \"react\";\n\nimport { direction } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { CSS } from \"@/css\";\nimport { useSyncedRef } from \"@/hooks\";\nimport { state } from \"@/state\";\nimport { type TabSpec, Selector } from \"@/tabs/Selector\";\nimport { type ComponentSize } from \"@/util/component\";\nimport { type RenderProp } from \"@/util/renderProp\";\n\nimport \"@/tabs/Tabs.css\";\n\nexport interface Tab extends TabSpec {\n content?: ReactNode;\n}\n\nexport type TabRenderProp = RenderProp<Tab>;\n\nexport interface UseStaticTabsProps {\n tabs: Tab[];\n content?: TabRenderProp;\n onSelect?: (key: string) => void;\n selected?: string;\n}\n\nexport const resetSelection = (selected = \"\", tabs: Tab[] = []): string | undefined => {\n if (tabs.length === 0) return undefined;\n return tabs.find((t) => t.tabKey === selected) != null\n ? selected\n : tabs[tabs.length - 1]?.tabKey;\n};\n\nexport const rename = (key: string, title: string, tabs: Tab[]): Tab[] => {\n title = title.trim();\n if (title.length === 0) return tabs;\n const t = tabs.find((t) => t.tabKey === key);\n if (t == null || t.name === title) return tabs;\n return tabs.map((t) => (t.tabKey === key ? { ...t, name: title } : t));\n};\n\nexport const useStatic = ({\n tabs,\n content,\n selected,\n onSelect,\n}: UseStaticTabsProps): TabsContextValue => {\n const [value, onChange] = state.usePurePassthrough({\n initial: selected ?? tabs[0]?.tabKey ?? \"\",\n value: selected,\n onChange: onSelect,\n });\n const valueRef = useSyncedRef(selected ?? value);\n\n const handleSelect = useCallback(\n (key: string): void => {\n onChange(key);\n if (valueRef.current == null) onSelect?.(key);\n },\n [value, onSelect],\n );\n\n return {\n tabs,\n selected: value,\n content,\n onSelect: handleSelect,\n };\n};\n\nexport interface TabsContextValue {\n tabs: Tab[];\n emptyContent?: ReactElement | null;\n closable?: boolean;\n selected?: string;\n onSelect?: (key: string) => void;\n content?: TabRenderProp | ReactNode;\n onClose?: (key: string) => void;\n onDragStart?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onDragEnd?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onDrop?: (e: React.DragEvent<HTMLDivElement>) => void;\n onRename?: (key: string, title: string) => void;\n onCreate?: () => void;\n}\n\nexport interface TabsProps\n extends Omit<\n Align.SpaceProps,\n \"children\" | \"onSelect\" | \"size\" | \"onDragStart\" | \"onDragEnd\" | \"content\"\n >,\n TabsContextValue {\n children?: TabRenderProp | ReactNode;\n size?: ComponentSize;\n}\n\nexport const TabsContext = createContext<TabsContextValue>({ tabs: [] });\n\nexport const useTabsContext = (): TabsContextValue => useContext(TabsContext);\n\nexport const Tabs = ({\n id,\n content,\n children,\n onSelect,\n selected,\n closable,\n tabs,\n onClose,\n onDragStart,\n onDragEnd,\n onCreate,\n onRename,\n emptyContent,\n className,\n onDragOver,\n onDrop,\n size = \"medium\",\n direction: dir = \"y\",\n ...props\n}: TabsProps): ReactElement => (\n <Align.Space\n id={id}\n empty\n className={CSS(CSS.B(\"tabs\"), className)}\n onDragOver={onDragOver}\n onDrop={onDrop}\n direction={dir}\n {...props}\n >\n <TabsContext.Provider\n value={{\n tabs,\n emptyContent,\n selected,\n closable,\n content: children ?? content,\n onSelect,\n onClose,\n onDragStart,\n onDragEnd,\n onRename,\n onCreate,\n onDrop,\n }}\n >\n <Selector size={size} direction={direction.swap(dir)} />\n <Content />\n </TabsContext.Provider>\n </Align.Space>\n);\n\nexport const Provider = TabsContext.Provider;\n\nexport const Content = (): ReactNode | null => {\n const {\n tabs,\n selected,\n content: renderProp,\n emptyContent,\n onSelect,\n } = useTabsContext();\n let content: ReactNode = null;\n const selectedTab = tabs.find((tab) => tab.tabKey === selected);\n if (selected == null || selectedTab == null) return emptyContent ?? null;\n if (renderProp != null) {\n if (typeof renderProp === \"function\") content = renderProp(selectedTab);\n else content = renderProp;\n } else if (selectedTab.content != null) content = selectedTab.content;\n return (\n <div className={CSS.B(\"tabs-content\")} onClick={() => onSelect?.(selected)}>\n {content}\n </div>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n type DragEventHandler,\n type MouseEventHandler,\n type ReactElement,\n useCallback,\n} from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\n\nimport { Align } from \"@/align\";\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { useTabsContext } from \"@/tabs/Tabs\";\nimport { Text } from \"@/text\";\nimport { type ComponentSize } from \"@/util/component\";\n\nexport interface TabSpec {\n tabKey: string;\n name: string;\n closable?: boolean;\n icon?: ReactElement;\n editable?: boolean;\n}\n\nexport interface SelectorProps extends Omit<Align.SpaceProps, \"children\"> {\n size?: ComponentSize;\n}\n\nconst CLS = \"tabs-selector\";\n\nexport const Selector = ({\n className,\n size = \"medium\",\n direction = \"x\",\n ...props\n}: SelectorProps): ReactElement | null => {\n const {\n tabs,\n selected,\n onSelect,\n onClose,\n closable,\n onDragEnd,\n onDragStart,\n onDrop,\n onRename,\n onCreate,\n } = useTabsContext();\n return (\n <Align.Space\n className={CSS(CSS.B(CLS), CSS.size(size), className)}\n align=\"center\"\n justify=\"spaceBetween\"\n onDrop={onDrop}\n empty\n direction={direction}\n {...props}\n >\n <Align.Space direction={direction} className={CSS.BE(CLS, \"tabs\")} empty>\n {tabs.map((tab) => (\n <SelectorButton\n key={tab.tabKey}\n selected={selected}\n onSelect={onSelect}\n onClose={onClose}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onRename={onRename}\n closable={tab.closable ?? closable}\n size={size}\n {...tab}\n />\n ))}\n </Align.Space>\n\n {onCreate != null && (\n <Align.Space className={CSS.BE(CLS, \"actions\")}>\n <Button.Icon size={size} sharp onClick={onCreate}>\n <Icon.Add />\n </Button.Icon>\n </Align.Space>\n )}\n </Align.Space>\n );\n};\n\nconst SelectorButton = ({\n selected,\n onSelect,\n onClose,\n tabKey,\n name,\n onDragStart,\n onDragEnd,\n onRename,\n closable = true,\n icon,\n size,\n editable = true,\n}: SelectorButtonProps): ReactElement => {\n const handleDragStart: DragEventHandler<HTMLDivElement> = useCallback(\n (e) => onDragStart?.(e, { tabKey, name }),\n [onDragStart, tabKey, name],\n );\n\n const handleDragEnd: DragEventHandler<HTMLDivElement> = useCallback(\n (e) => onDragEnd?.(e, { tabKey, name }),\n [onDragEnd, tabKey, name],\n );\n\n const handleClose: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n e.stopPropagation();\n onClose?.(tabKey);\n },\n [onClose, tabKey],\n );\n\n const _onSelect = useCallback(() => onSelect?.(tabKey), [onSelect, tabKey]);\n\n return (\n <Align.Pack\n size={size}\n className={CSS(\n CSS.BE(CLS, \"btn\"),\n onRename == null && CSS.BEM(CLS, \"btn\", \"uneditable\"),\n CSS.selected(selected === tabKey),\n closable && onClose != null && CSS.BEM(CLS, \"btn\", \"closable\"),\n )}\n draggable\n direction=\"x\"\n justify=\"center\"\n align=\"center\"\n onClick={_onSelect}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n bordered={false}\n rounded={false}\n >\n <Name\n name={name}\n tabKey={tabKey}\n onRename={onRename}\n icon={icon}\n editable={editable}\n level={Text.ComponentSizeLevels[size]}\n />\n {closable && onClose != null && (\n <Button.Icon onClick={handleClose}>\n <Icon.Close aria-label=\"pluto-tabs__close\" />\n </Button.Icon>\n )}\n </Align.Pack>\n );\n};\n\nexport interface SelectorButtonProps extends TabSpec {\n selected?: string;\n onDragStart?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onDragEnd?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onSelect?: (key: string) => void;\n onClose?: (key: string) => void;\n onRename?: (key: string, name: string) => void;\n size: ComponentSize;\n}\n\ninterface NameProps extends Text.CoreProps<Text.Level> {\n onRename?: (key: string, name: string) => void;\n name: string;\n tabKey: string;\n icon?: ReactElement;\n editable?: boolean;\n}\n\nconst Name = ({\n onRename,\n name,\n tabKey,\n icon,\n editable = true,\n ...props\n}: NameProps): ReactElement => {\n if (onRename == null || !editable) {\n if (icon != null)\n return (\n <Text.WithIcon startIcon={icon} noWrap {...props}>\n {name}\n </Text.WithIcon>\n );\n return (\n <Text.Text noWrap {...props}>\n {name}\n </Text.Text>\n );\n }\n return (\n <Text.Editable<Text.Level>\n onChange={(newText: string) => onRename(tabKey, newText)}\n value={name}\n noWrap\n {...props}\n />\n );\n};\n"],"names":["t","state.usePurePassthrough","useSyncedRef","useCallback","createContext","useContext","jsx","Align.Space","CSS","jsxs","direction","Button.Icon","Icon","Align.Pack","Text.ComponentSizeLevels","Text.WithIcon","Text.Text","Text.Editable"],"mappings":";;;;;;;AA0CO,MAAM,iBAAiB,CAAC,WAAW,IAAI,OAAc,CAAA,MAA2B;;AACrF,MAAI,KAAK,WAAW;AAAU,WAAA;AAC9B,SAAO,KAAK,KAAK,CAAC,MAAM,EAAE,WAAW,QAAQ,KAAK,OAC9C,YACA,UAAK,KAAK,SAAS,CAAC,MAApB,mBAAuB;AAC7B;AAEO,MAAM,SAAS,CAAC,KAAa,OAAe,SAAuB;AACxE,UAAQ,MAAM;AACd,MAAI,MAAM,WAAW;AAAU,WAAA;AAC/B,QAAM,IAAI,KAAK,KAAK,CAACA,OAAMA,GAAE,WAAW,GAAG;AACvC,MAAA,KAAK,QAAQ,EAAE,SAAS;AAAc,WAAA;AAC1C,SAAO,KAAK,IAAI,CAACA,OAAOA,GAAE,WAAW,MAAM,EAAE,GAAGA,IAAG,MAAM,UAAUA,EAAE;AACvE;AAEO,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4C;;AAC1C,QAAM,CAAC,OAAO,QAAQ,IAAIC,8BAAyB;AAAA,IACjD,SAAS,cAAY,UAAK,CAAC,MAAN,mBAAS,WAAU;AAAA,IACxC,OAAO;AAAA,IACP,UAAU;AAAA,EAAA,CACX;AACK,QAAA,WAAWC,OAAAA,aAAa,YAAY,KAAK;AAE/C,QAAM,eAAeC,MAAA;AAAA,IACnB,CAAC,QAAsB;AACrB,eAAS,GAAG;AACZ,UAAI,SAAS,WAAW;AAAM,6CAAW;AAAA,IAC3C;AAAA,IACA,CAAC,OAAO,QAAQ;AAAA,EAAA;AAGX,SAAA;AAAA,IACL;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,UAAU;AAAA,EAAA;AAEd;AA2BO,MAAM,cAAcC,MAAAA,cAAgC,EAAE,MAAM,CAAA,EAAI,CAAA;AAE1D,MAAA,iBAAiB,MAAwBC,iBAAW,WAAW;AAErE,MAAM,OAAO,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,WAAW,MAAM;AAAA,EACjB,GAAG;AACL,MACEC,2BAAA,kBAAA;AAAA,EAACC,OAAM;AAAA,EAAN;AAAA,IACC;AAAA,IACA,OAAK;AAAA,IACL,WAAWC,IAAI,IAAAA,IAAA,IAAI,EAAE,MAAM,GAAG,SAAS;AAAA,IACvC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACV,GAAG;AAAA,IAEJ,UAAAC,2BAAA,kBAAA;AAAA,MAAC,YAAY;AAAA,MAAZ;AAAA,QACC,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,YAAY;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA,UAAA;AAAA,UAAAH,iDAAC,YAAS,MAAY,WAAWI,IAAAA,EAAU,KAAK,GAAG,GAAG;AAAA,2DACrD,SAAQ,EAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACX;AAAA,EAAA;AACF;AAGK,MAAM,WAAW,YAAY;AAE7B,MAAM,UAAU,MAAwB;AACvC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,MACE,eAAe;AACnB,MAAI,UAAqB;AACzB,QAAM,cAAc,KAAK,KAAK,CAAC,QAAQ,IAAI,WAAW,QAAQ;AAC1D,MAAA,YAAY,QAAQ,eAAe;AAAM,WAAO,gBAAgB;AACpE,MAAI,cAAc,MAAM;AACtB,QAAI,OAAO,eAAe;AAAY,gBAAU,WAAW,WAAW;AAAA;AACvD,gBAAA;AAAA,EAAA,WACN,YAAY,WAAW;AAAM,cAAU,YAAY;AAC9D,SACGJ,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,WAAWE,IAAA,IAAI,EAAE,cAAc,GAAG,SAAS,MAAM,qCAAW,WAC9D,UACH,QAAA,CAAA;AAEJ;ACxJA,MAAM,MAAM;AAEL,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,GAAG;AACL,MAA0C;AAClC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,eAAe;AAEjB,SAAAC,2BAAA,kBAAA;AAAA,IAACF,OAAM;AAAA,IAAN;AAAA,MACC,WAAWC,IAAAA,IAAIA,IAAA,IAAI,EAAE,GAAG,GAAGA,IAAAA,IAAI,KAAK,IAAI,GAAG,SAAS;AAAA,MACpD,OAAM;AAAA,MACN,SAAQ;AAAA,MACR;AAAA,MACA,OAAK;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAF,2BAAA,kBAAA,IAACC,OAAM,OAAN,EAAY,WAAsB,WAAWC,IAAAA,IAAI,GAAG,KAAK,MAAM,GAAG,OAAK,MACrE,UAAK,KAAA,IAAI,CAAC,QACTF,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,IAAI,YAAY;AAAA,YAC1B;AAAA,YACC,GAAG;AAAA,UAAA;AAAA,UATC,IAAI;AAAA,QAWZ,CAAA,GACH;AAAA,QAEC,YAAY,QACXA,iDAACC,OAAAA,OAAA,EAAY,WAAWC,QAAI,GAAG,KAAK,SAAS,GAC3C,UAAAF,2BAAAA,kBAAAA,IAACK,OAAAA,MAAA,EAAY,MAAY,OAAK,MAAC,SAAS,UACtC,UAAAL,2BAAA,kBAAA,IAACM,OAAK,GAAA,KAAL,EAAS,EAAA,CACZ,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,MAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,WAAW;AACb,MAAyC;AACvC,QAAM,kBAAoDT,MAAA;AAAA,IACxD,CAAC,MAAM,2CAAc,GAAG,EAAE,QAAQ;IAClC,CAAC,aAAa,QAAQ,IAAI;AAAA,EAAA;AAG5B,QAAM,gBAAkDA,MAAA;AAAA,IACtD,CAAC,MAAM,uCAAY,GAAG,EAAE,QAAQ;IAChC,CAAC,WAAW,QAAQ,IAAI;AAAA,EAAA;AAG1B,QAAM,cAAoDA,MAAA;AAAA,IACxD,CAAC,MAAM;AACL,QAAE,gBAAgB;AAClB,yCAAU;AAAA,IACZ;AAAA,IACA,CAAC,SAAS,MAAM;AAAA,EAAA;AAGZ,QAAA,YAAYA,kBAAY,MAAM,qCAAW,SAAS,CAAC,UAAU,MAAM,CAAC;AAGxE,SAAAM,2BAAA,kBAAA;AAAA,IAACI,OAAM;AAAA,IAAN;AAAA,MACC;AAAA,MACA,WAAWL,IAAA;AAAA,QACTA,QAAI,GAAG,KAAK,KAAK;AAAA,QACjB,YAAY,QAAQA,IAAA,IAAI,IAAI,KAAK,OAAO,YAAY;AAAA,QACpDA,QAAI,SAAS,aAAa,MAAM;AAAA,QAChC,YAAY,WAAW,QAAQA,IAAAA,IAAI,IAAI,KAAK,OAAO,UAAU;AAAA,MAC/D;AAAA,MACA,WAAS;AAAA,MACT,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,MACb,WAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,MAET,UAAA;AAAA,QAAAF,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAOQ,WAAK,oBAAoB,IAAI;AAAA,UAAA;AAAA,QACtC;AAAA,QACC,YAAY,WAAW,QACtBR,2BAAA,kBAAA,IAACK,OAAA,MAAA,EAAY,SAAS,aACpB,2DAACC,OAAK,GAAA,OAAL,EAAW,cAAW,oBAAoB,CAAA,GAC7C;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAoBA,MAAM,OAAO,CAAC;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAA+B;AACzB,MAAA,YAAY,QAAQ,CAAC,UAAU;AACjC,QAAI,QAAQ;AAER,aAAAN,iDAACS,OAAAA,UAAA,EAAc,WAAW,MAAM,QAAM,MAAE,GAAG,OACxC,UACH,KAAA,CAAA;AAGF,WAAAT,2BAAA,kBAAA,IAACU,aAAA,EAAU,QAAM,MAAE,GAAG,OACnB,UACH,KAAA,CAAA;AAAA,EAEJ;AAEE,SAAAV,2BAAA,kBAAA;AAAA,IAACW,OAAK;AAAA,IAAL;AAAA,MACC,UAAU,CAAC,YAAoB,SAAS,QAAQ,OAAO;AAAA,MACvD,OAAO;AAAA,MACP,QAAM;AAAA,MACL,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"external-B8ILMNP2.cjs","sources":["../src/tabs/Tabs.tsx","../src/tabs/Selector.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport React, {\n createContext,\n type ReactElement,\n type ReactNode,\n useContext,\n useCallback,\n} from \"react\";\n\nimport { direction } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { CSS } from \"@/css\";\nimport { useSyncedRef } from \"@/hooks\";\nimport { state } from \"@/state\";\nimport { type TabSpec, Selector } from \"@/tabs/Selector\";\nimport { type ComponentSize } from \"@/util/component\";\nimport { type RenderProp } from \"@/util/renderProp\";\n\nimport \"@/tabs/Tabs.css\";\n\nexport interface Tab extends TabSpec {\n content?: ReactNode;\n}\n\nexport type TabRenderProp = RenderProp<Tab>;\n\nexport interface UseStaticTabsProps {\n tabs: Tab[];\n content?: TabRenderProp;\n onSelect?: (key: string) => void;\n selected?: string;\n}\n\nexport const resetSelection = (selected = \"\", tabs: Tab[] = []): string | undefined => {\n if (tabs.length === 0) return undefined;\n return tabs.find((t) => t.tabKey === selected) != null\n ? selected\n : tabs[tabs.length - 1]?.tabKey;\n};\n\nexport const rename = (key: string, title: string, tabs: Tab[]): Tab[] => {\n title = title.trim();\n if (title.length === 0) return tabs;\n const t = tabs.find((t) => t.tabKey === key);\n if (t == null || t.name === title) return tabs;\n return tabs.map((t) => (t.tabKey === key ? { ...t, name: title } : t));\n};\n\nexport const useStatic = ({\n tabs,\n content,\n selected,\n onSelect,\n}: UseStaticTabsProps): TabsContextValue => {\n const [value, onChange] = state.usePurePassthrough({\n initial: selected ?? tabs[0]?.tabKey ?? \"\",\n value: selected,\n onChange: onSelect,\n });\n const valueRef = useSyncedRef(selected ?? value);\n\n const handleSelect = useCallback(\n (key: string): void => {\n onChange(key);\n if (valueRef.current == null) onSelect?.(key);\n },\n [value, onSelect],\n );\n\n return {\n tabs,\n selected: value,\n content,\n onSelect: handleSelect,\n };\n};\n\nexport interface TabsContextValue {\n tabs: Tab[];\n emptyContent?: ReactElement | null;\n closable?: boolean;\n selected?: string;\n onSelect?: (key: string) => void;\n content?: TabRenderProp | ReactNode;\n onClose?: (key: string) => void;\n onDragStart?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onDragEnd?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onDrop?: (e: React.DragEvent<HTMLDivElement>) => void;\n onRename?: (key: string, title: string) => void;\n onCreate?: () => void;\n}\n\nexport interface TabsProps\n extends Omit<\n Align.SpaceProps,\n \"children\" | \"onSelect\" | \"size\" | \"onDragStart\" | \"onDragEnd\" | \"content\"\n >,\n TabsContextValue {\n children?: TabRenderProp | ReactNode;\n size?: ComponentSize;\n}\n\nexport const TabsContext = createContext<TabsContextValue>({ tabs: [] });\n\nexport const useTabsContext = (): TabsContextValue => useContext(TabsContext);\n\nexport const Tabs = ({\n id,\n content,\n children,\n onSelect,\n selected,\n closable,\n tabs,\n onClose,\n onDragStart,\n onDragEnd,\n onCreate,\n onRename,\n emptyContent,\n className,\n onDragOver,\n onDrop,\n size = \"medium\",\n direction: dir = \"y\",\n ...props\n}: TabsProps): ReactElement => (\n <Align.Space\n id={id}\n empty\n className={CSS(CSS.B(\"tabs\"), className)}\n onDragOver={onDragOver}\n onDrop={onDrop}\n direction={dir}\n {...props}\n >\n <TabsContext.Provider\n value={{\n tabs,\n emptyContent,\n selected,\n closable,\n content: children ?? content,\n onSelect,\n onClose,\n onDragStart,\n onDragEnd,\n onRename,\n onCreate,\n onDrop,\n }}\n >\n <Selector size={size} direction={direction.swap(dir)} />\n <Content />\n </TabsContext.Provider>\n </Align.Space>\n);\n\nexport const Provider = TabsContext.Provider;\n\nexport const Content = (): ReactNode | null => {\n const {\n tabs,\n selected,\n content: renderProp,\n emptyContent,\n onSelect,\n } = useTabsContext();\n let content: ReactNode = null;\n const selectedTab = tabs.find((tab) => tab.tabKey === selected);\n if (selected == null || selectedTab == null) return emptyContent ?? null;\n if (renderProp != null) {\n if (typeof renderProp === \"function\") content = renderProp(selectedTab);\n else content = renderProp;\n } else if (selectedTab.content != null) content = selectedTab.content;\n return (\n <div className={CSS.B(\"tabs-content\")} onClick={() => onSelect?.(selected)}>\n {content}\n </div>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport {\n type DragEventHandler,\n type MouseEventHandler,\n type ReactElement,\n useCallback,\n} from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\n\nimport { Align } from \"@/align\";\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { useTabsContext } from \"@/tabs/Tabs\";\nimport { Text } from \"@/text\";\nimport { type ComponentSize } from \"@/util/component\";\n\nexport interface TabSpec {\n tabKey: string;\n name: string;\n closable?: boolean;\n icon?: ReactElement;\n editable?: boolean;\n}\n\nexport interface SelectorProps extends Omit<Align.SpaceProps, \"children\"> {\n size?: ComponentSize;\n}\n\nconst CLS = \"tabs-selector\";\n\nexport const Selector = ({\n className,\n size = \"medium\",\n direction = \"x\",\n ...props\n}: SelectorProps): ReactElement | null => {\n const {\n tabs,\n selected,\n onSelect,\n onClose,\n closable,\n onDragEnd,\n onDragStart,\n onDrop,\n onRename,\n onCreate,\n } = useTabsContext();\n return (\n <Align.Space\n className={CSS(CSS.B(CLS), CSS.size(size), className)}\n align=\"center\"\n justify=\"spaceBetween\"\n onDrop={onDrop}\n empty\n direction={direction}\n {...props}\n >\n <Align.Space direction={direction} className={CSS.BE(CLS, \"tabs\")} empty>\n {tabs.map((tab) => (\n <SelectorButton\n key={tab.tabKey}\n selected={selected}\n onSelect={onSelect}\n onClose={onClose}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onRename={onRename}\n closable={tab.closable ?? closable}\n size={size}\n {...tab}\n />\n ))}\n </Align.Space>\n\n {onCreate != null && (\n <Align.Space className={CSS.BE(CLS, \"actions\")}>\n <Button.Icon size={size} sharp onClick={onCreate}>\n <Icon.Add />\n </Button.Icon>\n </Align.Space>\n )}\n </Align.Space>\n );\n};\n\nconst SelectorButton = ({\n selected,\n onSelect,\n onClose,\n tabKey,\n name,\n onDragStart,\n onDragEnd,\n onRename,\n closable = true,\n icon,\n size,\n editable = true,\n}: SelectorButtonProps): ReactElement => {\n const handleDragStart: DragEventHandler<HTMLDivElement> = useCallback(\n (e) => onDragStart?.(e, { tabKey, name }),\n [onDragStart, tabKey, name],\n );\n\n const handleDragEnd: DragEventHandler<HTMLDivElement> = useCallback(\n (e) => onDragEnd?.(e, { tabKey, name }),\n [onDragEnd, tabKey, name],\n );\n\n const handleClose: MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n e.stopPropagation();\n onClose?.(tabKey);\n },\n [onClose, tabKey],\n );\n\n const _onSelect = useCallback(() => onSelect?.(tabKey), [onSelect, tabKey]);\n\n return (\n <Align.Pack\n size={size}\n className={CSS(\n CSS.BE(CLS, \"btn\"),\n onRename == null && CSS.BEM(CLS, \"btn\", \"uneditable\"),\n CSS.selected(selected === tabKey),\n closable && onClose != null && CSS.BEM(CLS, \"btn\", \"closable\"),\n )}\n draggable\n direction=\"x\"\n justify=\"center\"\n align=\"center\"\n onClick={_onSelect}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n bordered={false}\n rounded={false}\n >\n <Name\n name={name}\n tabKey={tabKey}\n onRename={onRename}\n icon={icon}\n editable={editable}\n level={Text.ComponentSizeLevels[size]}\n />\n {closable && onClose != null && (\n <Button.Icon onClick={handleClose}>\n <Icon.Close aria-label=\"pluto-tabs__close\" />\n </Button.Icon>\n )}\n </Align.Pack>\n );\n};\n\nexport interface SelectorButtonProps extends TabSpec {\n selected?: string;\n onDragStart?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onDragEnd?: (e: React.DragEvent<HTMLDivElement>, tab: TabSpec) => void;\n onSelect?: (key: string) => void;\n onClose?: (key: string) => void;\n onRename?: (key: string, name: string) => void;\n size: ComponentSize;\n}\n\ninterface NameProps extends Text.CoreProps<Text.Level> {\n onRename?: (key: string, name: string) => void;\n name: string;\n tabKey: string;\n icon?: ReactElement;\n editable?: boolean;\n}\n\nconst Name = ({\n onRename,\n name,\n tabKey,\n icon,\n editable = true,\n ...props\n}: NameProps): ReactElement => {\n if (onRename == null || !editable) {\n if (icon != null)\n return (\n <Text.WithIcon startIcon={icon} noWrap {...props}>\n {name}\n </Text.WithIcon>\n );\n return (\n <Text.Text noWrap {...props}>\n {name}\n </Text.Text>\n );\n }\n return (\n <Text.Editable<Text.Level>\n onChange={(newText: string) => onRename(tabKey, newText)}\n value={name}\n noWrap\n {...props}\n />\n );\n};\n"],"names":["t","state.usePurePassthrough","useSyncedRef","useCallback","createContext","useContext","jsx","Align.Space","CSS","jsxs","direction","Button.Icon","Icon","Align.Pack","Text.ComponentSizeLevels","Text.WithIcon","Text.Text","Text.Editable"],"mappings":";;;;;;;AA0CO,MAAM,iBAAiB,CAAC,WAAW,IAAI,OAAc,CAAA,MAA2B;;AACrF,MAAI,KAAK,WAAW;AAAU,WAAA;AAC9B,SAAO,KAAK,KAAK,CAAC,MAAM,EAAE,WAAW,QAAQ,KAAK,OAC9C,YACA,UAAK,KAAK,SAAS,CAAC,MAApB,mBAAuB;AAC7B;AAEO,MAAM,SAAS,CAAC,KAAa,OAAe,SAAuB;AACxE,UAAQ,MAAM;AACd,MAAI,MAAM,WAAW;AAAU,WAAA;AAC/B,QAAM,IAAI,KAAK,KAAK,CAACA,OAAMA,GAAE,WAAW,GAAG;AACvC,MAAA,KAAK,QAAQ,EAAE,SAAS;AAAc,WAAA;AAC1C,SAAO,KAAK,IAAI,CAACA,OAAOA,GAAE,WAAW,MAAM,EAAE,GAAGA,IAAG,MAAM,UAAUA,EAAE;AACvE;AAEO,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4C;;AAC1C,QAAM,CAAC,OAAO,QAAQ,IAAIC,8BAAyB;AAAA,IACjD,SAAS,cAAY,UAAK,CAAC,MAAN,mBAAS,WAAU;AAAA,IACxC,OAAO;AAAA,IACP,UAAU;AAAA,EAAA,CACX;AACK,QAAA,WAAWC,OAAAA,aAAa,YAAY,KAAK;AAE/C,QAAM,eAAeC,MAAA;AAAA,IACnB,CAAC,QAAsB;AACrB,eAAS,GAAG;AACZ,UAAI,SAAS,WAAW;AAAM,6CAAW;AAAA,IAC3C;AAAA,IACA,CAAC,OAAO,QAAQ;AAAA,EAAA;AAGX,SAAA;AAAA,IACL;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,UAAU;AAAA,EAAA;AAEd;AA2BO,MAAM,cAAcC,MAAAA,cAAgC,EAAE,MAAM,CAAA,EAAI,CAAA;AAE1D,MAAA,iBAAiB,MAAwBC,iBAAW,WAAW;AAErE,MAAM,OAAO,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,WAAW,MAAM;AAAA,EACjB,GAAG;AACL,MACEC,2BAAA,kBAAA;AAAA,EAACC,OAAM;AAAA,EAAN;AAAA,IACC;AAAA,IACA,OAAK;AAAA,IACL,WAAWC,IAAI,IAAAA,IAAA,IAAI,EAAE,MAAM,GAAG,SAAS;AAAA,IACvC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACV,GAAG;AAAA,IAEJ,UAAAC,2BAAA,kBAAA;AAAA,MAAC,YAAY;AAAA,MAAZ;AAAA,QACC,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,YAAY;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA,UAAA;AAAA,UAAAH,iDAAC,YAAS,MAAY,WAAWI,IAAAA,EAAU,KAAK,GAAG,GAAG;AAAA,2DACrD,SAAQ,EAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACX;AAAA,EAAA;AACF;AAGK,MAAM,WAAW,YAAY;AAE7B,MAAM,UAAU,MAAwB;AACvC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,MACE,eAAe;AACnB,MAAI,UAAqB;AACzB,QAAM,cAAc,KAAK,KAAK,CAAC,QAAQ,IAAI,WAAW,QAAQ;AAC1D,MAAA,YAAY,QAAQ,eAAe;AAAM,WAAO,gBAAgB;AACpE,MAAI,cAAc,MAAM;AACtB,QAAI,OAAO,eAAe;AAAY,gBAAU,WAAW,WAAW;AAAA;AACvD,gBAAA;AAAA,EAAA,WACN,YAAY,WAAW;AAAM,cAAU,YAAY;AAC9D,SACGJ,2BAAAA,kBAAAA,IAAA,OAAA,EAAI,WAAWE,IAAA,IAAI,EAAE,cAAc,GAAG,SAAS,MAAM,qCAAW,WAC9D,UACH,QAAA,CAAA;AAEJ;ACxJA,MAAM,MAAM;AAEL,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,GAAG;AACL,MAA0C;AAClC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,eAAe;AAEjB,SAAAC,2BAAA,kBAAA;AAAA,IAACF,OAAM;AAAA,IAAN;AAAA,MACC,WAAWC,IAAAA,IAAIA,IAAA,IAAI,EAAE,GAAG,GAAGA,IAAAA,IAAI,KAAK,IAAI,GAAG,SAAS;AAAA,MACpD,OAAM;AAAA,MACN,SAAQ;AAAA,MACR;AAAA,MACA,OAAK;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAF,2BAAA,kBAAA,IAACC,OAAM,OAAN,EAAY,WAAsB,WAAWC,IAAAA,IAAI,GAAG,KAAK,MAAM,GAAG,OAAK,MACrE,UAAK,KAAA,IAAI,CAAC,QACTF,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU,IAAI,YAAY;AAAA,YAC1B;AAAA,YACC,GAAG;AAAA,UAAA;AAAA,UATC,IAAI;AAAA,QAWZ,CAAA,GACH;AAAA,QAEC,YAAY,QACXA,iDAACC,OAAAA,OAAA,EAAY,WAAWC,QAAI,GAAG,KAAK,SAAS,GAC3C,UAAAF,2BAAAA,kBAAAA,IAACK,OAAAA,MAAA,EAAY,MAAY,OAAK,MAAC,SAAS,UACtC,UAAAL,2BAAA,kBAAA,IAACM,OAAK,GAAA,KAAL,EAAS,EAAA,CACZ,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,MAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,WAAW;AACb,MAAyC;AACvC,QAAM,kBAAoDT,MAAA;AAAA,IACxD,CAAC,MAAM,2CAAc,GAAG,EAAE,QAAQ;IAClC,CAAC,aAAa,QAAQ,IAAI;AAAA,EAAA;AAG5B,QAAM,gBAAkDA,MAAA;AAAA,IACtD,CAAC,MAAM,uCAAY,GAAG,EAAE,QAAQ;IAChC,CAAC,WAAW,QAAQ,IAAI;AAAA,EAAA;AAG1B,QAAM,cAAoDA,MAAA;AAAA,IACxD,CAAC,MAAM;AACL,QAAE,gBAAgB;AAClB,yCAAU;AAAA,IACZ;AAAA,IACA,CAAC,SAAS,MAAM;AAAA,EAAA;AAGZ,QAAA,YAAYA,kBAAY,MAAM,qCAAW,SAAS,CAAC,UAAU,MAAM,CAAC;AAGxE,SAAAM,2BAAA,kBAAA;AAAA,IAACI,OAAM;AAAA,IAAN;AAAA,MACC;AAAA,MACA,WAAWL,IAAA;AAAA,QACTA,QAAI,GAAG,KAAK,KAAK;AAAA,QACjB,YAAY,QAAQA,IAAA,IAAI,IAAI,KAAK,OAAO,YAAY;AAAA,QACpDA,QAAI,SAAS,aAAa,MAAM;AAAA,QAChC,YAAY,WAAW,QAAQA,IAAAA,IAAI,IAAI,KAAK,OAAO,UAAU;AAAA,MAC/D;AAAA,MACA,WAAS;AAAA,MACT,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,MACb,WAAW;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,MAET,UAAA;AAAA,QAAAF,2BAAA,kBAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAOQ,WAAK,oBAAoB,IAAI;AAAA,UAAA;AAAA,QACtC;AAAA,QACC,YAAY,WAAW,QACtBR,2BAAA,kBAAA,IAACK,OAAA,MAAA,EAAY,SAAS,aACpB,2DAACC,OAAK,GAAA,OAAL,EAAW,cAAW,oBAAoB,CAAA,GAC7C;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAoBA,MAAM,OAAO,CAAC;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAA+B;AACzB,MAAA,YAAY,QAAQ,CAAC,UAAU;AACjC,QAAI,QAAQ;AAER,aAAAN,iDAACS,OAAAA,UAAA,EAAc,WAAW,MAAM,QAAM,MAAE,GAAG,OACxC,UACH,KAAA,CAAA;AAGF,WAAAT,2BAAA,kBAAA,IAACU,aAAA,EAAU,QAAM,MAAE,GAAG,OACnB,UACH,KAAA,CAAA;AAAA,EAEJ;AAEE,SAAAV,2BAAA,kBAAA;AAAA,IAACW,OAAK;AAAA,IAAL;AAAA,MACC,UAAU,CAAC,YAAoB,SAAS,QAAQ,OAAO;AAAA,MACvD,OAAO;AAAA,MACP,QAAM;AAAA,MACL,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  const css = require("./css-Pf9qxhQ4.cjs");
3
3
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
4
- const Toggle = require("./Toggle-J-_q32C5.cjs");
4
+ const Toggle = require("./Toggle-D1EoehhH.cjs");
5
5
  const React = require("react");
6
- require("./aggregator-B630XvUR.cjs");
6
+ require("./aggregator-Ca8xiVD2.cjs");
7
7
  require("./Center-5NJ61qfA.cjs");
8
8
  const Picker = ({ value, onChange, ...props }) => {
9
9
  const handleChange = (res) => {
@@ -104,4 +104,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
104
104
  }, Symbol.toStringTag, { value: "Module" }));
105
105
  exports.Swatch = Swatch;
106
106
  exports.external = external;
107
- //# sourceMappingURL=external-gnae-K0R.cjs.map
107
+ //# sourceMappingURL=external-B8MvInOj.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-gnae-K0R.cjs","sources":["../src/color/Picker/Picker.tsx","../src/color/Swatch/Swatch.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ComponentPropsWithoutRef, type ReactElement } from \"react\";\n\nimport { SketchPicker, type ColorResult } from \"react-color\";\n\nimport { color } from \"@/color/core\";\nimport { CSS } from \"@/css\";\nimport { type Input } from \"@/input\";\n\nimport \"@/color/Picker/Picker.css\";\n\nexport interface PickerProps\n extends Input.Control<color.Crude, color.Color>,\n Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {}\n\nexport const Picker = ({ value, onChange, ...props }: PickerProps): ReactElement => {\n const handleChange = (res: ColorResult): void => {\n if (res.hex === \"transparent\") onChange(color.ZERO);\n onChange(new color.Color(res.hex, res.rgb.a));\n };\n\n return (\n <SketchPicker\n className={CSS.B(\"color-picker\")}\n color={new color.Color(value).hex}\n onChange={handleChange}\n presetColors={[]}\n {...props}\n />\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement, useCallback } from \"react\";\n\nimport { Button } from \"@/button\";\nimport { color } from \"@/color/core\";\nimport { type Crude, type Color } from \"@/color/core/color\";\nimport { Picker } from \"@/color/Picker\";\nimport { CSS } from \"@/css\";\nimport { Dropdown } from \"@/dropdown\";\nimport { type UseProps } from \"@/dropdown/Dropdown\";\nimport { Haul } from \"@/haul\";\nimport { type Input } from \"@/input\";\nimport { Text } from \"@/text\";\nimport { Theming } from \"@/theming\";\n\nimport \"@/color/Swatch/Swatch.css\";\n\nexport interface SwatchProps\n extends Input.Control<Crude, Color>,\n Omit<Button.ButtonProps, \"onChange\" | \"value\">,\n UseProps {}\n\nconst HAUL_TYPE = \"color\";\n\nexport const Swatch = ({\n value,\n onChange,\n className,\n size = \"medium\",\n onVisibleChange,\n initialVisible,\n draggable = true,\n ...props\n}: SwatchProps): ReactElement => {\n const { visible, open, close } = Dropdown.use({ onVisibleChange, initialVisible });\n\n const bg = Theming.use().colors.gray.l0;\n\n const d = new color.Color(value);\n\n const dragging = Haul.useDraggingState();\n\n const canDrop: Haul.CanDrop = useCallback(\n ({ items }) => {\n const [k] = Haul.filterByType(HAUL_TYPE, items);\n return k != null && k.key !== d.hex;\n },\n [d.hex],\n );\n\n const { startDrag, ...haulProps } = Haul.useDragAndDrop({\n type: \"Color.Swatch\",\n onDrop: ({ items }) => {\n const dropped = Haul.filterByType(HAUL_TYPE, items);\n if (items.length > 0) onChange?.(new color.Color(dropped[0].key as string));\n return dropped;\n },\n canDrop,\n });\n\n const swatch = (\n <Button.Button\n className={CSS(\n CSS.B(\"color-swatch\"),\n CSS.size(size),\n d.contrast(bg) > 1.5 && d.a > 0.5 && CSS.M(\"no-border\"),\n CSS.dropRegion(canDrop(dragging)),\n className,\n )}\n draggable={draggable}\n onDragStart={() => startDrag([{ type: HAUL_TYPE, key: d.hex }])}\n style={{ backgroundColor: color.cssString(value) }}\n variant=\"text\"\n onClick={open}\n size={size}\n tooltip={\n onChange != null ? (\n <Text.Text level=\"small\">Click to change color</Text.Text>\n ) : undefined\n }\n {...haulProps}\n {...props}\n />\n );\n\n if (onChange == null) return swatch;\n\n return (\n <Dropdown.Dialog\n close={close}\n visible={visible}\n className={CSS.BE(\"color-swatch\", \"dropdown\")}\n keepMounted={false}\n variant=\"floating\"\n >\n {swatch}\n <Picker value={value} onChange={onChange} />\n </Dropdown.Dialog>\n );\n};\n"],"names":["color.ZERO","color.Color","jsx","SketchPicker","CSS","Dropdown.use","Theming.use","Haul.useDraggingState","useCallback","Haul.filterByType","Haul.useDragAndDrop","Button.Button","color.cssString","Text.Text","jsxs","Dropdown.Dialog"],"mappings":"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"}
1
+ {"version":3,"file":"external-B8MvInOj.cjs","sources":["../src/color/Picker/Picker.tsx","../src/color/Swatch/Swatch.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ComponentPropsWithoutRef, type ReactElement } from \"react\";\n\nimport { SketchPicker, type ColorResult } from \"react-color\";\n\nimport { color } from \"@/color/core\";\nimport { CSS } from \"@/css\";\nimport { type Input } from \"@/input\";\n\nimport \"@/color/Picker/Picker.css\";\n\nexport interface PickerProps\n extends Input.Control<color.Crude, color.Color>,\n Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {}\n\nexport const Picker = ({ value, onChange, ...props }: PickerProps): ReactElement => {\n const handleChange = (res: ColorResult): void => {\n if (res.hex === \"transparent\") onChange(color.ZERO);\n onChange(new color.Color(res.hex, res.rgb.a));\n };\n\n return (\n <SketchPicker\n className={CSS.B(\"color-picker\")}\n color={new color.Color(value).hex}\n onChange={handleChange}\n presetColors={[]}\n {...props}\n />\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement, useCallback } from \"react\";\n\nimport { Button } from \"@/button\";\nimport { color } from \"@/color/core\";\nimport { type Crude, type Color } from \"@/color/core/color\";\nimport { Picker } from \"@/color/Picker\";\nimport { CSS } from \"@/css\";\nimport { Dropdown } from \"@/dropdown\";\nimport { type UseProps } from \"@/dropdown/Dropdown\";\nimport { Haul } from \"@/haul\";\nimport { type Input } from \"@/input\";\nimport { Text } from \"@/text\";\nimport { Theming } from \"@/theming\";\n\nimport \"@/color/Swatch/Swatch.css\";\n\nexport interface SwatchProps\n extends Input.Control<Crude, Color>,\n Omit<Button.ButtonProps, \"onChange\" | \"value\">,\n UseProps {}\n\nconst HAUL_TYPE = \"color\";\n\nexport const Swatch = ({\n value,\n onChange,\n className,\n size = \"medium\",\n onVisibleChange,\n initialVisible,\n draggable = true,\n ...props\n}: SwatchProps): ReactElement => {\n const { visible, open, close } = Dropdown.use({ onVisibleChange, initialVisible });\n\n const bg = Theming.use().colors.gray.l0;\n\n const d = new color.Color(value);\n\n const dragging = Haul.useDraggingState();\n\n const canDrop: Haul.CanDrop = useCallback(\n ({ items }) => {\n const [k] = Haul.filterByType(HAUL_TYPE, items);\n return k != null && k.key !== d.hex;\n },\n [d.hex],\n );\n\n const { startDrag, ...haulProps } = Haul.useDragAndDrop({\n type: \"Color.Swatch\",\n onDrop: ({ items }) => {\n const dropped = Haul.filterByType(HAUL_TYPE, items);\n if (items.length > 0) onChange?.(new color.Color(dropped[0].key as string));\n return dropped;\n },\n canDrop,\n });\n\n const swatch = (\n <Button.Button\n className={CSS(\n CSS.B(\"color-swatch\"),\n CSS.size(size),\n d.contrast(bg) > 1.5 && d.a > 0.5 && CSS.M(\"no-border\"),\n CSS.dropRegion(canDrop(dragging)),\n className,\n )}\n draggable={draggable}\n onDragStart={() => startDrag([{ type: HAUL_TYPE, key: d.hex }])}\n style={{ backgroundColor: color.cssString(value) }}\n variant=\"text\"\n onClick={open}\n size={size}\n tooltip={\n onChange != null ? (\n <Text.Text level=\"small\">Click to change color</Text.Text>\n ) : undefined\n }\n {...haulProps}\n {...props}\n />\n );\n\n if (onChange == null) return swatch;\n\n return (\n <Dropdown.Dialog\n close={close}\n visible={visible}\n className={CSS.BE(\"color-swatch\", \"dropdown\")}\n keepMounted={false}\n variant=\"floating\"\n >\n {swatch}\n <Picker value={value} onChange={onChange} />\n </Dropdown.Dialog>\n );\n};\n"],"names":["color.ZERO","color.Color","jsx","SketchPicker","CSS","Dropdown.use","Theming.use","Haul.useDraggingState","useCallback","Haul.filterByType","Haul.useDragAndDrop","Button.Button","color.cssString","Text.Text","jsxs","Dropdown.Dialog"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
- const Toggle = require("./Toggle-J-_q32C5.cjs");
2
+ const Toggle = require("./Toggle-D1EoehhH.cjs");
3
3
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
4
4
  const React = require("react");
5
- require("./aggregator-B630XvUR.cjs");
5
+ require("./aggregator-Ca8xiVD2.cjs");
6
6
  const css = require("./css-Pf9qxhQ4.cjs");
7
7
  const Center = require("./Center-5NJ61qfA.cjs");
8
- const Keyboard = require("./Keyboard-CDiwrDN_.cjs");
8
+ const Keyboard = require("./Keyboard-CQoUT-k_.cjs");
9
9
  const Status = (props) => {
10
10
  const { listen } = Toggle.useContext$1();
11
11
  const [trigger, setTrigger] = React.useState([]);
@@ -118,4 +118,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
118
118
  exports.Text = Text;
119
119
  exports.external = external;
120
120
  exports.useDrag = useDrag;
121
- //# sourceMappingURL=external-BapFfm1g.cjs.map
121
+ //# sourceMappingURL=external-BC7QdjAs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-BapFfm1g.cjs","sources":["../src/triggers/Status.tsx","../src/triggers/useDrag.ts","../src/triggers/Text.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement, useEffect, useState } from \"react\";\n\nimport { Text } from \"@/text\";\nimport { useContext } from \"@/triggers/Provider\";\nimport { type Trigger } from \"@/triggers/triggers\";\n\nexport interface StatusProps extends Text.TextProps {}\n\nexport const Status = (props: StatusProps): ReactElement => {\n const { listen } = useContext();\n const [trigger, setTrigger] = useState<Trigger>([]);\n\n useEffect(\n () => listen(({ next: [trigger] }) => setTrigger(trigger ?? [])),\n [listen, setTrigger],\n );\n\n return <Text.Text {...props}>{trigger.join(\" \")}</Text.Text>;\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type RefObject, useCallback, useRef } from \"react\";\n\nimport { box, xy } from \"@synnaxlabs/x\";\n\nimport { use, type UseEvent } from \"@/triggers/hooks\";\nimport { type Stage, type Trigger } from \"@/triggers/triggers\";\n\nexport interface DragEvent {\n stage: Stage;\n box: box.Box;\n cursor: xy.XY;\n triggers: Trigger[];\n}\n\nexport type DragCallback = (props: DragEvent) => void;\n\nexport interface UseDragProps {\n bound: RefObject<HTMLElement>;\n triggers?: Trigger[];\n onDrag: DragCallback;\n loose?: boolean;\n}\n\nexport const useDrag = ({\n onDrag,\n triggers = [[\"MouseLeft\"], [\"MouseRight\"]],\n bound,\n loose = false,\n}: UseDragProps): void => {\n const triggerRef = useRef<UseEvent | null>(null);\n const startLoc = useRef<xy.XY>(xy.ZERO);\n const onMove = useCallback(\n (e: xy.Client & { buttons: number }) => {\n const cursor = xy.construct(e);\n if (triggerRef.current === null) return;\n const { triggers } = triggerRef.current;\n onDrag({\n box: box.construct(startLoc.current, cursor),\n cursor,\n triggers,\n stage: \"during\",\n });\n },\n [onDrag],\n );\n const handleTrigger = useCallback(\n (event: UseEvent): void => {\n const { stage, cursor } = event;\n if (stage === \"start\") {\n onDrag({ box: box.construct(cursor), ...event });\n window.addEventListener(\"mousemove\", onMove);\n triggerRef.current = event;\n startLoc.current = cursor;\n } else if (stage === \"end\" && triggerRef.current != null) {\n onDrag({ box: box.construct(startLoc.current, cursor), ...event });\n window.removeEventListener(\"mousemove\", onMove);\n triggerRef.current = null;\n startLoc.current = xy.ZERO;\n }\n },\n [onDrag],\n );\n use({ triggers, callback: handleTrigger, region: bound, loose });\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\n\nimport { Align } from \"@/align\";\nimport { Text as Core } from \"@/text\";\nimport { type Key, type Trigger } from \"@/triggers/triggers\";\nimport { RenderProp } from \"@/util/renderProp\";\n\nexport type TextProps<L extends Core.Level> = Core.KeyboardProps<L> & {\n trigger: Trigger;\n};\n\nconst CUSTOM_TEXT: Partial<Record<Key, (() => ReactElement) | string>> = {\n Control: () => <Core.Symbols.Meta />,\n Alt: () => <Core.Symbols.Alt />,\n Shift: () => <Icon.Keyboard.Shift />,\n MouseLeft: \"Left Click\",\n MouseRight: \"Right Click\",\n MouseMiddle: \"Middle Click\",\n Enter: () => <Icon.Keyboard.Return />,\n};\n\nconst getCustomText = (trigger: Key): ReactElement | string => {\n const t = CUSTOM_TEXT[trigger];\n if (t != null) return typeof t === \"function\" ? t() : t;\n return trigger;\n};\n\nexport const toSymbols = (trigger: Trigger): (ReactElement | string)[] =>\n trigger.map((t) => getCustomText(t));\n\nexport const Text = <L extends Core.Level>({\n className,\n style,\n trigger,\n ...props\n}: TextProps<L>): ReactElement => {\n return (\n <Align.Space className={className} style={style} direction=\"x\">\n {trigger.map((t) => (\n // @ts-expect-error - issues with generic element types\n <Core.Keyboard<L> key={t} {...props}>\n {getCustomText(t)}\n </Core.Keyboard>\n ))}\n </Align.Space>\n );\n};\n"],"names":["useContext","useState","useEffect","trigger","jsx","Text.Text","useRef","xy","useCallback","triggers","box","use","Core.Symbols","Icon","Align.Space","Core.Keyboard"],"mappings":"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"}
1
+ {"version":3,"file":"external-BC7QdjAs.cjs","sources":["../src/triggers/Status.tsx","../src/triggers/useDrag.ts","../src/triggers/Text.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement, useEffect, useState } from \"react\";\n\nimport { Text } from \"@/text\";\nimport { useContext } from \"@/triggers/Provider\";\nimport { type Trigger } from \"@/triggers/triggers\";\n\nexport interface StatusProps extends Text.TextProps {}\n\nexport const Status = (props: StatusProps): ReactElement => {\n const { listen } = useContext();\n const [trigger, setTrigger] = useState<Trigger>([]);\n\n useEffect(\n () => listen(({ next: [trigger] }) => setTrigger(trigger ?? [])),\n [listen, setTrigger],\n );\n\n return <Text.Text {...props}>{trigger.join(\" \")}</Text.Text>;\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type RefObject, useCallback, useRef } from \"react\";\n\nimport { box, xy } from \"@synnaxlabs/x\";\n\nimport { use, type UseEvent } from \"@/triggers/hooks\";\nimport { type Stage, type Trigger } from \"@/triggers/triggers\";\n\nexport interface DragEvent {\n stage: Stage;\n box: box.Box;\n cursor: xy.XY;\n triggers: Trigger[];\n}\n\nexport type DragCallback = (props: DragEvent) => void;\n\nexport interface UseDragProps {\n bound: RefObject<HTMLElement>;\n triggers?: Trigger[];\n onDrag: DragCallback;\n loose?: boolean;\n}\n\nexport const useDrag = ({\n onDrag,\n triggers = [[\"MouseLeft\"], [\"MouseRight\"]],\n bound,\n loose = false,\n}: UseDragProps): void => {\n const triggerRef = useRef<UseEvent | null>(null);\n const startLoc = useRef<xy.XY>(xy.ZERO);\n const onMove = useCallback(\n (e: xy.Client & { buttons: number }) => {\n const cursor = xy.construct(e);\n if (triggerRef.current === null) return;\n const { triggers } = triggerRef.current;\n onDrag({\n box: box.construct(startLoc.current, cursor),\n cursor,\n triggers,\n stage: \"during\",\n });\n },\n [onDrag],\n );\n const handleTrigger = useCallback(\n (event: UseEvent): void => {\n const { stage, cursor } = event;\n if (stage === \"start\") {\n onDrag({ box: box.construct(cursor), ...event });\n window.addEventListener(\"mousemove\", onMove);\n triggerRef.current = event;\n startLoc.current = cursor;\n } else if (stage === \"end\" && triggerRef.current != null) {\n onDrag({ box: box.construct(startLoc.current, cursor), ...event });\n window.removeEventListener(\"mousemove\", onMove);\n triggerRef.current = null;\n startLoc.current = xy.ZERO;\n }\n },\n [onDrag],\n );\n use({ triggers, callback: handleTrigger, region: bound, loose });\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { Icon } from \"@synnaxlabs/media\";\n\nimport { Align } from \"@/align\";\nimport { Text as Core } from \"@/text\";\nimport { type Key, type Trigger } from \"@/triggers/triggers\";\nimport { RenderProp } from \"@/util/renderProp\";\n\nexport type TextProps<L extends Core.Level> = Core.KeyboardProps<L> & {\n trigger: Trigger;\n};\n\nconst CUSTOM_TEXT: Partial<Record<Key, (() => ReactElement) | string>> = {\n Control: () => <Core.Symbols.Meta />,\n Alt: () => <Core.Symbols.Alt />,\n Shift: () => <Icon.Keyboard.Shift />,\n MouseLeft: \"Left Click\",\n MouseRight: \"Right Click\",\n MouseMiddle: \"Middle Click\",\n Enter: () => <Icon.Keyboard.Return />,\n};\n\nconst getCustomText = (trigger: Key): ReactElement | string => {\n const t = CUSTOM_TEXT[trigger];\n if (t != null) return typeof t === \"function\" ? t() : t;\n return trigger;\n};\n\nexport const toSymbols = (trigger: Trigger): (ReactElement | string)[] =>\n trigger.map((t) => getCustomText(t));\n\nexport const Text = <L extends Core.Level>({\n className,\n style,\n trigger,\n ...props\n}: TextProps<L>): ReactElement => {\n return (\n <Align.Space className={className} style={style} direction=\"x\">\n {trigger.map((t) => (\n // @ts-expect-error - issues with generic element types\n <Core.Keyboard<L> key={t} {...props}>\n {getCustomText(t)}\n </Core.Keyboard>\n ))}\n </Align.Space>\n );\n};\n"],"names":["useContext","useState","useEffect","trigger","jsx","Text.Text","useRef","xy","useCallback","triggers","box","use","Core.Symbols","Icon","Align.Space","Core.Keyboard"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- const Toggle = require("./Toggle-J-_q32C5.cjs");
2
+ const Toggle = require("./Toggle-D1EoehhH.cjs");
3
3
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
4
4
  const css = require("./css-Pf9qxhQ4.cjs");
5
- const aggregator = require("./aggregator-B630XvUR.cjs");
5
+ const aggregator = require("./aggregator-Ca8xiVD2.cjs");
6
6
  const React = require("react");
7
7
  const Center = require("./Center-5NJ61qfA.cjs");
8
8
  const HelpText = ({
@@ -153,4 +153,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
153
153
  }, Symbol.toStringTag, { value: "Module" }));
154
154
  exports.Item = Item;
155
155
  exports.external = external;
156
- //# sourceMappingURL=external-DxAWWXHr.cjs.map
156
+ //# sourceMappingURL=external-BL3iWJdz.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-DxAWWXHr.cjs","sources":["../src/input/HelpText.tsx","../src/input/Label.tsx","../src/input/Item.tsx","../src/input/DateTime.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { CSS } from \"@/css\";\nimport { type Status } from \"@/status\";\nimport { Text } from \"@/text\";\n\nimport \"@/input/HelpText.css\";\n\n/** Props for the {@link HelpText} component. */\nexport interface HelpTextProps extends Omit<Text.TextProps<\"small\">, \"level\" | \"ref\"> {\n variant?: Status.Variant;\n}\n\n/**\n * Help text for an input component. We generally recommend using Input.Item with a\n * 'helpText' prop instead of this component. This component is useful for low-level\n * control over the help text element.\n *\n * @param props - Props for the help text component. Unlisted props are passed to the\n * underlying text element.\n * @param props.variant - The variant of the help text.\n * \"success\" | \"error\" | \"warning\" | \"info\" | \"loading\" | \"disabled\n * @default \"info\"\n */\nexport const HelpText = ({\n className,\n variant = \"error\",\n ...props\n}: HelpTextProps): ReactElement => (\n <Text.Text<\"small\">\n className={CSS(\n CSS.B(\"input-help-text\"),\n CSS.BM(\"input-help-text\", variant),\n className,\n )}\n level=\"small\"\n {...props}\n />\n);\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type DetailedHTMLProps, type HTMLAttributes, type ReactElement } from \"react\";\n\nimport { CSS } from \"@/css\";\n\nimport \"@/input/Label.css\";\n\n/** Props for the {@link Label} component. */\nexport interface LabelProps\n extends DetailedHTMLProps<HTMLAttributes<HTMLLabelElement>, HTMLLabelElement> {\n required?: boolean;\n}\n\n/**\n * A thin, styled wrapper for an input label. We generally recommend using Input.Item\n * with a 'label' prop instead of this component. This component is useful for\n * low-level control over the label element.\n *\n * @param props - Props for the label component. Unlisted props are passed to the\n * underlying label element.\n * @param props.required - Indicate whether the label is associated with a required\n * input.\n */\nexport const Label = ({\n className,\n required = false,\n children,\n ...props\n}: LabelProps): ReactElement => {\n return (\n <label className={CSS(CSS.B(\"input-label\"), className)} {...props}>\n {children} {required && <span className={CSS.B(\"required-indicator\")}>*</span>}\n </label>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { direction } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { CSS } from \"@/css\";\nimport { HelpText } from \"@/input/HelpText\";\nimport { Label } from \"@/input/Label\";\n\nimport \"@/input/Item.css\";\nimport { status } from \"@/status/aether\";\n\nexport interface ItemProps extends Align.SpaceProps {\n label?: string;\n required?: boolean;\n showLabel?: boolean;\n helpText?: string;\n padHelpText?: boolean;\n helpTextVariant?: status.Variant;\n showHelpText?: boolean;\n}\n\nconst maybeDefaultAlignment = (\n align?: Align.Alignment,\n dir: direction.Crude = \"x\",\n): Align.Alignment => {\n if (align != null) return align;\n return direction.construct(dir) === \"y\" ? \"stretch\" : \"center\";\n};\n\nexport const Item = ({\n label,\n showLabel = true,\n helpText,\n direction = \"y\",\n className,\n children,\n required,\n align,\n size = \"small\",\n padHelpText = false,\n helpTextVariant,\n showHelpText = true,\n ...props\n}: ItemProps): ReactElement => {\n let inputAndHelp: ReactElement;\n if (showHelpText === false && showLabel === false) return <>{children}</>;\n if (direction === \"x\")\n inputAndHelp = (\n <Align.Space direction=\"y\" size=\"small\">\n {children}\n {(padHelpText || (helpText != null && helpText.length > 0)) && (\n <HelpText variant={helpTextVariant}>{helpText}</HelpText>\n )}\n </Align.Space>\n );\n else\n inputAndHelp = (\n <Align.Space direction=\"y\" size={1 / 3}>\n {children}\n {(padHelpText || (helpText != null && helpText.length > 0)) && (\n <HelpText variant={helpTextVariant}>{helpText}</HelpText>\n )}\n </Align.Space>\n );\n\n return (\n <Align.Space\n className={CSS(CSS.B(\"input-item\"), className)}\n direction={direction}\n size={size}\n align={maybeDefaultAlignment(align, direction)}\n {...props}\n >\n {showLabel && <Label required={required}>{label}</Label>}\n {inputAndHelp}\n </Align.Space>\n );\n};\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement, useState } from \"react\";\n\nimport { TimeSpan, TimeStamp } from \"@synnaxlabs/x\";\n\nimport { Text } from \"@/input/Text\";\nimport { type BaseProps } from \"@/input/types\";\n\nexport interface DateTimeProps extends BaseProps<number> {}\n\nexport const DateTime = ({\n value,\n onChange,\n onBlur,\n ...props\n}: DateTimeProps): ReactElement => {\n const ts = new TimeStamp(value, \"UTC\");\n const [internalValue, setInternalValue] = useState(\n ts.fString(\"ISO\", \"local\").slice(0, -1),\n );\n const [valueIsValid, setValueIsValid] = useState(true);\n\n const handleChange = (next: string | number): void => {\n let nextStr = next.toString();\n setInternalValue(nextStr);\n\n let ts = new TimeStamp(next, \"UTC\");\n if (nextStr.length < 23) nextStr += \".000\";\n\n ts = ts.add(\n BigInt(\n TimeStamp.now().date().getTimezoneOffset() - ts.date().getTimezoneOffset(),\n ) * TimeSpan.MINUTE.valueOf(),\n );\n let ok = false;\n try {\n const str = ts.fString(\"ISO\", \"local\");\n ok = str.slice(0, -1) === nextStr;\n } catch (_) {\n console.error(\"e\");\n }\n if (!ok) {\n setValueIsValid(false);\n return;\n }\n onChange(Number(ts.valueOf()));\n setValueIsValid(true);\n };\n\n const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {\n setValueIsValid(true);\n setInternalValue(new TimeStamp(value, \"UTC\").fString(\"ISO\", \"local\").slice(0, -1));\n onBlur?.(e);\n };\n\n return (\n <Text\n type=\"datetime-local\"\n onBlur={handleBlur}\n required={false}\n value={\n valueIsValid\n ? new TimeStamp(value, \"UTC\").fString(\"ISO\", \"local\").slice(0, -1)\n : internalValue\n }\n onChange={handleChange}\n {...props}\n />\n );\n};\n"],"names":["jsx","Text.Text","CSS","jsxs","direction","Align.Space","TimeStamp","useState","ts","TimeSpan","Text"],"mappings":"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"}
1
+ {"version":3,"file":"external-BL3iWJdz.cjs","sources":["../src/input/HelpText.tsx","../src/input/Label.tsx","../src/input/Item.tsx","../src/input/DateTime.tsx"],"sourcesContent":["// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { CSS } from \"@/css\";\nimport { type Status } from \"@/status\";\nimport { Text } from \"@/text\";\n\nimport \"@/input/HelpText.css\";\n\n/** Props for the {@link HelpText} component. */\nexport interface HelpTextProps extends Omit<Text.TextProps<\"small\">, \"level\" | \"ref\"> {\n variant?: Status.Variant;\n}\n\n/**\n * Help text for an input component. We generally recommend using Input.Item with a\n * 'helpText' prop instead of this component. This component is useful for low-level\n * control over the help text element.\n *\n * @param props - Props for the help text component. Unlisted props are passed to the\n * underlying text element.\n * @param props.variant - The variant of the help text.\n * \"success\" | \"error\" | \"warning\" | \"info\" | \"loading\" | \"disabled\n * @default \"info\"\n */\nexport const HelpText = ({\n className,\n variant = \"error\",\n ...props\n}: HelpTextProps): ReactElement => (\n <Text.Text<\"small\">\n className={CSS(\n CSS.B(\"input-help-text\"),\n CSS.BM(\"input-help-text\", variant),\n className,\n )}\n level=\"small\"\n {...props}\n />\n);\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type DetailedHTMLProps, type HTMLAttributes, type ReactElement } from \"react\";\n\nimport { CSS } from \"@/css\";\n\nimport \"@/input/Label.css\";\n\n/** Props for the {@link Label} component. */\nexport interface LabelProps\n extends DetailedHTMLProps<HTMLAttributes<HTMLLabelElement>, HTMLLabelElement> {\n required?: boolean;\n}\n\n/**\n * A thin, styled wrapper for an input label. We generally recommend using Input.Item\n * with a 'label' prop instead of this component. This component is useful for\n * low-level control over the label element.\n *\n * @param props - Props for the label component. Unlisted props are passed to the\n * underlying label element.\n * @param props.required - Indicate whether the label is associated with a required\n * input.\n */\nexport const Label = ({\n className,\n required = false,\n children,\n ...props\n}: LabelProps): ReactElement => {\n return (\n <label className={CSS(CSS.B(\"input-label\"), className)} {...props}>\n {children} {required && <span className={CSS.B(\"required-indicator\")}>*</span>}\n </label>\n );\n};\n","// Copyright 2023 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement } from \"react\";\n\nimport { direction } from \"@synnaxlabs/x\";\n\nimport { Align } from \"@/align\";\nimport { CSS } from \"@/css\";\nimport { HelpText } from \"@/input/HelpText\";\nimport { Label } from \"@/input/Label\";\n\nimport \"@/input/Item.css\";\nimport { status } from \"@/status/aether\";\n\nexport interface ItemProps extends Align.SpaceProps {\n label?: string;\n required?: boolean;\n showLabel?: boolean;\n helpText?: string;\n padHelpText?: boolean;\n helpTextVariant?: status.Variant;\n showHelpText?: boolean;\n}\n\nconst maybeDefaultAlignment = (\n align?: Align.Alignment,\n dir: direction.Crude = \"x\",\n): Align.Alignment => {\n if (align != null) return align;\n return direction.construct(dir) === \"y\" ? \"stretch\" : \"center\";\n};\n\nexport const Item = ({\n label,\n showLabel = true,\n helpText,\n direction = \"y\",\n className,\n children,\n required,\n align,\n size = \"small\",\n padHelpText = false,\n helpTextVariant,\n showHelpText = true,\n ...props\n}: ItemProps): ReactElement => {\n let inputAndHelp: ReactElement;\n if (showHelpText === false && showLabel === false) return <>{children}</>;\n if (direction === \"x\")\n inputAndHelp = (\n <Align.Space direction=\"y\" size=\"small\">\n {children}\n {(padHelpText || (helpText != null && helpText.length > 0)) && (\n <HelpText variant={helpTextVariant}>{helpText}</HelpText>\n )}\n </Align.Space>\n );\n else\n inputAndHelp = (\n <Align.Space direction=\"y\" size={1 / 3}>\n {children}\n {(padHelpText || (helpText != null && helpText.length > 0)) && (\n <HelpText variant={helpTextVariant}>{helpText}</HelpText>\n )}\n </Align.Space>\n );\n\n return (\n <Align.Space\n className={CSS(CSS.B(\"input-item\"), className)}\n direction={direction}\n size={size}\n align={maybeDefaultAlignment(align, direction)}\n {...props}\n >\n {showLabel && <Label required={required}>{label}</Label>}\n {inputAndHelp}\n </Align.Space>\n );\n};\n","// Copyright 2024 Synnax Labs, Inc.\n//\n// Use of this software is governed by the Business Source License included in the file\n// licenses/BSL.txt.\n//\n// As of the Change Date specified in that file, in accordance with the Business Source\n// License, use of this software will be governed by the Apache License, Version 2.0,\n// included in the file licenses/APL.txt.\n\nimport { type ReactElement, useState } from \"react\";\n\nimport { TimeSpan, TimeStamp } from \"@synnaxlabs/x\";\n\nimport { Text } from \"@/input/Text\";\nimport { type BaseProps } from \"@/input/types\";\n\nexport interface DateTimeProps extends BaseProps<number> {}\n\nexport const DateTime = ({\n value,\n onChange,\n onBlur,\n ...props\n}: DateTimeProps): ReactElement => {\n const ts = new TimeStamp(value, \"UTC\");\n const [internalValue, setInternalValue] = useState(\n ts.fString(\"ISO\", \"local\").slice(0, -1),\n );\n const [valueIsValid, setValueIsValid] = useState(true);\n\n const handleChange = (next: string | number): void => {\n let nextStr = next.toString();\n setInternalValue(nextStr);\n\n let ts = new TimeStamp(next, \"UTC\");\n if (nextStr.length < 23) nextStr += \".000\";\n\n ts = ts.add(\n BigInt(\n TimeStamp.now().date().getTimezoneOffset() - ts.date().getTimezoneOffset(),\n ) * TimeSpan.MINUTE.valueOf(),\n );\n let ok = false;\n try {\n const str = ts.fString(\"ISO\", \"local\");\n ok = str.slice(0, -1) === nextStr;\n } catch (_) {\n console.error(\"e\");\n }\n if (!ok) {\n setValueIsValid(false);\n return;\n }\n onChange(Number(ts.valueOf()));\n setValueIsValid(true);\n };\n\n const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {\n setValueIsValid(true);\n setInternalValue(new TimeStamp(value, \"UTC\").fString(\"ISO\", \"local\").slice(0, -1));\n onBlur?.(e);\n };\n\n return (\n <Text\n type=\"datetime-local\"\n onBlur={handleBlur}\n required={false}\n value={\n valueIsValid\n ? new TimeStamp(value, \"UTC\").fString(\"ISO\", \"local\").slice(0, -1)\n : internalValue\n }\n onChange={handleChange}\n {...props}\n />\n );\n};\n"],"names":["jsx","Text.Text","CSS","jsxs","direction","Align.Space","TimeStamp","useState","ts","TimeSpan","Text"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { P as Provider, S as Switch, t as toCSSVars, u as use, a as useContext, b as useProvider, c as useTypography } from "./Toggle-DDY2Hs-p.js";
2
- import { S as SYNNAX_DARK, a as SYNNAX_LIGHT, b as SYNNAX_THEMES, t as themeZ } from "./aggregator-CMccKfYY.js";
1
+ import { P as Provider, S as Switch, t as toCSSVars, u as use, a as useContext, b as useProvider, c as useTypography } from "./Toggle-Blzh0A0b.js";
2
+ import { S as SYNNAX_DARK, a as SYNNAX_LIGHT, b as SYNNAX_THEMES, t as themeZ } from "./aggregator-Dl2jHye5.js";
3
3
  const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4
4
  __proto__: null,
5
5
  Provider,
@@ -20,4 +20,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
20
20
  export {
21
21
  external as e
22
22
  };
23
- //# sourceMappingURL=external-BMHtKaLv.js.map
23
+ //# sourceMappingURL=external-BMK0UUaW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-BMK0UUaW.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
- const Toggle = require("./Toggle-J-_q32C5.cjs");
2
+ const Toggle = require("./Toggle-D1EoehhH.cjs");
3
3
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
4
4
  const React = require("react");
5
- const aggregator = require("./aggregator-B630XvUR.cjs");
5
+ const aggregator = require("./aggregator-Ca8xiVD2.cjs");
6
6
  require("./css-Pf9qxhQ4.cjs");
7
7
  require("./Center-5NJ61qfA.cjs");
8
- const List = require("./List-aushS6dz.cjs");
8
+ const List = require("./List-DufMhjqX.cjs");
9
9
  function isArray(value) {
10
10
  return !Array.isArray ? getTag(value) === "[object Array]" : Array.isArray(value);
11
11
  }
@@ -1504,4 +1504,4 @@ exports.createFilterTransform = createFilterTransform;
1504
1504
  exports.external = external;
1505
1505
  exports.fuseFilter = fuseFilter;
1506
1506
  exports.proxyMemo = proxyMemo;
1507
- //# sourceMappingURL=external-D39DdEvO.cjs.map
1507
+ //# sourceMappingURL=external-BVW64h82.cjs.map