@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.
- package/dist/{Keyboard-DD2KYOn6.cjs → Keyboard-DaFraUsQ.cjs} +2 -2
- package/dist/{Keyboard-DD2KYOn6.cjs.map → Keyboard-DaFraUsQ.cjs.map} +1 -1
- package/dist/{Keyboard-DCHQVLbP.js → Keyboard-nDIAR7Rj.js} +2 -2
- package/dist/{Keyboard-DCHQVLbP.js.map → Keyboard-nDIAR7Rj.js.map} +1 -1
- package/dist/{LinePlot-FmPnet-3.cjs → LinePlot-BZDm4uxJ.cjs} +3 -3
- package/dist/{LinePlot-FmPnet-3.cjs.map → LinePlot-BZDm4uxJ.cjs.map} +1 -1
- package/dist/{LinePlot-D3us1amT.js → LinePlot-tOiSUMjC.js} +3 -3
- package/dist/{LinePlot-D3us1amT.js.map → LinePlot-tOiSUMjC.js.map} +1 -1
- package/dist/{Link-DlYOVhHH.cjs → Link-BdWFvK8v.cjs} +2 -2
- package/dist/{Link-DlYOVhHH.cjs.map → Link-BdWFvK8v.cjs.map} +1 -1
- package/dist/{Link-D48KH--6.js → Link-d3CXVSaO.js} +2 -2
- package/dist/{Link-D48KH--6.js.map → Link-d3CXVSaO.js.map} +1 -1
- package/dist/{List-CUO-_-jL.js → List-DcsWFiLT.js} +3 -3
- package/dist/{List-CUO-_-jL.js.map → List-DcsWFiLT.js.map} +1 -1
- package/dist/{List-CUq1lENO.cjs → List-PlMTfEHi.cjs} +3 -3
- package/dist/{List-CUq1lENO.cjs.map → List-PlMTfEHi.cjs.map} +1 -1
- package/dist/{Toggle-ClTExSi6.cjs → Toggle-C6Z8WPT3.cjs} +49 -9
- package/dist/Toggle-C6Z8WPT3.cjs.map +1 -0
- package/dist/{Toggle-DozaP3Tx.js → Toggle-DGLgYCOX.js} +49 -9
- package/dist/Toggle-DGLgYCOX.js.map +1 -0
- package/dist/Video-DFtnAOYY.cjs +14 -0
- package/dist/Video-DFtnAOYY.cjs.map +1 -0
- package/dist/Video-SGhKphYR.js +15 -0
- package/dist/Video-SGhKphYR.js.map +1 -0
- package/dist/{aggregator-Dl2jHye5.js → aggregator-BgImZc4o.js} +220 -218
- package/dist/aggregator-BgImZc4o.js.map +1 -0
- package/dist/{aggregator-Ca8xiVD2.cjs → aggregator-BpfMBUD1.cjs} +204 -202
- package/dist/aggregator-BpfMBUD1.cjs.map +1 -0
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/color.cjs +1 -1
- package/dist/color.js +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/ether.cjs +2 -2
- package/dist/ether.js +4 -4
- package/dist/{external-Br3dSWZy.cjs → external-0PM7JrzG.cjs} +3 -3
- package/dist/{external-Br3dSWZy.cjs.map → external-0PM7JrzG.cjs.map} +1 -1
- package/dist/{external-Cq-yOszj.cjs → external-16K8slq8.cjs} +3 -3
- package/dist/{external-Cq-yOszj.cjs.map → external-16K8slq8.cjs.map} +1 -1
- package/dist/{external-BX1SuP7b.js → external-1osPryUV.js} +3 -3
- package/dist/{external-BX1SuP7b.js.map → external-1osPryUV.js.map} +1 -1
- package/dist/{external-BGyrJwT6.js → external-5przQjJD.js} +3 -3
- package/dist/{external-BGyrJwT6.js.map → external-5przQjJD.js.map} +1 -1
- package/dist/{external-Bw-gM1WS.js → external-96EinZfY.js} +3 -3
- package/dist/external-96EinZfY.js.map +1 -0
- package/dist/{external-CTg9-80v.cjs → external-B0z7uXZV.cjs} +3 -3
- package/dist/{external-CTg9-80v.cjs.map → external-B0z7uXZV.cjs.map} +1 -1
- package/dist/{external-DrUfLzJs.js → external-B3ly2-jy.js} +5 -5
- package/dist/{external-DrUfLzJs.js.map → external-B3ly2-jy.js.map} +1 -1
- package/dist/{external-DwY1uz6Y.js → external-BAdU6u03.js} +3 -3
- package/dist/{external-DwY1uz6Y.js.map → external-BAdU6u03.js.map} +1 -1
- package/dist/{external-JjFzMlTY.cjs → external-Blx0rtt2.cjs} +4 -4
- package/dist/{external-JjFzMlTY.cjs.map → external-Blx0rtt2.cjs.map} +1 -1
- package/dist/{external-DGEGrIB8.js → external-C6GmnG49.js} +4 -4
- package/dist/{external-DGEGrIB8.js.map → external-C6GmnG49.js.map} +1 -1
- package/dist/{external-BWNeNJEb.cjs → external-CPx8XA9-.cjs} +5 -5
- package/dist/{external-BWNeNJEb.cjs.map → external-CPx8XA9-.cjs.map} +1 -1
- package/dist/{external-jVPC18yY.js → external-CgMwmBnF.js} +3 -3
- package/dist/external-CgMwmBnF.js.map +1 -0
- package/dist/{external-rv9PfMM3.cjs → external-CsO29OsF.cjs} +5 -5
- package/dist/{external-rv9PfMM3.cjs.map → external-CsO29OsF.cjs.map} +1 -1
- package/dist/{external-gzESdEqw.cjs → external-Cu6T11fi.cjs} +8 -8
- package/dist/{external-gzESdEqw.cjs.map → external-Cu6T11fi.cjs.map} +1 -1
- package/dist/{external-DE-HpRm9.cjs → external-CzJYG1hX.cjs} +3 -3
- package/dist/external-CzJYG1hX.cjs.map +1 -0
- package/dist/{external-BbCvNSWY.cjs → external-D4ur_D1S.cjs} +3 -3
- package/dist/{external-BbCvNSWY.cjs.map → external-D4ur_D1S.cjs.map} +1 -1
- package/dist/{external-CsyhVOiV.cjs → external-D7XrxOVE.cjs} +3 -3
- package/dist/{external-CsyhVOiV.cjs.map → external-D7XrxOVE.cjs.map} +1 -1
- package/dist/{external-DWisAHYJ.js → external-DQkw1ko0.js} +3 -3
- package/dist/{external-DWisAHYJ.js.map → external-DQkw1ko0.js.map} +1 -1
- package/dist/{external-B0DCjEX5.js → external-DarqsFzT.js} +3 -3
- package/dist/{external-B0DCjEX5.js.map → external-DarqsFzT.js.map} +1 -1
- package/dist/{external-EIV24CTN.js → external-DeheWVb-.js} +8 -8
- package/dist/{external-EIV24CTN.js.map → external-DeheWVb-.js.map} +1 -1
- package/dist/{external-DX1JRejp.js → external-DiFhWWS-.js} +5 -5
- package/dist/{external-DX1JRejp.js.map → external-DiFhWWS-.js.map} +1 -1
- package/dist/{external-VofAmo6_.cjs → external-DvGqQHd8.cjs} +3 -3
- package/dist/external-DvGqQHd8.cjs.map +1 -0
- package/dist/header.cjs +1 -1
- package/dist/header.js +1 -1
- package/dist/index.cjs +16 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +31 -31
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/src/list/Core.d.ts +1 -1
- package/dist/src/list/Core.d.ts.map +1 -1
- package/dist/src/list/Hover.d.ts.map +1 -1
- package/dist/src/list/Item.d.ts +1 -1
- package/dist/src/list/Item.d.ts.map +1 -1
- package/dist/src/video/Video.d.ts +2 -2
- package/dist/src/video/Video.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/theming.cjs +2 -2
- package/dist/theming.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/triggers.cjs +1 -1
- package/dist/triggers.js +1 -1
- package/dist/video.cjs +1 -1
- package/dist/video.js +1 -1
- package/package.json +3 -3
- package/dist/Toggle-ClTExSi6.cjs.map +0 -1
- package/dist/Toggle-DozaP3Tx.js.map +0 -1
- package/dist/Video-B1oW8NLd.js +0 -11
- package/dist/Video-B1oW8NLd.js.map +0 -1
- package/dist/Video-BGNx94bQ.cjs +0 -10
- package/dist/Video-BGNx94bQ.cjs.map +0 -1
- package/dist/aggregator-Ca8xiVD2.cjs.map +0 -1
- package/dist/aggregator-Dl2jHye5.js.map +0 -1
- package/dist/external-Bw-gM1WS.js.map +0 -1
- package/dist/external-DE-HpRm9.cjs.map +0 -1
- package/dist/external-VofAmo6_.cjs.map +0 -1
- package/dist/external-jVPC18yY.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const Toggle = require("./Toggle-
|
|
3
|
-
const aggregator = require("./aggregator-
|
|
4
|
-
const Keyboard = require("./Keyboard-
|
|
2
|
+
const Toggle = require("./Toggle-C6Z8WPT3.cjs");
|
|
3
|
+
const aggregator = require("./aggregator-BpfMBUD1.cjs");
|
|
4
|
+
const Keyboard = require("./Keyboard-DaFraUsQ.cjs");
|
|
5
5
|
const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
|
|
6
6
|
const React = require("react");
|
|
7
7
|
const Center = require("./Center-5NJ61qfA.cjs");
|
|
8
8
|
const css = require("./css-Pf9qxhQ4.cjs");
|
|
9
|
-
const List = require("./List-
|
|
9
|
+
const List = require("./List-PlMTfEHi.cjs");
|
|
10
10
|
const DEFAULT_COLUMNS = [];
|
|
11
11
|
const Core = ({
|
|
12
12
|
data,
|
|
@@ -216,4 +216,4 @@ exports.DropdownButton = DropdownButton;
|
|
|
216
216
|
exports.SelectLevel = SelectLevel;
|
|
217
217
|
exports.defaultButton = defaultButton;
|
|
218
218
|
exports.external = external;
|
|
219
|
-
//# sourceMappingURL=external-
|
|
219
|
+
//# sourceMappingURL=external-CsO29OsF.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-rv9PfMM3.cjs","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","CSS","CoreList.Hover","CoreList.Column","CoreList.Core","componentRenderProp","useSelect","Align.Pack","CoreButton.Button","Icon","Dropdown.use","useState","useEffect","useCallback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"external-CsO29OsF.cjs","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","CSS","CoreList.Hover","CoreList.Column","CoreList.Core","componentRenderProp","useSelect","Align.Pack","CoreButton.Button","Icon","Dropdown.use","useState","useEffect","useCallback"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const Toggle = require("./Toggle-
|
|
2
|
+
const Toggle = require("./Toggle-C6Z8WPT3.cjs");
|
|
3
3
|
const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
|
|
4
4
|
const React = require("react");
|
|
5
|
-
require("./aggregator-
|
|
5
|
+
require("./aggregator-BpfMBUD1.cjs");
|
|
6
6
|
const css = require("./css-Pf9qxhQ4.cjs");
|
|
7
7
|
const Center = require("./Center-5NJ61qfA.cjs");
|
|
8
|
-
const Keyboard = require("./Keyboard-
|
|
8
|
+
const Keyboard = require("./Keyboard-DaFraUsQ.cjs");
|
|
9
9
|
const Status = (props) => {
|
|
10
10
|
const { listen } = Toggle.useContext$1();
|
|
11
11
|
const [trigger, setTrigger] = React.useState([]);
|
|
@@ -58,13 +58,13 @@ const useDrag = ({
|
|
|
58
58
|
Toggle.use$2({ triggers, callback: handleTrigger, region: bound, loose });
|
|
59
59
|
};
|
|
60
60
|
const CUSTOM_TEXT = {
|
|
61
|
-
Control: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.Symbols.Meta, {}),
|
|
62
|
-
Alt: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.Symbols.Alt, {}),
|
|
63
|
-
Shift: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.m0.Keyboard.Shift, {}),
|
|
61
|
+
Control: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.Symbols.Meta, {}, "control"),
|
|
62
|
+
Alt: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.Symbols.Alt, {}, "alt"),
|
|
63
|
+
Shift: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.m0.Keyboard.Shift, {}, "shift"),
|
|
64
64
|
MouseLeft: "Left Click",
|
|
65
65
|
MouseRight: "Right Click",
|
|
66
66
|
MouseMiddle: "Middle Click",
|
|
67
|
-
Enter: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.m0.Keyboard.Return, {})
|
|
67
|
+
Enter: () => /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(Toggle.m0.Keyboard.Return, {}, "enter")
|
|
68
68
|
};
|
|
69
69
|
const getCustomText = (trigger) => {
|
|
70
70
|
const t = CUSTOM_TEXT[trigger];
|
|
@@ -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-
|
|
121
|
+
//# sourceMappingURL=external-Cu6T11fi.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-
|
|
1
|
+
{"version":3,"file":"external-Cu6T11fi.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 key=\"control\" />,\n Alt: () => <Core.Symbols.Alt key=\"alt\" />,\n Shift: () => <Icon.Keyboard.Shift key=\"shift\" />,\n MouseLeft: \"Left Click\",\n MouseRight: \"Right Click\",\n MouseMiddle: \"Middle Click\",\n Enter: () => <Icon.Keyboard.Return key=\"enter\" />,\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,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const Toggle = require("./Toggle-
|
|
3
|
-
const Link = require("./Link-
|
|
2
|
+
const Toggle = require("./Toggle-C6Z8WPT3.cjs");
|
|
3
|
+
const Link = require("./Link-BdWFvK8v.cjs");
|
|
4
4
|
const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
5
5
|
__proto__: null,
|
|
6
6
|
Button: Toggle.Button,
|
|
@@ -10,4 +10,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
|
|
|
10
10
|
ToggleIcon: Toggle.ToggleIcon
|
|
11
11
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
12
12
|
exports.external = external;
|
|
13
|
-
//# sourceMappingURL=external-
|
|
13
|
+
//# sourceMappingURL=external-CzJYG1hX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-CzJYG1hX.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -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-
|
|
4
|
+
const Toggle = require("./Toggle-C6Z8WPT3.cjs");
|
|
5
5
|
const React = require("react");
|
|
6
|
-
require("./aggregator-
|
|
6
|
+
require("./aggregator-BpfMBUD1.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-
|
|
107
|
+
//# sourceMappingURL=external-D4ur_D1S.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-
|
|
1
|
+
{"version":3,"file":"external-D4ur_D1S.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,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
|
|
3
|
-
const Toggle = require("./Toggle-
|
|
4
|
-
const Link = require("./Link-
|
|
3
|
+
const Toggle = require("./Toggle-C6Z8WPT3.cjs");
|
|
4
|
+
const Link = require("./Link-BdWFvK8v.cjs");
|
|
5
5
|
const css = require("./css-Pf9qxhQ4.cjs");
|
|
6
6
|
const React = require("react");
|
|
7
7
|
const MenuContext = React.createContext({
|
|
@@ -74,4 +74,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
|
|
|
74
74
|
useMenuContext
|
|
75
75
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76
76
|
exports.external = external;
|
|
77
|
-
//# sourceMappingURL=external-
|
|
77
|
+
//# sourceMappingURL=external-D7XrxOVE.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-
|
|
1
|
+
{"version":3,"file":"external-D7XrxOVE.cjs","sources":["../src/menu/Menu.tsx","../src/menu/Item.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 {\n createContext,\n type PropsWithChildren,\n type ReactElement,\n useContext,\n} from \"react\";\n\nimport { type Input } from \"@/input\";\nimport { type Text } from \"@/text\";\nimport { type ComponentSize } from \"@/util/component\";\n\ninterface MenuContextValue {\n onClick: (key: string) => void;\n selected: string;\n level?: Text.Level;\n iconSpacing?: ComponentSize;\n}\n\nexport const MenuContext = createContext<MenuContextValue>({\n onClick: () => {},\n selected: \"\",\n});\n\nexport interface MenuProps\n extends Partial<Input.Control<string>>,\n PropsWithChildren,\n Pick<MenuContextValue, \"level\" | \"iconSpacing\"> {}\n\nexport const useMenuContext = (): MenuContextValue => useContext(MenuContext);\n\n/**\n * Menu is a modular component that allows you to create a menu with a list of items.\n * It satisfies the InputControl string interface, so it's selected value can be\n * controlled.\n *\n * @param props - Props for the component. All unlisted props will be spread to the\n * underlying Space component acting as the root element.\n * @param props.onChange - Callback executed when the selected item changes.\n * @param props.value - The selected item.\n */\nexport const Menu = ({\n children,\n onChange,\n level,\n iconSpacing,\n value = \"\",\n}: MenuProps): ReactElement => {\n const handleClick: MenuProps[\"onChange\"] = (key) => onChange?.(key);\n return (\n <MenuContext.Provider\n value={{ onClick: handleClick, selected: value, level, iconSpacing }}\n >\n {children}\n </MenuContext.Provider>\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 FunctionComponent, type ReactElement } from \"react\";\n\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { useMenuContext } from \"@/menu/Menu\";\n\nimport \"@/menu/Item.css\";\n\nconst menuItemFactory =\n <E extends Pick<Button.ButtonProps, \"className\" | \"onClick\" | \"size\">>(\n Base: FunctionComponent<E>,\n defaultProps?: Partial<E>,\n ): FunctionComponent<E & { itemKey: string }> =>\n // eslint-disable-next-line react/display-name\n (props): ReactElement => {\n const { itemKey, className, onClick, size, ...rest } = {\n ...defaultProps,\n ...props,\n };\n\n const { onClick: ctxOnClick, selected, level, iconSpacing } = useMenuContext();\n\n const handleClick: Button.ButtonProps[\"onClick\"] = (e) => {\n ctxOnClick(itemKey);\n onClick?.(e);\n };\n const _selected = selected === itemKey;\n return (\n // @ts-expect-error\n <Base\n level={level}\n {...rest}\n onClick={handleClick}\n variant=\"text\"\n className={CSS(CSS.B(\"menu-item\"), CSS.selected(_selected), className)}\n size={size ?? iconSpacing}\n />\n );\n };\n\nexport interface ItemProps extends Button.ButtonProps {\n itemKey: string;\n}\nexport const CoreItem = menuItemFactory(Button.Button, { noWrap: true });\n\nexport interface ItemIconProps extends Button.IconProps {\n itemKey: string;\n}\nconst ItemIcon = menuItemFactory(Button.Icon);\n\nconst ItemLink = menuItemFactory(Button.Link, { noWrap: true });\nexport interface MenuItemLinkProps extends Button.LinkProps {\n itemKey: string;\n}\n\ntype CoreItemType = typeof CoreItem;\n\nexport interface ItemType extends CoreItemType {\n Icon: typeof ItemIcon;\n Link: typeof ItemLink;\n}\n\n/**\n * Menu.Item renders a menu item.\n *\n * @param props - Props for the component. Identical props to those of Use except\n * for the ones listed below.\n * @param props.itemKey - The key of the item. This is used to identify the item and\n * is passed to the onChange callback of the Menu.\n */\nexport const Item = CoreItem as ItemType;\nItem.Icon = ItemIcon;\nItem.Link = ItemLink;\n"],"names":["createContext","useContext","jsx","CSS","Button.Button","Button.Icon","Button.Link"],"mappings":";;;;;;AA2BO,MAAM,cAAcA,MAAAA,cAAgC;AAAA,EACzD,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,UAAU;AACZ,CAAC;AAOY,MAAA,iBAAiB,MAAwBC,iBAAW,WAAW;AAYrE,MAAM,OAAO,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AACV,MAA+B;AAC7B,QAAM,cAAqC,CAAC,QAAQ,qCAAW;AAE7D,SAAAC,2BAAA,kBAAA;AAAA,IAAC,YAAY;AAAA,IAAZ;AAAA,MACC,OAAO,EAAE,SAAS,aAAa,UAAU,OAAO,OAAO,YAAY;AAAA,MAElE;AAAA,IAAA;AAAA,EAAA;AAGP;AC/CA,MAAM,kBACJ,CACE,MACA;AAAA;AAAA,EAGF,CAAC,UAAwB;AACvB,UAAM,EAAE,SAAS,WAAW,SAAS,MAAM,GAAG,SAAS;AAAA,MACrD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAGL,UAAM,EAAE,SAAS,YAAY,UAAU,OAAO,YAAA,IAAgB;AAExD,UAAA,cAA6C,CAAC,MAAM;AACxD,iBAAW,OAAO;AAClB,yCAAU;AAAA,IAAC;AAEb,UAAM,YAAY,aAAa;AAC/B;AAAA;AAAA,MAEEA,2BAAA,kBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACC,GAAG;AAAA,UACJ,SAAS;AAAA,UACT,SAAQ;AAAA,UACR,WAAWC,IAAAA,IAAIA,IAAA,IAAI,EAAE,WAAW,GAAGA,IAAAA,IAAI,SAAS,SAAS,GAAG,SAAS;AAAA,UACrE,MAAM,QAAQ;AAAA,QAAA;AAAA,MAChB;AAAA;AAAA,EAEJ;AAAA;AAKK,MAAM,WAAW,gBAAgBC,eAAe,EAAE,QAAQ,KAAM,CAAA;AAKvE,MAAM,WAAW,gBAAgBC,OAAAA,IAAW;AAE5C,MAAM,WAAW,gBAAgBC,WAAa,EAAE,QAAQ,KAAM,CAAA;AAoBvD,MAAM,OAAO;AACpB,KAAK,OAAO;AACZ,KAAK,OAAO;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
|
|
2
|
-
import { B as Button, I as Icon, C as CONTEXT_SELECTED, q as CONTEXT_TARGET, r as ContextMenu, s as useContextMenu } from "./Toggle-
|
|
3
|
-
import { L as Link } from "./Link-
|
|
2
|
+
import { B as Button, I as Icon, C as CONTEXT_SELECTED, q as CONTEXT_TARGET, r as ContextMenu, s as useContextMenu } from "./Toggle-DGLgYCOX.js";
|
|
3
|
+
import { L as Link } from "./Link-d3CXVSaO.js";
|
|
4
4
|
import { C as CSS } from "./css-DoalWJF6.js";
|
|
5
5
|
import { createContext, useContext } from "react";
|
|
6
6
|
const MenuContext = createContext({
|
|
@@ -75,4 +75,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
|
|
|
75
75
|
export {
|
|
76
76
|
external as e
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=external-
|
|
78
|
+
//# sourceMappingURL=external-DQkw1ko0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-
|
|
1
|
+
{"version":3,"file":"external-DQkw1ko0.js","sources":["../src/menu/Menu.tsx","../src/menu/Item.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 {\n createContext,\n type PropsWithChildren,\n type ReactElement,\n useContext,\n} from \"react\";\n\nimport { type Input } from \"@/input\";\nimport { type Text } from \"@/text\";\nimport { type ComponentSize } from \"@/util/component\";\n\ninterface MenuContextValue {\n onClick: (key: string) => void;\n selected: string;\n level?: Text.Level;\n iconSpacing?: ComponentSize;\n}\n\nexport const MenuContext = createContext<MenuContextValue>({\n onClick: () => {},\n selected: \"\",\n});\n\nexport interface MenuProps\n extends Partial<Input.Control<string>>,\n PropsWithChildren,\n Pick<MenuContextValue, \"level\" | \"iconSpacing\"> {}\n\nexport const useMenuContext = (): MenuContextValue => useContext(MenuContext);\n\n/**\n * Menu is a modular component that allows you to create a menu with a list of items.\n * It satisfies the InputControl string interface, so it's selected value can be\n * controlled.\n *\n * @param props - Props for the component. All unlisted props will be spread to the\n * underlying Space component acting as the root element.\n * @param props.onChange - Callback executed when the selected item changes.\n * @param props.value - The selected item.\n */\nexport const Menu = ({\n children,\n onChange,\n level,\n iconSpacing,\n value = \"\",\n}: MenuProps): ReactElement => {\n const handleClick: MenuProps[\"onChange\"] = (key) => onChange?.(key);\n return (\n <MenuContext.Provider\n value={{ onClick: handleClick, selected: value, level, iconSpacing }}\n >\n {children}\n </MenuContext.Provider>\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 FunctionComponent, type ReactElement } from \"react\";\n\nimport { Button } from \"@/button\";\nimport { CSS } from \"@/css\";\nimport { useMenuContext } from \"@/menu/Menu\";\n\nimport \"@/menu/Item.css\";\n\nconst menuItemFactory =\n <E extends Pick<Button.ButtonProps, \"className\" | \"onClick\" | \"size\">>(\n Base: FunctionComponent<E>,\n defaultProps?: Partial<E>,\n ): FunctionComponent<E & { itemKey: string }> =>\n // eslint-disable-next-line react/display-name\n (props): ReactElement => {\n const { itemKey, className, onClick, size, ...rest } = {\n ...defaultProps,\n ...props,\n };\n\n const { onClick: ctxOnClick, selected, level, iconSpacing } = useMenuContext();\n\n const handleClick: Button.ButtonProps[\"onClick\"] = (e) => {\n ctxOnClick(itemKey);\n onClick?.(e);\n };\n const _selected = selected === itemKey;\n return (\n // @ts-expect-error\n <Base\n level={level}\n {...rest}\n onClick={handleClick}\n variant=\"text\"\n className={CSS(CSS.B(\"menu-item\"), CSS.selected(_selected), className)}\n size={size ?? iconSpacing}\n />\n );\n };\n\nexport interface ItemProps extends Button.ButtonProps {\n itemKey: string;\n}\nexport const CoreItem = menuItemFactory(Button.Button, { noWrap: true });\n\nexport interface ItemIconProps extends Button.IconProps {\n itemKey: string;\n}\nconst ItemIcon = menuItemFactory(Button.Icon);\n\nconst ItemLink = menuItemFactory(Button.Link, { noWrap: true });\nexport interface MenuItemLinkProps extends Button.LinkProps {\n itemKey: string;\n}\n\ntype CoreItemType = typeof CoreItem;\n\nexport interface ItemType extends CoreItemType {\n Icon: typeof ItemIcon;\n Link: typeof ItemLink;\n}\n\n/**\n * Menu.Item renders a menu item.\n *\n * @param props - Props for the component. Identical props to those of Use except\n * for the ones listed below.\n * @param props.itemKey - The key of the item. This is used to identify the item and\n * is passed to the onChange callback of the Menu.\n */\nexport const Item = CoreItem as ItemType;\nItem.Icon = ItemIcon;\nItem.Link = ItemLink;\n"],"names":["jsx","Button.Button","Button.Icon","Button.Link"],"mappings":";;;;;AA2BO,MAAM,cAAc,cAAgC;AAAA,EACzD,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,UAAU;AACZ,CAAC;AAOY,MAAA,iBAAiB,MAAwB,WAAW,WAAW;AAYrE,MAAM,OAAO,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AACV,MAA+B;AAC7B,QAAM,cAAqC,CAAC,QAAQ,qCAAW;AAE7D,SAAAA,kCAAA;AAAA,IAAC,YAAY;AAAA,IAAZ;AAAA,MACC,OAAO,EAAE,SAAS,aAAa,UAAU,OAAO,OAAO,YAAY;AAAA,MAElE;AAAA,IAAA;AAAA,EAAA;AAGP;AC/CA,MAAM,kBACJ,CACE,MACA;AAAA;AAAA,EAGF,CAAC,UAAwB;AACvB,UAAM,EAAE,SAAS,WAAW,SAAS,MAAM,GAAG,SAAS;AAAA,MACrD,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAGL,UAAM,EAAE,SAAS,YAAY,UAAU,OAAO,YAAA,IAAgB;AAExD,UAAA,cAA6C,CAAC,MAAM;AACxD,iBAAW,OAAO;AAClB,yCAAU;AAAA,IAAC;AAEb,UAAM,YAAY,aAAa;AAC/B;AAAA;AAAA,MAEEA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACC,GAAG;AAAA,UACJ,SAAS;AAAA,UACT,SAAQ;AAAA,UACR,WAAW,IAAI,IAAI,EAAE,WAAW,GAAG,IAAI,SAAS,SAAS,GAAG,SAAS;AAAA,UACrE,MAAM,QAAQ;AAAA,QAAA;AAAA,MAChB;AAAA;AAAA,EAEJ;AAAA;AAKK,MAAM,WAAW,gBAAgBC,QAAe,EAAE,QAAQ,KAAM,CAAA;AAKvE,MAAM,WAAW,gBAAgBC,IAAW;AAE5C,MAAM,WAAW,gBAAgBC,MAAa,EAAE,QAAQ,KAAM,CAAA;AAoBvD,MAAM,OAAO;AACpB,KAAK,OAAO;AACZ,KAAK,OAAO;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { C as CSS, a as Color, Z as ZERO, c as cssString, f as fromHSLA, t as toHex } from "./css-DoalWJF6.js";
|
|
2
2
|
import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
|
|
3
|
-
import { i as SketchPicker, j as use, u as use$1, k as useDraggingState, l as filterByType, m as useDragAndDrop, B as Button, e as Text, n as Dialog } from "./Toggle-
|
|
3
|
+
import { i as SketchPicker, j as use, u as use$1, k as useDraggingState, l as filterByType, m as useDragAndDrop, B as Button, e as Text, n as Dialog } from "./Toggle-DGLgYCOX.js";
|
|
4
4
|
import { useCallback } from "react";
|
|
5
|
-
import "./aggregator-
|
|
5
|
+
import "./aggregator-BgImZc4o.js";
|
|
6
6
|
import "./Center-hbwH7rg9.js";
|
|
7
7
|
const Picker = ({ value, onChange, ...props }) => {
|
|
8
8
|
const handleChange = (res) => {
|
|
@@ -105,4 +105,4 @@ export {
|
|
|
105
105
|
Swatch as S,
|
|
106
106
|
external as e
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=external-
|
|
108
|
+
//# sourceMappingURL=external-DarqsFzT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-
|
|
1
|
+
{"version":3,"file":"external-DarqsFzT.js","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","Dropdown.use","Theming.use","Haul.useDraggingState","Haul.filterByType","Haul.useDragAndDrop","Button.Button","color.cssString","Text.Text","jsxs","Dropdown.Dialog"],"mappings":";;;;;;AAuBO,MAAM,SAAS,CAAC,EAAE,OAAO,UAAU,GAAG,YAAuC;AAC5E,QAAA,eAAe,CAAC,QAA2B;AAC/C,QAAI,IAAI,QAAQ;AAAe,eAASA,IAAU;AACzC,aAAA,IAAIC,MAAY,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC;AAAA,EAAA;AAI5C,SAAAC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,IAAI,EAAE,cAAc;AAAA,MAC/B,OAAO,IAAID,MAAY,KAAK,EAAE;AAAA,MAC9B,UAAU;AAAA,MACV,cAAc,CAAC;AAAA,MACd,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;ACRA,MAAM,YAAY;AAEX,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,GAAG;AACL,MAAiC;AACzB,QAAA,EAAE,SAAS,MAAM,MAAM,IAAIE,IAAa,EAAE,iBAAiB,eAAA,CAAgB;AAEjF,QAAM,KAAKC,MAAY,EAAE,OAAO,KAAK;AAErC,QAAM,IAAI,IAAIH,MAAY,KAAK;AAEzB,QAAA,WAAWI;AAEjB,QAAM,UAAwB;AAAA,IAC5B,CAAC,EAAE,MAAA,MAAY;AACb,YAAM,CAAC,CAAC,IAAIC,aAAkB,WAAW,KAAK;AAC9C,aAAO,KAAK,QAAQ,EAAE,QAAQ,EAAE;AAAA,IAClC;AAAA,IACA,CAAC,EAAE,GAAG;AAAA,EAAA;AAGR,QAAM,EAAE,WAAW,GAAG,UAAU,IAAIC,eAAoB;AAAA,IACtD,MAAM;AAAA,IACN,QAAQ,CAAC,EAAE,YAAY;AACrB,YAAM,UAAUD,aAAkB,WAAW,KAAK;AAClD,UAAI,MAAM,SAAS;AAAG,6CAAW,IAAIL,MAAY,QAAQ,CAAC,EAAE,GAAa;AAClE,aAAA;AAAA,IACT;AAAA,IACA;AAAA,EAAA,CACD;AAED,QAAM,SACJC,kCAAA;AAAA,IAACM;AAAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,IAAI,EAAE,cAAc;AAAA,QACpB,IAAI,KAAK,IAAI;AAAA,QACb,EAAE,SAAS,EAAE,IAAI,OAAO,EAAE,IAAI,OAAO,IAAI,EAAE,WAAW;AAAA,QACtD,IAAI,WAAW,QAAQ,QAAQ,CAAC;AAAA,QAChC;AAAA,MACF;AAAA,MACA;AAAA,MACA,aAAa,MAAM,UAAU,CAAC,EAAE,MAAM,WAAW,KAAK,EAAE,IAAI,CAAC,CAAC;AAAA,MAC9D,OAAO,EAAE,iBAAiBC,UAAgB,KAAK,EAAE;AAAA,MACjD,SAAQ;AAAA,MACR,SAAS;AAAA,MACT;AAAA,MACA,SACE,YAAY,OACTP,kCAAAA,IAAAQ,MAAA,EAAU,OAAM,SAAQ,UAAA,wBAAqB,CAAA,IAC5C;AAAA,MAEL,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EAAA;AAIR,MAAI,YAAY;AAAa,WAAA;AAG3B,SAAAC,kCAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,IAAI,GAAG,gBAAgB,UAAU;AAAA,MAC5C,aAAa;AAAA,MACb,SAAQ;AAAA,MAEP,UAAA;AAAA,QAAA;AAAA,QACDV,kCAAAA,IAAC,QAAO,EAAA,OAAc,SAAoB,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhD;;;;;;;;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { V as useContext, e as Text$1, X as use, Q as Symbols, p as m0, Y as ALPHANUMERIC_KEYS, Z as ALPHANUMERIC_KEYS_SET, _ as KEYS, $ as MOUSE_KEYS, a0 as Provider, a1 as compareModeConfigs, a2 as determineMode, a3 as diff, a4 as eventKey, a5 as filter, a6 as flattenConfig, a7 as keyZ, a8 as keyboardKey, a9 as match, aa as mouseKey, ab as mouseKeyZ, ac as purge, ad as purgeMouse, ae as triggerZ, af as useFlattenedMemoConfig, ag as useHeld, y as useHeldRef } from "./Toggle-
|
|
1
|
+
import { V as useContext, e as Text$1, X as use, Q as Symbols, p as m0, Y as ALPHANUMERIC_KEYS, Z as ALPHANUMERIC_KEYS_SET, _ as KEYS, $ as MOUSE_KEYS, a0 as Provider, a1 as compareModeConfigs, a2 as determineMode, a3 as diff, a4 as eventKey, a5 as filter, a6 as flattenConfig, a7 as keyZ, a8 as keyboardKey, a9 as match, aa as mouseKey, ab as mouseKeyZ, ac as purge, ad as purgeMouse, ae as triggerZ, af as useFlattenedMemoConfig, ag as useHeld, y as useHeldRef } from "./Toggle-DGLgYCOX.js";
|
|
2
2
|
import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
|
|
3
3
|
import { useState, useEffect, useRef, useCallback } from "react";
|
|
4
|
-
import "./aggregator-
|
|
4
|
+
import "./aggregator-BgImZc4o.js";
|
|
5
5
|
import { q, T as To } from "./css-DoalWJF6.js";
|
|
6
6
|
import { S as Space } from "./Center-hbwH7rg9.js";
|
|
7
|
-
import { K as Keyboard } from "./Keyboard-
|
|
7
|
+
import { K as Keyboard } from "./Keyboard-nDIAR7Rj.js";
|
|
8
8
|
const Status = (props) => {
|
|
9
9
|
const { listen } = useContext();
|
|
10
10
|
const [trigger, setTrigger] = useState([]);
|
|
@@ -57,13 +57,13 @@ const useDrag = ({
|
|
|
57
57
|
use({ triggers, callback: handleTrigger, region: bound, loose });
|
|
58
58
|
};
|
|
59
59
|
const CUSTOM_TEXT = {
|
|
60
|
-
Control: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Symbols.Meta, {}),
|
|
61
|
-
Alt: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Symbols.Alt, {}),
|
|
62
|
-
Shift: () => /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Keyboard.Shift, {}),
|
|
60
|
+
Control: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Symbols.Meta, {}, "control"),
|
|
61
|
+
Alt: () => /* @__PURE__ */ jsxRuntimeExports.jsx(Symbols.Alt, {}, "alt"),
|
|
62
|
+
Shift: () => /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Keyboard.Shift, {}, "shift"),
|
|
63
63
|
MouseLeft: "Left Click",
|
|
64
64
|
MouseRight: "Right Click",
|
|
65
65
|
MouseMiddle: "Middle Click",
|
|
66
|
-
Enter: () => /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Keyboard.Return, {})
|
|
66
|
+
Enter: () => /* @__PURE__ */ jsxRuntimeExports.jsx(m0.Keyboard.Return, {}, "enter")
|
|
67
67
|
};
|
|
68
68
|
const getCustomText = (trigger) => {
|
|
69
69
|
const t = CUSTOM_TEXT[trigger];
|
|
@@ -119,4 +119,4 @@ export {
|
|
|
119
119
|
external as e,
|
|
120
120
|
useDrag as u
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=external-
|
|
122
|
+
//# sourceMappingURL=external-DeheWVb-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-
|
|
1
|
+
{"version":3,"file":"external-DeheWVb-.js","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 key=\"control\" />,\n Alt: () => <Core.Symbols.Alt key=\"alt\" />,\n Shift: () => <Icon.Keyboard.Shift key=\"shift\" />,\n MouseLeft: \"Left Click\",\n MouseRight: \"Right Click\",\n MouseMiddle: \"Middle Click\",\n Enter: () => <Icon.Keyboard.Return key=\"enter\" />,\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":["trigger","jsx","Text.Text","xy","triggers","box","Core.Symbols","Icon","Align.Space","Core.Keyboard"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-mMz73N64.js";
|
|
2
2
|
import { memo, useState, useCallback, useMemo } from "react";
|
|
3
|
-
import { p as m0, v as useSelectionUtils, w as useDataUtilContext, m as useDragAndDrop, q as CONTEXT_TARGET, C as CONTEXT_SELECTED, M as MaybeEditable, x as useCombinedStateAndRef, o as useSyncedRef, y as useHeldRef, B as Button, z as Core, A as Selector, F as edit, G as componentRenderProp } from "./Toggle-
|
|
4
|
-
import { L as Link } from "./Link-
|
|
3
|
+
import { p as m0, v as useSelectionUtils, w as useDataUtilContext, m as useDragAndDrop, q as CONTEXT_TARGET, C as CONTEXT_SELECTED, M as MaybeEditable, x as useCombinedStateAndRef, o as useSyncedRef, y as useHeldRef, B as Button, z as Core, A as Selector, F as edit, G as componentRenderProp } from "./Toggle-DGLgYCOX.js";
|
|
4
|
+
import { L as Link } from "./Link-d3CXVSaO.js";
|
|
5
5
|
import { C as CSS } from "./css-DoalWJF6.js";
|
|
6
|
-
import { A, i as usePassthrough } from "./aggregator-
|
|
6
|
+
import { A, i as usePassthrough } from "./aggregator-BgImZc4o.js";
|
|
7
7
|
import "./Center-hbwH7rg9.js";
|
|
8
|
-
import { L as List } from "./List-
|
|
8
|
+
import { L as List } from "./List-DcsWFiLT.js";
|
|
9
9
|
const shouldExpand = (node, expanded) => expanded.includes(node.key);
|
|
10
10
|
const sortAndSplice = (nodes, sort) => {
|
|
11
11
|
if (sort) {
|
|
@@ -369,4 +369,4 @@ const external = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
|
|
|
369
369
|
export {
|
|
370
370
|
external as e
|
|
371
371
|
};
|
|
372
|
-
//# sourceMappingURL=external-
|
|
372
|
+
//# sourceMappingURL=external-DiFhWWS-.js.map
|