@synnaxlabs/pluto 0.21.5 → 0.21.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/{Keyboard-BqO4SYSr.js → Keyboard-DCHQVLbP.js} +2 -2
  2. package/dist/{Keyboard-BqO4SYSr.js.map → Keyboard-DCHQVLbP.js.map} +1 -1
  3. package/dist/{Keyboard-CsgjS96C.cjs → Keyboard-DD2KYOn6.cjs} +2 -2
  4. package/dist/{Keyboard-CsgjS96C.cjs.map → Keyboard-DD2KYOn6.cjs.map} +1 -1
  5. package/dist/{Link-BaPpY2rf.js → Link-D48KH--6.js} +2 -2
  6. package/dist/{Link-BaPpY2rf.js.map → Link-D48KH--6.js.map} +1 -1
  7. package/dist/{Link-B6B7MB7O.cjs → Link-DlYOVhHH.cjs} +2 -2
  8. package/dist/{Link-B6B7MB7O.cjs.map → Link-DlYOVhHH.cjs.map} +1 -1
  9. package/dist/{List-aJEsDHql.js → List-CUO-_-jL.js} +2 -2
  10. package/dist/{List-aJEsDHql.js.map → List-CUO-_-jL.js.map} +1 -1
  11. package/dist/{List-J5T88ynF.cjs → List-CUq1lENO.cjs} +2 -2
  12. package/dist/{List-J5T88ynF.cjs.map → List-CUq1lENO.cjs.map} +1 -1
  13. package/dist/{Toggle-CAW20E9V.cjs → Toggle-ClTExSi6.cjs} +4 -4
  14. package/dist/{Toggle-CAW20E9V.cjs.map → Toggle-ClTExSi6.cjs.map} +1 -1
  15. package/dist/{Toggle-DcOiWiHG.js → Toggle-DozaP3Tx.js} +4 -4
  16. package/dist/{Toggle-DcOiWiHG.js.map → Toggle-DozaP3Tx.js.map} +1 -1
  17. package/dist/button.cjs +1 -1
  18. package/dist/button.js +1 -1
  19. package/dist/color.cjs +1 -1
  20. package/dist/color.js +1 -1
  21. package/dist/dropdown.cjs +1 -1
  22. package/dist/dropdown.js +1 -1
  23. package/dist/{external-CPB95nWX.js → external-B0DCjEX5.js} +2 -2
  24. package/dist/{external-CPB95nWX.js.map → external-B0DCjEX5.js.map} +1 -1
  25. package/dist/{external-Brr6przd.js → external-BGyrJwT6.js} +2 -2
  26. package/dist/{external-Brr6przd.js.map → external-BGyrJwT6.js.map} +1 -1
  27. package/dist/{external-DL9-TJzC.cjs → external-BWNeNJEb.cjs} +4 -4
  28. package/dist/{external-DL9-TJzC.cjs.map → external-BWNeNJEb.cjs.map} +1 -1
  29. package/dist/{external-CtH30naU.js → external-BX1SuP7b.js} +2 -2
  30. package/dist/{external-CtH30naU.js.map → external-BX1SuP7b.js.map} +1 -1
  31. package/dist/{external-p8bRcctL.cjs → external-BbCvNSWY.cjs} +2 -2
  32. package/dist/{external-p8bRcctL.cjs.map → external-BbCvNSWY.cjs.map} +1 -1
  33. package/dist/{external-Drem1ngI.cjs → external-Br3dSWZy.cjs} +2 -2
  34. package/dist/{external-Drem1ngI.cjs.map → external-Br3dSWZy.cjs.map} +1 -1
  35. package/dist/{external-B6yW9yjs.js → external-Bw-gM1WS.js} +2 -2
  36. package/dist/external-Bw-gM1WS.js.map +1 -0
  37. package/dist/{external-CYRIymJR.cjs → external-CTg9-80v.cjs} +2 -2
  38. package/dist/{external-CYRIymJR.cjs.map → external-CTg9-80v.cjs.map} +1 -1
  39. package/dist/{external-CZli69bF.cjs → external-Cq-yOszj.cjs} +2 -2
  40. package/dist/{external-CZli69bF.cjs.map → external-Cq-yOszj.cjs.map} +1 -1
  41. package/dist/{external-axSECIuu.cjs → external-CsyhVOiV.cjs} +3 -3
  42. package/dist/{external-axSECIuu.cjs.map → external-CsyhVOiV.cjs.map} +1 -1
  43. package/dist/{external-Dpr-yBfa.cjs → external-DE-HpRm9.cjs} +3 -3
  44. package/dist/external-DE-HpRm9.cjs.map +1 -0
  45. package/dist/{external-yv4F8ndX.js → external-DGEGrIB8.js} +3 -3
  46. package/dist/{external-yv4F8ndX.js.map → external-DGEGrIB8.js.map} +1 -1
  47. package/dist/{external-Bn7V_LTL.js → external-DWisAHYJ.js} +3 -3
  48. package/dist/{external-Bn7V_LTL.js.map → external-DWisAHYJ.js.map} +1 -1
  49. package/dist/{external-Doprw1Uu.js → external-DX1JRejp.js} +4 -4
  50. package/dist/{external-Doprw1Uu.js.map → external-DX1JRejp.js.map} +1 -1
  51. package/dist/{external-wfv-EKsR.js → external-DrUfLzJs.js} +4 -4
  52. package/dist/{external-wfv-EKsR.js.map → external-DrUfLzJs.js.map} +1 -1
  53. package/dist/{external-B695Iunb.js → external-DwY1uz6Y.js} +2 -2
  54. package/dist/{external-B695Iunb.js.map → external-DwY1uz6Y.js.map} +1 -1
  55. package/dist/{external-D8uwkCSk.js → external-EIV24CTN.js} +3 -3
  56. package/dist/{external-D8uwkCSk.js.map → external-EIV24CTN.js.map} +1 -1
  57. package/dist/{external-DnojrP1p.cjs → external-JjFzMlTY.cjs} +3 -3
  58. package/dist/{external-DnojrP1p.cjs.map → external-JjFzMlTY.cjs.map} +1 -1
  59. package/dist/{external-BoNCimxR.cjs → external-VofAmo6_.cjs} +2 -2
  60. package/dist/external-VofAmo6_.cjs.map +1 -0
  61. package/dist/{external-kZAfJn1X.cjs → external-gzESdEqw.cjs} +3 -3
  62. package/dist/{external-kZAfJn1X.cjs.map → external-gzESdEqw.cjs.map} +1 -1
  63. package/dist/{external-CflFsngP.js → external-jVPC18yY.js} +3 -3
  64. package/dist/external-jVPC18yY.js.map +1 -0
  65. package/dist/{external-BGl-cQCe.cjs → external-rv9PfMM3.cjs} +4 -4
  66. package/dist/{external-BGl-cQCe.cjs.map → external-rv9PfMM3.cjs.map} +1 -1
  67. package/dist/header.cjs +1 -1
  68. package/dist/header.js +1 -1
  69. package/dist/index.cjs +21 -26
  70. package/dist/index.cjs.map +1 -1
  71. package/dist/index.js +29 -34
  72. package/dist/index.js.map +1 -1
  73. package/dist/input.cjs +1 -1
  74. package/dist/input.js +1 -1
  75. package/dist/list.cjs +1 -1
  76. package/dist/list.js +1 -1
  77. package/dist/menu.cjs +1 -1
  78. package/dist/menu.js +1 -1
  79. package/dist/src/form/Form.d.ts.map +1 -1
  80. package/dist/src/vis/lineplot/LinePlot.d.ts +1 -1
  81. package/dist/src/vis/lineplot/LinePlot.d.ts.map +1 -1
  82. package/dist/tabs.cjs +1 -1
  83. package/dist/tabs.js +1 -1
  84. package/dist/text.cjs +2 -2
  85. package/dist/text.js +2 -2
  86. package/dist/theming.cjs +2 -2
  87. package/dist/theming.js +2 -2
  88. package/dist/tree.cjs +1 -1
  89. package/dist/tree.js +1 -1
  90. package/dist/triggers.cjs +1 -1
  91. package/dist/triggers.js +1 -1
  92. package/package.json +5 -5
  93. package/dist/external-B6yW9yjs.js.map +0 -1
  94. package/dist/external-BoNCimxR.cjs.map +0 -1
  95. package/dist/external-CflFsngP.js.map +0 -1
  96. package/dist/external-Dpr-yBfa.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"external-BGl-cQCe.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-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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"}
