@synnaxlabs/pluto 0.21.6 → 0.21.8

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 (125) hide show
  1. package/dist/{Keyboard-DD2KYOn6.cjs → Keyboard-DaFraUsQ.cjs} +2 -2
  2. package/dist/{Keyboard-DD2KYOn6.cjs.map → Keyboard-DaFraUsQ.cjs.map} +1 -1
  3. package/dist/{Keyboard-DCHQVLbP.js → Keyboard-nDIAR7Rj.js} +2 -2
  4. package/dist/{Keyboard-DCHQVLbP.js.map → Keyboard-nDIAR7Rj.js.map} +1 -1
  5. package/dist/{LinePlot-FmPnet-3.cjs → LinePlot-BZDm4uxJ.cjs} +3 -3
  6. package/dist/{LinePlot-FmPnet-3.cjs.map → LinePlot-BZDm4uxJ.cjs.map} +1 -1
  7. package/dist/{LinePlot-D3us1amT.js → LinePlot-tOiSUMjC.js} +3 -3
  8. package/dist/{LinePlot-D3us1amT.js.map → LinePlot-tOiSUMjC.js.map} +1 -1
  9. package/dist/{Link-DlYOVhHH.cjs → Link-BdWFvK8v.cjs} +2 -2
  10. package/dist/{Link-DlYOVhHH.cjs.map → Link-BdWFvK8v.cjs.map} +1 -1
  11. package/dist/{Link-D48KH--6.js → Link-d3CXVSaO.js} +2 -2
  12. package/dist/{Link-D48KH--6.js.map → Link-d3CXVSaO.js.map} +1 -1
  13. package/dist/{List-CUO-_-jL.js → List-DcsWFiLT.js} +3 -3
  14. package/dist/{List-CUO-_-jL.js.map → List-DcsWFiLT.js.map} +1 -1
  15. package/dist/{List-CUq1lENO.cjs → List-PlMTfEHi.cjs} +3 -3
  16. package/dist/{List-CUq1lENO.cjs.map → List-PlMTfEHi.cjs.map} +1 -1
  17. package/dist/{Toggle-ClTExSi6.cjs → Toggle-C6Z8WPT3.cjs} +49 -9
  18. package/dist/Toggle-C6Z8WPT3.cjs.map +1 -0
  19. package/dist/{Toggle-DozaP3Tx.js → Toggle-DGLgYCOX.js} +49 -9
  20. package/dist/Toggle-DGLgYCOX.js.map +1 -0
  21. package/dist/Video-DFtnAOYY.cjs +14 -0
  22. package/dist/Video-DFtnAOYY.cjs.map +1 -0
  23. package/dist/Video-SGhKphYR.js +15 -0
  24. package/dist/Video-SGhKphYR.js.map +1 -0
  25. package/dist/{aggregator-Dl2jHye5.js → aggregator-BgImZc4o.js} +220 -218
  26. package/dist/aggregator-BgImZc4o.js.map +1 -0
  27. package/dist/{aggregator-Ca8xiVD2.cjs → aggregator-BpfMBUD1.cjs} +204 -202
  28. package/dist/aggregator-BpfMBUD1.cjs.map +1 -0
  29. package/dist/button.cjs +1 -1
  30. package/dist/button.js +1 -1
  31. package/dist/color.cjs +1 -1
  32. package/dist/color.js +1 -1
  33. package/dist/dropdown.cjs +1 -1
  34. package/dist/dropdown.js +1 -1
  35. package/dist/ether.cjs +2 -2
  36. package/dist/ether.js +4 -4
  37. package/dist/{external-Br3dSWZy.cjs → external-0PM7JrzG.cjs} +3 -3
  38. package/dist/{external-Br3dSWZy.cjs.map → external-0PM7JrzG.cjs.map} +1 -1
  39. package/dist/{external-Cq-yOszj.cjs → external-16K8slq8.cjs} +3 -3
  40. package/dist/{external-Cq-yOszj.cjs.map → external-16K8slq8.cjs.map} +1 -1
  41. package/dist/{external-BX1SuP7b.js → external-1osPryUV.js} +3 -3
  42. package/dist/{external-BX1SuP7b.js.map → external-1osPryUV.js.map} +1 -1
  43. package/dist/{external-BGyrJwT6.js → external-5przQjJD.js} +3 -3
  44. package/dist/{external-BGyrJwT6.js.map → external-5przQjJD.js.map} +1 -1
  45. package/dist/{external-Bw-gM1WS.js → external-96EinZfY.js} +3 -3
  46. package/dist/external-96EinZfY.js.map +1 -0
  47. package/dist/{external-CTg9-80v.cjs → external-B0z7uXZV.cjs} +3 -3
  48. package/dist/{external-CTg9-80v.cjs.map → external-B0z7uXZV.cjs.map} +1 -1
  49. package/dist/{external-DrUfLzJs.js → external-B3ly2-jy.js} +5 -5
  50. package/dist/{external-DrUfLzJs.js.map → external-B3ly2-jy.js.map} +1 -1
  51. package/dist/{external-DwY1uz6Y.js → external-BAdU6u03.js} +3 -3
  52. package/dist/{external-DwY1uz6Y.js.map → external-BAdU6u03.js.map} +1 -1
  53. package/dist/{external-JjFzMlTY.cjs → external-Blx0rtt2.cjs} +4 -4
  54. package/dist/{external-JjFzMlTY.cjs.map → external-Blx0rtt2.cjs.map} +1 -1
  55. package/dist/{external-DGEGrIB8.js → external-C6GmnG49.js} +4 -4
  56. package/dist/{external-DGEGrIB8.js.map → external-C6GmnG49.js.map} +1 -1
  57. package/dist/{external-BWNeNJEb.cjs → external-CPx8XA9-.cjs} +5 -5
  58. package/dist/{external-BWNeNJEb.cjs.map → external-CPx8XA9-.cjs.map} +1 -1
  59. package/dist/{external-jVPC18yY.js → external-CgMwmBnF.js} +3 -3
  60. package/dist/external-CgMwmBnF.js.map +1 -0
  61. package/dist/{external-rv9PfMM3.cjs → external-CsO29OsF.cjs} +5 -5
  62. package/dist/{external-rv9PfMM3.cjs.map → external-CsO29OsF.cjs.map} +1 -1
  63. package/dist/{external-gzESdEqw.cjs → external-Cu6T11fi.cjs} +8 -8
  64. package/dist/{external-gzESdEqw.cjs.map → external-Cu6T11fi.cjs.map} +1 -1
  65. package/dist/{external-DE-HpRm9.cjs → external-CzJYG1hX.cjs} +3 -3
  66. package/dist/external-CzJYG1hX.cjs.map +1 -0
  67. package/dist/{external-BbCvNSWY.cjs → external-D4ur_D1S.cjs} +3 -3
  68. package/dist/{external-BbCvNSWY.cjs.map → external-D4ur_D1S.cjs.map} +1 -1
  69. package/dist/{external-CsyhVOiV.cjs → external-D7XrxOVE.cjs} +3 -3
  70. package/dist/{external-CsyhVOiV.cjs.map → external-D7XrxOVE.cjs.map} +1 -1
  71. package/dist/{external-DWisAHYJ.js → external-DQkw1ko0.js} +3 -3
  72. package/dist/{external-DWisAHYJ.js.map → external-DQkw1ko0.js.map} +1 -1
  73. package/dist/{external-B0DCjEX5.js → external-DarqsFzT.js} +3 -3
  74. package/dist/{external-B0DCjEX5.js.map → external-DarqsFzT.js.map} +1 -1
  75. package/dist/{external-EIV24CTN.js → external-DeheWVb-.js} +8 -8
  76. package/dist/{external-EIV24CTN.js.map → external-DeheWVb-.js.map} +1 -1
  77. package/dist/{external-DX1JRejp.js → external-DiFhWWS-.js} +5 -5
  78. package/dist/{external-DX1JRejp.js.map → external-DiFhWWS-.js.map} +1 -1
  79. package/dist/{external-VofAmo6_.cjs → external-DvGqQHd8.cjs} +3 -3
  80. package/dist/external-DvGqQHd8.cjs.map +1 -0
  81. package/dist/header.cjs +1 -1
  82. package/dist/header.js +1 -1
  83. package/dist/index.cjs +16 -16
  84. package/dist/index.cjs.map +1 -1
  85. package/dist/index.js +31 -31
  86. package/dist/index.js.map +1 -1
  87. package/dist/input.cjs +1 -1
  88. package/dist/input.js +1 -1
  89. package/dist/list.cjs +1 -1
  90. package/dist/list.js +1 -1
  91. package/dist/menu.cjs +1 -1
  92. package/dist/menu.js +1 -1
  93. package/dist/src/list/Core.d.ts +1 -1
  94. package/dist/src/list/Core.d.ts.map +1 -1
  95. package/dist/src/list/Hover.d.ts.map +1 -1
  96. package/dist/src/list/Item.d.ts +1 -1
  97. package/dist/src/list/Item.d.ts.map +1 -1
  98. package/dist/src/video/Video.d.ts +2 -2
  99. package/dist/src/video/Video.d.ts.map +1 -1
  100. package/dist/style.css +1 -1
  101. package/dist/tabs.cjs +1 -1
  102. package/dist/tabs.js +1 -1
  103. package/dist/text.cjs +2 -2
  104. package/dist/text.js +2 -2
  105. package/dist/theming.cjs +2 -2
  106. package/dist/theming.js +2 -2
  107. package/dist/tree.cjs +1 -1
  108. package/dist/tree.js +1 -1
  109. package/dist/triggers.cjs +1 -1
  110. package/dist/triggers.js +1 -1
  111. package/dist/video.cjs +1 -1
  112. package/dist/video.js +1 -1
  113. package/package.json +3 -3
  114. package/dist/Toggle-ClTExSi6.cjs.map +0 -1
  115. package/dist/Toggle-DozaP3Tx.js.map +0 -1
  116. package/dist/Video-B1oW8NLd.js +0 -11
  117. package/dist/Video-B1oW8NLd.js.map +0 -1
  118. package/dist/Video-BGNx94bQ.cjs +0 -10
  119. package/dist/Video-BGNx94bQ.cjs.map +0 -1
  120. package/dist/aggregator-Ca8xiVD2.cjs.map +0 -1
  121. package/dist/aggregator-Dl2jHye5.js.map +0 -1
  122. package/dist/external-Bw-gM1WS.js.map +0 -1
  123. package/dist/external-DE-HpRm9.cjs.map +0 -1
  124. package/dist/external-VofAmo6_.cjs.map +0 -1
  125. package/dist/external-jVPC18yY.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