package/dist/header.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const external = require("./external-Drem1ngI.cjs");
3
+ const external = require("./external-Br3dSWZy.cjs");
4
4
  exports.Header = external.external;
5
5
  //# sourceMappingURL=header.cjs.map
package/dist/header.js CHANGED
@@ -1,4 +1,4 @@
1
- import { e } from "./external-B695Iunb.js";
1
+ import { e } from "./external-DwY1uz6Y.js";
2
2
  export {
3
3
  e as Header
4
4
  };
package/dist/index.cjs CHANGED
@@ -8,25 +8,25 @@ var __publicField = (obj, key, value2) => {
8
8
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
9
  const jsxRuntime = require("./jsx-runtime-B3vWrP5x.cjs");
10
10
  const React = require("react");
11
- const Toggle$1 = require("./Toggle-CAW20E9V.cjs");
11
+ const Toggle$1 = require("./Toggle-ClTExSi6.cjs");
12
12
  const css = require("./css-Pf9qxhQ4.cjs");
13
- const external$l = require("./external-Drem1ngI.cjs");
13
+ const external$l = require("./external-Br3dSWZy.cjs");
14
14
  const aggregator = require("./aggregator-Ca8xiVD2.cjs");
15
15
  const Center$1 = require("./Center-5NJ61qfA.cjs");
16
16
  const LinePlot$2 = require("./LinePlot-FmPnet-3.cjs");
17
- const external$k = require("./external-p8bRcctL.cjs");
18
- const external$t = require("./external-kZAfJn1X.cjs");
19
- const external$q = require("./external-BGl-cQCe.cjs");
17
+ const external$k = require("./external-BbCvNSWY.cjs");
18
+ const external$t = require("./external-gzESdEqw.cjs");
19
+ const external$q = require("./external-rv9PfMM3.cjs");
20
20
  const reactDom = require("react-dom");
21
- const external$o = require("./external-axSECIuu.cjs");
22
- const external$n = require("./external-DnojrP1p.cjs");
21
+ const external$o = require("./external-CsyhVOiV.cjs");
22
+ const external$n = require("./external-JjFzMlTY.cjs");
23
23
  const external$i = require("./external-D8dWmF4U.cjs");
24
- const external$j = require("./external-Dpr-yBfa.cjs");
24
+ const external$j = require("./external-DE-HpRm9.cjs");
25
25
  const color = require("./color-BVVyrgRF.cjs");
26
- const external$m = require("./external-CZli69bF.cjs");
27
- const external$p = require("./external-CYRIymJR.cjs");
28
- const external$r = require("./external-BoNCimxR.cjs");
29
- const external$s = require("./external-DL9-TJzC.cjs");
26
+ const external$m = require("./external-Cq-yOszj.cjs");
27
+ const external$p = require("./external-CTg9-80v.cjs");
28
+ const external$r = require("./external-VofAmo6_.cjs");
29
+ const external$s = require("./external-BWNeNJEb.cjs");
30
30
  const Video = require("./Video-BGNx94bQ.cjs");
31
31
  const zod = require("zod");
32
32
  const Circle$1 = ({ variant, ...props }) => {
@@ -933,9 +933,9 @@ const LinePlot$1 = Toggle$1.wrap$1(
933
933
  aetherKey,
934
934
  style,
935
935
  resizeDebounce: debounce = 0,
936
- clearOverScan,
936
+ clearOverScan = css.q.ZERO,
937
937
  children,
938
- hold,
938
+ hold = false,
939
939
  onHold,
940
940
  ...props
941
941
  }) => {
@@ -6874,22 +6874,17 @@ const useFieldArray = ({
6874
6874
  );
6875
6875
  const remove = React.useCallback(
6876
6876
  (index) => {
6877
- const copy = aggregator.h(get({ path, optional: false }).value);
6878
- const indices = aggregator.A(index).sort((a, b) => b - a);
6879
- indices.forEach((i) => copy.splice(i, 1));
6880
- set({ path, value: copy });
6877
+ const val = get({ path, optional: false }).value;
6878
+ const indices = new Set(aggregator.A(index));
6879
+ set({ path, value: val.filter((_, i) => !indices.has(i)) });
6881
6880
  },
6882
6881
  [path, state, get]
6883
6882
  );
6884
6883
  const keepOnly = React.useCallback(
6885
- (indices) => {
6886
- const copy = aggregator.h(get({ path, optional: false }).value);
6887
- const indicesArray = new Set(aggregator.A(indices));
6888
- copy.forEach((_, i) => {
6889
- if (!indicesArray.has(i))
6890
- copy.splice(i, 1);
6891
- });
6892
- set({ path, value: copy });
6884
+ (index) => {
6885
+ const val = get({ path, optional: false }).value;
6886
+ const indices = new Set(aggregator.A(index));
6887
+ set({ path, value: val.filter((_, i) => indices.has(i)) });
6893
6888
  },
6894
6889
  [path, state, get]
6895
6890
  );