3
- const Toggle = require("./Toggle-ClTExSi6.cjs");
3
+ const Toggle = require("./Toggle-C6Z8WPT3.cjs");
4
4
  const Link = ({
5
5
  href,
6
6
  target,
@@ -9,4 +9,4 @@ const Link = ({
9
9
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.Button, { el: "a", href, ...props });
10
10
  };
11
11
  exports.Link = Link;
12
- //# sourceMappingURL=Link-DlYOVhHH.cjs.map
12
+ //# sourceMappingURL=Link-BdWFvK8v.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link-DlYOVhHH.cjs","sources":["../src/button/Link.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 { Button, type ButtonProps } from \"@/button/Button\";\nimport { type Text } from \"@/text\";\n\n/** Props for the {@link Link} component. */\nexport interface LinkProps<L extends Text.Level = \"h1\">\n extends ButtonProps,\n Pick<Text.LinkProps<L>, \"href\" | \"target\"> {}\n/**\n * Use.Link renders a button that looks like a link and redirects to the given href\n * when clicked.\n *\n * @param props - Props for the component. Identical to the props for the Use component,\n * excluding 'variant', and adding the following:\n * @param props.href - The URL to redirect to when the button is clicked.\n * @param props.target - The target of the link. Defaults to \"_self\".\n */\n\nexport const Link = <L extends Text.Level = \"h1\">({\n href,\n target,\n ...props\n}: LinkProps<L>): ReactElement => {\n // @ts-expect-error\n return <Button<\"a\"> el=\"a\" href={href} {...props} />;\n};\n"],"names":["Button"],"mappings":";;;AA4BO,MAAM,OAAO,CAA8B;AAAA,EAChD;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAkC;AAEhC,0DAAQA,OAAY,QAAA,EAAA,IAAG,KAAI,MAAa,GAAG,MAAO,CAAA;AACpD;;"}
1
+ {"version":3,"file":"Link-BdWFvK8v.cjs","sources":["../src/button/Link.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 { Button, type ButtonProps } from \"@/button/Button\";\nimport { type Text } from \"@/text\";\n\n/** Props for the {@link Link} component. */\nexport interface LinkProps<L extends Text.Level = \"h1\">\n extends ButtonProps,\n Pick<Text.LinkProps<L>, \"href\" | \"target\"> {}\n/**\n * Use.Link renders a button that looks like a link and redirects to the given href\n * when clicked.\n *\n * @param props - Props for the component. Identical to the props for the Use component,\n * excluding 'variant', and adding the following:\n * @param props.href - The URL to redirect to when the button is clicked.\n * @param props.target - The target of the link. Defaults to \"_self\".\n */\n\nexport const Link = <L extends Text.Level = \"h1\">({\n href,\n target,\n ...props\n}: LinkProps<L>): ReactElement => {\n // @ts-expect-error\n return <Button<\"a\"> el=\"a\" href={href} {...props} />;\n};\n"],"names":["Button"],"mappings":";;;AA4BO,MAAM,OAAO,CAA8B;AAAA,EAChD;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAkC;AAEhC,0DAAQA,OAAY,QAAA,EAAA,IAAG,KAAI,MAAa,GAAG,MAAO,CAAA;AACpD;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
2
- import { B as Button } from "./Toggle-DozaP3Tx.js";
2
+ import { B as Button } from "./Toggle-DGLgYCOX.js";
3
3
  const Link = ({
4
4
  href,
5
5
  target,
@@ -10,4 +10,4 @@ const Link = ({
10
10
  export {
11
11
  Link as L
12
12
  };
13
- //# sourceMappingURL=Link-D48KH--6.js.map
13
+ //# sourceMappingURL=Link-d3CXVSaO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link-D48KH--6.js","sources":["../src/button/Link.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 { Button, type ButtonProps } from \"@/button/Button\";\nimport { type Text } from \"@/text\";\n\n/** Props for the {@link Link} component. */\nexport interface LinkProps<L extends Text.Level = \"h1\">\n extends ButtonProps,\n Pick<Text.LinkProps<L>, \"href\" | \"target\"> {}\n/**\n * Use.Link renders a button that looks like a link and redirects to the given href\n * when clicked.\n *\n * @param props - Props for the component. Identical to the props for the Use component,\n * excluding 'variant', and adding the following:\n * @param props.href - The URL to redirect to when the button is clicked.\n * @param props.target - The target of the link. Defaults to \"_self\".\n */\n\nexport const Link = <L extends Text.Level = \"h1\">({\n href,\n target,\n ...props\n}: LinkProps<L>): ReactElement => {\n // @ts-expect-error\n return <Button<\"a\"> el=\"a\" href={href} {...props} />;\n};\n"],"names":[],"mappings":";;AA4BO,MAAM,OAAO,CAA8B;AAAA,EAChD;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAkC;AAEhC,+CAAQ,QAAY,EAAA,IAAG,KAAI,MAAa,GAAG,MAAO,CAAA;AACpD;"}
1
+ {"version":3,"file":"Link-d3CXVSaO.js","sources":["../src/button/Link.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 { Button, type ButtonProps } from \"@/button/Button\";\nimport { type Text } from \"@/text\";\n\n/** Props for the {@link Link} component. */\nexport interface LinkProps<L extends Text.Level = \"h1\">\n extends ButtonProps,\n Pick<Text.LinkProps<L>, \"href\" | \"target\"> {}\n/**\n * Use.Link renders a button that looks like a link and redirects to the given href\n * when clicked.\n *\n * @param props - Props for the component. Identical to the props for the Use component,\n * excluding 'variant', and adding the following:\n * @param props.href - The URL to redirect to when the button is clicked.\n * @param props.target - The target of the link. Defaults to \"_self\".\n */\n\nexport const Link = <L extends Text.Level = \"h1\">({\n href,\n target,\n ...props\n}: LinkProps<L>): ReactElement => {\n // @ts-expect-error\n return <Button<\"a\"> el=\"a\" href={href} {...props} />;\n};\n"],"names":[],"mappings":";;AA4BO,MAAM,OAAO,CAA8B;AAAA,EAChD;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAkC;AAEhC,+CAAQ,QAAY,EAAA,IAAG,KAAI,MAAa,GAAG,MAAO,CAAA;AACpD;"}
@@ -1,6 +1,6 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
2
- import { c as S } from "./aggregator-Dl2jHye5.js";
3
- import { f as useMemoCompare, g as InfiniteProvider, h as DataProvider } from "./Toggle-DozaP3Tx.js";
2
+ import { c as S } from "./aggregator-BgImZc4o.js";
3
+ import { f as useMemoCompare, g as InfiniteProvider, h as DataProvider } from "./Toggle-DGLgYCOX.js";
4
4
  const List = ({
5
5
  children,
6
6
  data,
@@ -24,4 +24,4 @@ const List = ({
24
24
  export {
25
25
  List as L
26
26
  };
27
- //# sourceMappingURL=List-CUO-_-jL.js.map
27
+ //# sourceMappingURL=List-DcsWFiLT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"List-CUO-_-jL.js","sources":["../src/list/List.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 { useMemo, type PropsWithChildren, type ReactElement } from \"react\";\n\nimport { type Keyed, type Key, compare } from \"@synnaxlabs/x\";\n\nimport { DataProvider } from \"@/list/Data\";\nimport { InfiniteProvider } from \"@/list/Infinite\";\nimport { useMemoCompare } from \"@/memo\";\n\nexport interface ListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends PropsWithChildren<unknown> {\n data?: E[];\n emptyContent?: ReactElement;\n omit?: K[];\n}\n\n/**\n * The main component for building a List. By itself, it does not render any HTML, and\n * should be used in conjunction with its sub-components (List.'X') to build a list\n * component to fit your needs.\n *\n * @param props - The props for the List component.\n * @param props.data - The data to be displayed in the list. The values of the object in\n * each entry of the array must satisfy the {@link RenderableValue} interface i.e. they\n * must be a primitive type or implement a 'toString' method.\n * @param props.children - Sub-components of the List component to add additional functionality.\n *\n */\nexport const List = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n children,\n data,\n emptyContent,\n omit,\n}: ListProps<K, E>): ReactElement => {\n const omittedData = useMemoCompare(\n () => (omit != null ? data?.filter((e) => !omit.includes(e.key)) : data),\n ([prevOmit, prevData], [omit, data]) => {\n let omitsEqual = false;\n if (prevOmit != null && omit != null)\n omitsEqual = compare.unorderedPrimitiveArrays(prevOmit, omit) === compare.EQUAL;\n else omitsEqual = prevOmit == omit;\n return prevData === data && omitsEqual;\n },\n [omit, data] as [K[] | undefined, E[] | undefined],\n );\n return (\n <InfiniteProvider>\n <DataProvider<K, E> data={omittedData} emptyContent={emptyContent}>\n {children}\n </DataProvider>\n </InfiniteProvider>\n );\n};\n"],"names":["omit","data","compare","jsx"],"mappings":";;;AAoCO,MAAM,OAAO,CAAqD;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqC;AACnC,QAAM,cAAc;AAAA,IAClB,MAAO,QAAQ,OAAO,6BAAM,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,IACnE,CAAC,CAAC,UAAU,QAAQ,GAAG,CAACA,OAAMC,KAAI,MAAM;AACtC,UAAI,aAAa;AACb,UAAA,YAAY,QAAQD,SAAQ;AAC9B,qBAAaE,EAAQ,yBAAyB,UAAUF,KAAI,MAAME,EAAQ;AAAA;AACvE,qBAAa,YAAYF;AAC9B,aAAO,aAAaC,SAAQ;AAAA,IAC9B;AAAA,IACA,CAAC,MAAM,IAAI;AAAA,EAAA;AAGX,SAAAE,kCAAA,IAAC,oBACC,UAACA,kCAAA,IAAA,cAAA,EAAmB,MAAM,aAAa,cACpC,SACH,CAAA,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"List-DcsWFiLT.js","sources":["../src/list/List.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 { useMemo, type PropsWithChildren, type ReactElement } from \"react\";\n\nimport { type Keyed, type Key, compare } from \"@synnaxlabs/x\";\n\nimport { DataProvider } from \"@/list/Data\";\nimport { InfiniteProvider } from \"@/list/Infinite\";\nimport { useMemoCompare } from \"@/memo\";\n\nexport interface ListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends PropsWithChildren<unknown> {\n data?: E[];\n emptyContent?: ReactElement;\n omit?: K[];\n}\n\n/**\n * The main component for building a List. By itself, it does not render any HTML, and\n * should be used in conjunction with its sub-components (List.'X') to build a list\n * component to fit your needs.\n *\n * @param props - The props for the List component.\n * @param props.data - The data to be displayed in the list. The values of the object in\n * each entry of the array must satisfy the {@link RenderableValue} interface i.e. they\n * must be a primitive type or implement a 'toString' method.\n * @param props.children - Sub-components of the List component to add additional functionality.\n *\n */\nexport const List = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n children,\n data,\n emptyContent,\n omit,\n}: ListProps<K, E>): ReactElement => {\n const omittedData = useMemoCompare(\n () => (omit != null ? data?.filter((e) => !omit.includes(e.key)) : data),\n ([prevOmit, prevData], [omit, data]) => {\n let omitsEqual = false;\n if (prevOmit != null && omit != null)\n omitsEqual = compare.unorderedPrimitiveArrays(prevOmit, omit) === compare.EQUAL;\n else omitsEqual = prevOmit == omit;\n return prevData === data && omitsEqual;\n },\n [omit, data] as [K[] | undefined, E[] | undefined],\n );\n return (\n <InfiniteProvider>\n <DataProvider<K, E> data={omittedData} emptyContent={emptyContent}>\n {children}\n </DataProvider>\n </InfiniteProvider>\n );\n};\n"],"names":["omit","data","compare","jsx"],"mappings":";;;AAoCO,MAAM,OAAO,CAAqD;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqC;AACnC,QAAM,cAAc;AAAA,IAClB,MAAO,QAAQ,OAAO,6BAAM,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,IACnE,CAAC,CAAC,UAAU,QAAQ,GAAG,CAACA,OAAMC,KAAI,MAAM;AACtC,UAAI,aAAa;AACb,UAAA,YAAY,QAAQD,SAAQ;AAC9B,qBAAaE,EAAQ,yBAAyB,UAAUF,KAAI,MAAME,EAAQ;AAAA;AACvE,qBAAa,YAAYF;AAC9B,aAAO,aAAaC,SAAQ;AAAA,IAC9B;AAAA,IACA,CAAC,MAAM,IAAI;AAAA,EAAA;AAGX,SAAAE,kCAAA,IAAC,oBACC,UAACA,kCAAA,IAAA,cAAA,EAAmB,MAAM,aAAa,cACpC,SACH,CAAA,EACF,CAAA;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
3
- const aggregator = require("./aggregator-Ca8xiVD2.cjs");
4
- const Toggle = require("./Toggle-ClTExSi6.cjs");
3
+ const aggregator = require("./aggregator-BpfMBUD1.cjs");
4
+ const Toggle = require("./Toggle-C6Z8WPT3.cjs");
5
5
  const List = ({
6
6
  children,
7
7
  data,
@@ -23,4 +23,4 @@ const List = ({
23
23
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.InfiniteProvider, { children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.DataProvider, { data: omittedData, emptyContent, children }) });
24
24
  };
25
25
  exports.List = List;
26
- //# sourceMappingURL=List-CUq1lENO.cjs.map
26
+ //# sourceMappingURL=List-PlMTfEHi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"List-CUq1lENO.cjs","sources":["../src/list/List.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 { useMemo, type PropsWithChildren, type ReactElement } from \"react\";\n\nimport { type Keyed, type Key, compare } from \"@synnaxlabs/x\";\n\nimport { DataProvider } from \"@/list/Data\";\nimport { InfiniteProvider } from \"@/list/Infinite\";\nimport { useMemoCompare } from \"@/memo\";\n\nexport interface ListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends PropsWithChildren<unknown> {\n data?: E[];\n emptyContent?: ReactElement;\n omit?: K[];\n}\n\n/**\n * The main component for building a List. By itself, it does not render any HTML, and\n * should be used in conjunction with its sub-components (List.'X') to build a list\n * component to fit your needs.\n *\n * @param props - The props for the List component.\n * @param props.data - The data to be displayed in the list. The values of the object in\n * each entry of the array must satisfy the {@link RenderableValue} interface i.e. they\n * must be a primitive type or implement a 'toString' method.\n * @param props.children - Sub-components of the List component to add additional functionality.\n *\n */\nexport const List = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n children,\n data,\n emptyContent,\n omit,\n}: ListProps<K, E>): ReactElement => {\n const omittedData = useMemoCompare(\n () => (omit != null ? data?.filter((e) => !omit.includes(e.key)) : data),\n ([prevOmit, prevData], [omit, data]) => {\n let omitsEqual = false;\n if (prevOmit != null && omit != null)\n omitsEqual = compare.unorderedPrimitiveArrays(prevOmit, omit) === compare.EQUAL;\n else omitsEqual = prevOmit == omit;\n return prevData === data && omitsEqual;\n },\n [omit, data] as [K[] | undefined, E[] | undefined],\n );\n return (\n <InfiniteProvider>\n <DataProvider<K, E> data={omittedData} emptyContent={emptyContent}>\n {children}\n </DataProvider>\n </InfiniteProvider>\n );\n};\n"],"names":["useMemoCompare","omit","data","compare","jsx","InfiniteProvider","DataProvider"],"mappings":";;;;AAoCO,MAAM,OAAO,CAAqD;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqC;AACnC,QAAM,cAAcA,OAAA;AAAA,IAClB,MAAO,QAAQ,OAAO,6BAAM,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,IACnE,CAAC,CAAC,UAAU,QAAQ,GAAG,CAACC,OAAMC,KAAI,MAAM;AACtC,UAAI,aAAa;AACb,UAAA,YAAY,QAAQD,SAAQ;AAC9B,qBAAaE,WAAQ,EAAA,yBAAyB,UAAUF,KAAI,MAAME,WAAQ,EAAA;AAAA;AACvE,qBAAa,YAAYF;AAC9B,aAAO,aAAaC,SAAQ;AAAA,IAC9B;AAAA,IACA,CAAC,MAAM,IAAI;AAAA,EAAA;AAGX,SAAAE,2BAAA,kBAAA,IAACC,2BACC,UAACD,2BAAA,kBAAA,IAAAE,OAAA,cAAA,EAAmB,MAAM,aAAa,cACpC,SACH,CAAA,EACF,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"List-PlMTfEHi.cjs","sources":["../src/list/List.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 { useMemo, type PropsWithChildren, type ReactElement } from \"react\";\n\nimport { type Keyed, type Key, compare } from \"@synnaxlabs/x\";\n\nimport { DataProvider } from \"@/list/Data\";\nimport { InfiniteProvider } from \"@/list/Infinite\";\nimport { useMemoCompare } from \"@/memo\";\n\nexport interface ListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>>\n extends PropsWithChildren<unknown> {\n data?: E[];\n emptyContent?: ReactElement;\n omit?: K[];\n}\n\n/**\n * The main component for building a List. By itself, it does not render any HTML, and\n * should be used in conjunction with its sub-components (List.'X') to build a list\n * component to fit your needs.\n *\n * @param props - The props for the List component.\n * @param props.data - The data to be displayed in the list. The values of the object in\n * each entry of the array must satisfy the {@link RenderableValue} interface i.e. they\n * must be a primitive type or implement a 'toString' method.\n * @param props.children - Sub-components of the List component to add additional functionality.\n *\n */\nexport const List = <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({\n children,\n data,\n emptyContent,\n omit,\n}: ListProps<K, E>): ReactElement => {\n const omittedData = useMemoCompare(\n () => (omit != null ? data?.filter((e) => !omit.includes(e.key)) : data),\n ([prevOmit, prevData], [omit, data]) => {\n let omitsEqual = false;\n if (prevOmit != null && omit != null)\n omitsEqual = compare.unorderedPrimitiveArrays(prevOmit, omit) === compare.EQUAL;\n else omitsEqual = prevOmit == omit;\n return prevData === data && omitsEqual;\n },\n [omit, data] as [K[] | undefined, E[] | undefined],\n );\n return (\n <InfiniteProvider>\n <DataProvider<K, E> data={omittedData} emptyContent={emptyContent}>\n {children}\n </DataProvider>\n </InfiniteProvider>\n );\n};\n"],"names":["useMemoCompare","omit","data","compare","jsx","InfiniteProvider","DataProvider"],"mappings":";;;;AAoCO,MAAM,OAAO,CAAqD;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAqC;AACnC,QAAM,cAAcA,OAAA;AAAA,IAClB,MAAO,QAAQ,OAAO,6BAAM,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,GAAG,KAAK;AAAA,IACnE,CAAC,CAAC,UAAU,QAAQ,GAAG,CAACC,OAAMC,KAAI,MAAM;AACtC,UAAI,aAAa;AACb,UAAA,YAAY,QAAQD,SAAQ;AAC9B,qBAAaE,WAAQ,EAAA,yBAAyB,UAAUF,KAAI,MAAME,WAAQ,EAAA;AAAA;AACvE,qBAAa,YAAYF;AAC9B,aAAO,aAAaC,SAAQ;AAAA,IAC9B;AAAA,IACA,CAAC,MAAM,IAAI;AAAA,EAAA;AAGX,SAAAE,2BAAA,kBAAA,IAACC,2BACC,UAACD,2BAAA,kBAAA,IAAAE,OAAA,cAAA,EAAmB,MAAM,aAAa,cACpC,SACH,CAAA,EACF,CAAA;AAEJ;;"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
3
3
  const React = require("react");
4
- const aggregator = require("./aggregator-Ca8xiVD2.cjs");
4
+ const aggregator = require("./aggregator-BpfMBUD1.cjs");
5
5
  const css = require("./css-Pf9qxhQ4.cjs");
6
6
  const reactDom = require("react-dom");
7
7
  const Center = require("./Center-5NJ61qfA.cjs");
@@ -12202,6 +12202,7 @@ const ItemFrame = ({
12202
12202
  highlightHovered = false,
12203
12203
  translate,
12204
12204
  style,
12205
+ sourceIndex: _,
12205
12206
  ...props
12206
12207
  }) => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
12207
12208
  Center.Space,
@@ -57198,6 +57199,7 @@ const Provider$1 = wrap$1(
57198
57199
  schema: aggregator.Provider.z,
57199
57200
  initialState: { theme: ret.theme }
57200
57201
  });
57202
+ React.useEffect(() => setAetherTheme({ theme: ret.theme }), [ret.theme]);
57201
57203
  React.useLayoutEffect(() => {
57202
57204
  if (applyCSSVars)
57203
57205
  css.CSS.applyVars(document.documentElement, toCSSVars(ret.theme));
@@ -58205,19 +58207,35 @@ const Hover = ({
58205
58207
  if (hover3 >= data.length)
58206
58208
  setHover(0);
58207
58209
  }, [data.length]);
58210
+ const intervalRef = React.useRef(null);
58208
58211
  const handleTrigger = React.useCallback(
58209
58212
  ({ triggers, stage }) => {
58213
+ if (intervalRef.current != null) {
58214
+ clearInterval(intervalRef.current);
58215
+ intervalRef.current = null;
58216
+ }
58210
58217
  if (stage !== "start")
58211
58218
  return;
58212
58219
  if (disabled)
58213
58220
  return;
58214
58221
  const data2 = getData();
58215
- if (match(triggers, [UP_TRIGGER]))
58216
- setHover((pos) => pos === 0 ? data2.length - 1 : pos - 1);
58217
- else if (match(triggers, [DOWN_TRIGGER]))
58218
- setHover((pos) => pos === data2.length - 1 ? 0 : pos + 1);
58219
- else if (match(triggers, [SELECT_TRIGGER]))
58222
+ if (match(triggers, [SELECT_TRIGGER])) {
58223
+ if (hover3 === -1)
58224
+ return;
58220
58225
  onSelect == null ? void 0 : onSelect(data2[ref.current].key);
58226
+ return;
58227
+ }
58228
+ const move = () => {
58229
+ const data3 = getData();
58230
+ if (match(triggers, [UP_TRIGGER], true))
58231
+ setHover((pos) => pos === 0 ? data3.length - 1 : pos - 1);
58232
+ else if (match(triggers, [DOWN_TRIGGER], true))
58233
+ setHover((pos) => pos === data3.length - 1 ? 0 : pos + 1);
58234
+ };
58235
+ move();
58236
+ intervalRef.current = setTimeout(() => {
58237
+ intervalRef.current = setInterval(move, 100);
58238
+ }, 200);
58221
58239
  },
58222
58240
  [onSelect, disabled]
58223
58241
  );
@@ -58262,6 +58280,21 @@ const InfiniteProvider = ({ children }) => {
58262
58280
  );
58263
58281
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Context$3.Provider, { value: ctxValue, children: /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(UtilContext.Provider, { value: utilValue, children }) });
58264
58282
  };
58283
+ const scrollToRelevantChild = (hover3, prevHover, ref) => {
58284
+ var _a;
58285
+ const dirMultiplier = hover3 > prevHover ? 1 : -1;
58286
+ let scrollTo = hover3;
58287
+ const idealHover = hover3 + dirMultiplier * 2;
58288
+ if (css.L.contains({ lower: 0, upper: ref.children.length }, idealHover))
58289
+ scrollTo = hover3 + dirMultiplier * 2;
58290
+ else
58291
+ scrollTo = hover3;
58292
+ (_a = ref.children[scrollTo]) == null ? void 0 : _a.scrollIntoView({
58293
+ block: "nearest",
58294
+ inline: "nearest",
58295
+ behavior: "smooth"
58296
+ });
58297
+ };
58265
58298
  const VirtualCore = ({
58266
58299
  itemHeight,
58267
58300
  children,
@@ -58342,7 +58375,7 @@ const VirtualCore = ({
58342
58375
  );
58343
58376
  };
58344
58377
  const Core = ({
58345
- itemHeight: _,
58378
+ itemHeight = 50,
58346
58379
  ...props
58347
58380
  }) => {
58348
58381
  const {
@@ -58354,7 +58387,14 @@ const Core = ({
58354
58387
  const { hover: hover3 } = useHoverContext();
58355
58388
  const { selected } = useSelectionContext();
58356
58389
  const { onSelect } = useSelectionUtils();
58357
- return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Center.Space, { className: css.CSS.BE("list", "container"), size: 0, ...props, children: data.length === 0 ? emptyContent : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(jsxRuntime.jsxRuntimeExports.Fragment, { children: data.map((entry, index2) => {
58390
+ const ref = React.useRef(null);
58391
+ const prevHover = usePrevious(hover3) ?? 0;
58392
+ React.useLayoutEffect(() => {
58393
+ if (ref.current == null)
58394
+ return;
58395
+ scrollToRelevantChild(hover3, prevHover, ref.current);
58396
+ }, [hover3, itemHeight]);
58397
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Center.Space, { className: css.CSS.BE("list", "container"), ref, size: 0, ...props, children: data.length === 0 ? emptyContent : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(jsxRuntime.jsxRuntimeExports.Fragment, { children: data.map((entry, index2) => {
58358
58398
  let sourceIndex = index2;
58359
58399
  if (transformed)
58360
58400
  sourceIndex = sourceData.findIndex((e2) => e2.key === entry.key);
@@ -59437,4 +59477,4 @@ exports.useUniqueKey = useUniqueKey;
59437
59477
  exports.variantColors = variantColors;
59438
59478
  exports.wrap = wrap;
59439
59479
  exports.wrap$1 = wrap$1;
59440
- //# sourceMappingURL=Toggle-ClTExSi6.cjs.map
59480
+ //# sourceMappingURL=Toggle-C6Z8WPT3.cjs.map