@webiny/admin-ui 0.0.0-unstable.ac6ebf63c6 → 0.0.0-unstable.dbdf5d6258

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/Alert/Alert.js CHANGED
@@ -7,6 +7,7 @@ import { AlertSwatchBox } from "./AlertSwatchBox.js";
7
7
  import { AlertPropsProvider, useAlertProps } from "./AlertPropsProvider.js";
8
8
  import { AlertCloseButton } from "./AlertCloseButton.js";
9
9
  import { defaultVariants } from "./constants.js";
10
+ import { useAdminUi } from "../AdminUiProvider/index.js";
10
11
  const alertVariants = cva("flex gap-sm-plus items-start w-full rounded-lg text-md py-sm-extra pl-md pr-sm-plus [&_a]:font-semibold [&_a]:underline", {
11
12
  variants: {
12
13
  type: {
@@ -76,6 +77,9 @@ const AlertBase = props => {
76
77
  children,
77
78
  ...rootRestProps
78
79
  } = props;
80
+ const {
81
+ compileMarkdown
82
+ } = useAdminUi();
79
83
  const backgroundColor = useMemo(() => {
80
84
  if (!swatchColor) {
81
85
  return;
@@ -95,7 +99,7 @@ const AlertBase = props => {
95
99
  }
96
100
  }, rootRestProps), /*#__PURE__*/React.createElement(AlertSwatchBox, null), /*#__PURE__*/React.createElement(AlertIcon, null), /*#__PURE__*/React.createElement("div", {
97
101
  className: "grow py-xxs"
98
- }, children), actions && /*#__PURE__*/React.createElement("div", {
102
+ }, compileMarkdown(children)), actions && /*#__PURE__*/React.createElement("div", {
99
103
  className: "flex gap-sm"
100
104
  }, actions), /*#__PURE__*/React.createElement(AlertCloseButton, null)));
101
105
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","cn","cva","makeDecoratable","withStaticProps","Button","AlertIcon","AlertSwatchBox","AlertPropsProvider","useAlertProps","AlertCloseButton","defaultVariants","alertVariants","variants","type","info","success","warning","danger","variant","strong","subtle","compoundVariants","className","AlertActionBase","props","alertVariant","createElement","Object","assign","text","size","AlertAction","AlertBase","swatchColor","actions","children","rootRestProps","backgroundColor","role","style","Alert","Action"],"sources":["Alert.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport { cn, cva, makeDecoratable, type VariantProps, withStaticProps } from \"~/utils.js\";\nimport { Button, type ButtonProps } from \"~/Button/index.js\";\nimport { AlertIcon } from \"./AlertIcon.js\";\nimport { AlertSwatchBox } from \"./AlertSwatchBox.js\";\nimport { AlertPropsProvider, useAlertProps } from \"./AlertPropsProvider.js\";\nimport { AlertCloseButton } from \"./AlertCloseButton.js\";\nimport { defaultVariants } from \"./constants.js\";\n\nconst alertVariants = cva(\n \"flex gap-sm-plus items-start w-full rounded-lg text-md py-sm-extra pl-md pr-sm-plus [&_a]:font-semibold [&_a]:underline\",\n {\n variants: {\n type: { info: \"\", success: \"\", warning: \"\", danger: \"\" },\n variant: { strong: \"\", subtle: \"\" }\n },\n defaultVariants,\n compoundVariants: [\n {\n type: \"info\",\n variant: \"strong\",\n className: \"bg-neutral-dark text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"info\",\n variant: \"subtle\",\n className: \"bg-neutral-dimmed text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"success\",\n variant: \"strong\",\n className: \"bg-secondary text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"success\",\n variant: \"subtle\",\n className: \"bg-success-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"strong\",\n className: \"bg-warning text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"subtle\",\n className: \"bg-warning-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"danger\",\n variant: \"strong\",\n className: \"bg-destructive text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"danger\",\n variant: \"subtle\",\n className: \"bg-destructive-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n }\n ]\n }\n);\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n showCloseButton?: boolean;\n icon?: React.ReactElement | null;\n onClose?: () => void;\n actions?: React.ReactElement<typeof AlertAction>;\n swatchColor?: string;\n swatchColorIcon?: boolean;\n}\n\nconst AlertActionBase = (props: ButtonProps) => {\n const { variant: alertVariant } = useAlertProps();\n return (\n <Button\n text={\"Button\"}\n variant={alertVariant === \"strong\" ? \"secondary\" : \"tertiary\"}\n size={\"sm\"}\n {...props}\n />\n );\n};\n\nconst AlertAction = makeDecoratable(\"AlertAction\", AlertActionBase);\n\nconst AlertBase = (props: AlertProps) => {\n const { className, type, variant, swatchColor, actions, children, ...rootRestProps } = props;\n\n const backgroundColor = useMemo(() => {\n if (!swatchColor) {\n return;\n }\n\n return swatchColor + \"66\";\n }, [swatchColor]);\n\n return (\n <AlertPropsProvider props={props}>\n <div\n role=\"alert\"\n className={cn(alertVariants({ type, variant }), className)}\n style={{ backgroundColor }}\n {...rootRestProps}\n >\n <AlertSwatchBox />\n <AlertIcon />\n <div className={\"grow py-xxs\"}>{children}</div>\n {actions && <div className={\"flex gap-sm\"}>{actions}</div>}\n <AlertCloseButton />\n </div>\n </AlertPropsProvider>\n );\n};\n\nconst Alert = withStaticProps(makeDecoratable(\"AlertBase\", AlertBase), {\n Action: AlertAction\n});\n\nexport { Alert };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","cn","cva","makeDecoratable","withStaticProps","Button","AlertIcon","AlertSwatchBox","AlertPropsProvider","useAlertProps","AlertCloseButton","defaultVariants","useAdminUi","alertVariants","variants","type","info","success","warning","danger","variant","strong","subtle","compoundVariants","className","AlertActionBase","props","alertVariant","createElement","Object","assign","text","size","AlertAction","AlertBase","swatchColor","actions","children","rootRestProps","compileMarkdown","backgroundColor","role","style","Alert","Action"],"sources":["Alert.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport { cn, cva, makeDecoratable, type VariantProps, withStaticProps } from \"~/utils.js\";\nimport { Button, type ButtonProps } from \"~/Button/index.js\";\nimport { AlertIcon } from \"./AlertIcon.js\";\nimport { AlertSwatchBox } from \"./AlertSwatchBox.js\";\nimport { AlertPropsProvider, useAlertProps } from \"./AlertPropsProvider.js\";\nimport { AlertCloseButton } from \"./AlertCloseButton.js\";\nimport { defaultVariants } from \"./constants.js\";\nimport { useAdminUi } from \"~/AdminUiProvider/index.js\";\n\nconst alertVariants = cva(\n \"flex gap-sm-plus items-start w-full rounded-lg text-md py-sm-extra pl-md pr-sm-plus [&_a]:font-semibold [&_a]:underline\",\n {\n variants: {\n type: { info: \"\", success: \"\", warning: \"\", danger: \"\" },\n variant: { strong: \"\", subtle: \"\" }\n },\n defaultVariants,\n compoundVariants: [\n {\n type: \"info\",\n variant: \"strong\",\n className: \"bg-neutral-dark text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"info\",\n variant: \"subtle\",\n className: \"bg-neutral-dimmed text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"success\",\n variant: \"strong\",\n className: \"bg-secondary text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"success\",\n variant: \"subtle\",\n className: \"bg-success-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"strong\",\n className: \"bg-warning text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"subtle\",\n className: \"bg-warning-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"danger\",\n variant: \"strong\",\n className: \"bg-destructive text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"danger\",\n variant: \"subtle\",\n className: \"bg-destructive-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n }\n ]\n }\n);\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n showCloseButton?: boolean;\n icon?: React.ReactElement | null;\n onClose?: () => void;\n actions?: React.ReactElement<typeof AlertAction>;\n swatchColor?: string;\n swatchColorIcon?: boolean;\n}\n\nconst AlertActionBase = (props: ButtonProps) => {\n const { variant: alertVariant } = useAlertProps();\n return (\n <Button\n text={\"Button\"}\n variant={alertVariant === \"strong\" ? \"secondary\" : \"tertiary\"}\n size={\"sm\"}\n {...props}\n />\n );\n};\n\nconst AlertAction = makeDecoratable(\"AlertAction\", AlertActionBase);\n\nconst AlertBase = (props: AlertProps) => {\n const { className, type, variant, swatchColor, actions, children, ...rootRestProps } = props;\n const { compileMarkdown } = useAdminUi();\n\n const backgroundColor = useMemo(() => {\n if (!swatchColor) {\n return;\n }\n\n return swatchColor + \"66\";\n }, [swatchColor]);\n\n return (\n <AlertPropsProvider props={props}>\n <div\n role=\"alert\"\n className={cn(alertVariants({ type, variant }), className)}\n style={{ backgroundColor }}\n {...rootRestProps}\n >\n <AlertSwatchBox />\n <AlertIcon />\n <div className={\"grow py-xxs\"}>{compileMarkdown(children)}</div>\n {actions && <div className={\"flex gap-sm\"}>{actions}</div>}\n <AlertCloseButton />\n </div>\n </AlertPropsProvider>\n );\n};\n\nconst Alert = withStaticProps(makeDecoratable(\"AlertBase\", AlertBase), {\n Action: AlertAction\n});\n\nexport { Alert };\n"],"mappings":"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","ignoreList":[]}
@@ -17,22 +17,23 @@ interface CheckboxPrimitiveVm {
17
17
  }
18
18
  type CheckboxPrimitiveRendererProps = Omit<CheckboxPrimitiveProps, "onCheckedChange" | "onChange"> & NonNullable<CheckboxPrimitiveVm["item"]> & {
19
19
  changeChecked: (checked: boolean) => void;
20
+ disabled?: boolean;
20
21
  };
21
- declare const CheckboxPrimitiveRenderer: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
22
- original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
22
+ declare const CheckboxPrimitiveRenderer: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
23
+ original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
23
24
  originalName: string;
24
25
  displayName: string;
25
26
  } & {
26
- original: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
27
- original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
27
+ original: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
28
+ original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
28
29
  originalName: string;
29
30
  displayName: string;
30
31
  };
31
32
  originalName: string;
32
33
  displayName: string;
33
34
  } & {
34
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
35
- original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
35
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
36
+ original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
36
37
  originalName: string;
37
38
  displayName: string;
38
39
  }>) => (props: unknown) => React.JSX.Element;
@@ -34,6 +34,7 @@ const DecoratableCheckboxPrimitiveRenderer = ({
34
34
  changeChecked,
35
35
  checked,
36
36
  className,
37
+ disabled = false,
37
38
  ...props
38
39
  }) => {
39
40
  return /*#__PURE__*/React.createElement("div", {
@@ -45,12 +46,14 @@ const DecoratableCheckboxPrimitiveRenderer = ({
45
46
  hasLabel
46
47
  }), className),
47
48
  onCheckedChange: changeChecked,
48
- checked: indeterminate ? "indeterminate" : checked
49
+ checked: indeterminate ? "indeterminate" : checked,
50
+ disabled: disabled
49
51
  }), /*#__PURE__*/React.createElement("span", {
50
52
  className: cn("flex items-center justify-center")
51
53
  }, indeterminate ? /*#__PURE__*/React.createElement(IndeterminateIcon, null) : /*#__PURE__*/React.createElement(CheckboxPrimitives.Indicator, null, /*#__PURE__*/React.createElement(CheckIcon, {
52
54
  className: "size-sm-extra!"
53
55
  })))), hasLabel && /*#__PURE__*/React.createElement(Label, {
56
+ disabled: disabled,
54
57
  htmlFor: id,
55
58
  text: label,
56
59
  weight: "light",
@@ -1 +1 @@
1
- {"version":3,"names":["React","Checkbox","CheckboxPrimitives","ReactComponent","CheckIcon","cn","makeDecoratable","cva","useCheckbox","Label","IndeterminateIcon","createElement","className","checkboxVariants","variants","indeterminate","true","hasLabel","DecoratableCheckboxPrimitiveRenderer","label","id","changeChecked","checked","props","Root","Object","assign","onCheckedChange","Indicator","htmlFor","text","weight","CheckboxPrimitiveRenderer","DecoratableCheckboxPrimitive","vm","item","CheckboxPrimitive"],"sources":["CheckboxPrimitive.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitives } from \"radix-ui\";\nimport { ReactComponent as CheckIcon } from \"@webiny/icons/check.svg\";\nimport { cn, makeDecoratable, cva, type VariantProps } from \"~/utils.js\";\nimport { useCheckbox } from \"./useCheckbox.js\";\nimport { Label } from \"~/Label/index.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\n\n/**\n * Indeterminate Icon\n */\nconst IndeterminateIcon = () => {\n return (\n <span\n className={\"block w-sm h-xxs rounded-sm bg-primary group-disabled:bg-primary-disabled\"}\n />\n );\n};\n\n/**\n * Checkbox Renderer\n */\nconst checkboxVariants = cva(\n [\n \"group peer h-md w-md shrink-0 rounded-sm border-sm \",\n \"border-neutral-muted bg-neutral-base [&_svg]:fill-neutral-base! ring-offset-background\",\n \"hover:border-neutral-dark\",\n \"focus:outline-none focus-visible:border-accent-default focus-visible:ring-lg focus-visible:ring-primary-dimmed focus-visible:ring-offset-0\",\n \"disabled:cursor-not-allowed disabled:border-transparent disabled:bg-neutral-disabled\",\n \"data-[state=checked]:bg-primary data-[state=checked]:border-transparent\",\n \"data-[state=checked]:hover:bg-primary-strong\",\n \"data-[state=checked]:disabled:bg-neutral-disabled data-[state=checked]:disabled:fill-neutral-strong\"\n ],\n {\n variants: {\n indeterminate: {\n true: [\n \"border-neutral-muted\",\n \"data-[state=checked]:bg-neutral-base data-[state=checked]:border-neutral-muted\",\n \"data-[state=checked]:hover:bg-neutral-base data-[state=checked]:hover:border-neutral-strong\",\n \"data-[state=checked]:focus-visible:border-accent-default\",\n \"data-[state=checked]:disabled:border-transparent\"\n ]\n },\n hasLabel: {\n true: \"mt-xxs\"\n }\n }\n }\n);\n\ntype CheckboxPrimitiveProps = Omit<\n CheckboxPrimitives.CheckboxProps,\n \"defaultChecked\" | \"onCheckedChange\" | \"onChange\"\n> &\n VariantProps<typeof checkboxVariants> &\n CheckboxItemDto & {\n onChange: (checked: boolean) => void;\n };\n\ninterface CheckboxPrimitiveVm {\n item?: CheckboxItemFormatted;\n}\n\ntype CheckboxPrimitiveRendererProps = Omit<CheckboxPrimitiveProps, \"onCheckedChange\" | \"onChange\"> &\n NonNullable<CheckboxPrimitiveVm[\"item\"]> & {\n changeChecked: (checked: boolean) => void;\n };\n\nconst DecoratableCheckboxPrimitiveRenderer = ({\n label,\n id,\n hasLabel,\n indeterminate,\n changeChecked,\n checked,\n className,\n ...props\n}: CheckboxPrimitiveRendererProps) => {\n return (\n <div className=\"flex items-start space-x-sm-extra\">\n <CheckboxPrimitives.Root\n {...props}\n id={id}\n className={cn(checkboxVariants({ indeterminate, hasLabel }), className)}\n onCheckedChange={changeChecked}\n checked={indeterminate ? \"indeterminate\" : checked}\n >\n <span className={cn(\"flex items-center justify-center\")}>\n {indeterminate ? (\n <IndeterminateIcon />\n ) : (\n <CheckboxPrimitives.Indicator>\n <CheckIcon className={\"size-sm-extra!\"} />\n </CheckboxPrimitives.Indicator>\n )}\n </span>\n </CheckboxPrimitives.Root>\n {hasLabel && <Label htmlFor={id} text={label} weight={\"light\"} className={\"text-md\"} />}\n </div>\n );\n};\nconst CheckboxPrimitiveRenderer = makeDecoratable(\n \"CheckboxPrimitiveRenderer\",\n DecoratableCheckboxPrimitiveRenderer\n);\n\n/**\n * Checkbox\n */\nconst DecoratableCheckboxPrimitive = (props: CheckboxPrimitiveProps) => {\n const { vm, changeChecked } = useCheckbox(props);\n\n if (!vm.item) {\n return null;\n }\n\n return <CheckboxPrimitiveRenderer {...props} {...vm.item} changeChecked={changeChecked} />;\n};\nconst CheckboxPrimitive = makeDecoratable(\"CheckboxPrimitive\", DecoratableCheckboxPrimitive);\n\nexport {\n CheckboxPrimitive,\n CheckboxPrimitiveRenderer,\n type CheckboxPrimitiveProps,\n type CheckboxPrimitiveVm\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,IAAIC,kBAAkB,QAAQ,UAAU;AACzD,SAASC,cAAc,IAAIC,SAAS,QAAQ,yBAAyB;AACrE,SAASC,EAAE,EAAEC,eAAe,EAAEC,GAAG;AACjC,SAASC,WAAW;AACpB,SAASC,KAAK;AAGd;AACA;AACA;AACA,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EAC5B,oBACIV,KAAA,CAAAW,aAAA;IACIC,SAAS,EAAE;EAA4E,CAC1F,CAAC;AAEV,CAAC;;AAED;AACA;AACA;AACA,MAAMC,gBAAgB,GAAGN,GAAG,CACxB,CACI,qDAAqD,EACrD,wFAAwF,EACxF,2BAA2B,EAC3B,4IAA4I,EAC5I,sFAAsF,EACtF,yEAAyE,EACzE,8CAA8C,EAC9C,qGAAqG,CACxG,EACD;EACIO,QAAQ,EAAE;IACNC,aAAa,EAAE;MACXC,IAAI,EAAE,CACF,sBAAsB,EACtB,gFAAgF,EAChF,6FAA6F,EAC7F,0DAA0D,EAC1D,kDAAkD;IAE1D,CAAC;IACDC,QAAQ,EAAE;MACND,IAAI,EAAE;IACV;EACJ;AACJ,CACJ,CAAC;AAoBD,MAAME,oCAAoC,GAAGA,CAAC;EAC1CC,KAAK;EACLC,EAAE;EACFH,QAAQ;EACRF,aAAa;EACbM,aAAa;EACbC,OAAO;EACPV,SAAS;EACT,GAAGW;AACyB,CAAC,KAAK;EAClC,oBACIvB,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAmC,gBAC9CZ,KAAA,CAAAW,aAAA,CAACT,kBAAkB,CAACsB,IAAI,EAAAC,MAAA,CAAAC,MAAA,KAChBH,KAAK;IACTH,EAAE,EAAEA,EAAG;IACPR,SAAS,EAAEP,EAAE,CAACQ,gBAAgB,CAAC;MAAEE,aAAa;MAAEE;IAAS,CAAC,CAAC,EAAEL,SAAS,CAAE;IACxEe,eAAe,EAAEN,aAAc;IAC/BC,OAAO,EAAEP,aAAa,GAAG,eAAe,GAAGO;EAAQ,iBAEnDtB,KAAA,CAAAW,aAAA;IAAMC,SAAS,EAAEP,EAAE,CAAC,kCAAkC;EAAE,GACnDU,aAAa,gBACVf,KAAA,CAAAW,aAAA,CAACD,iBAAiB,MAAE,CAAC,gBAErBV,KAAA,CAAAW,aAAA,CAACT,kBAAkB,CAAC0B,SAAS,qBACzB5B,KAAA,CAAAW,aAAA,CAACP,SAAS;IAACQ,SAAS,EAAE;EAAiB,CAAE,CACf,CAEhC,CACe,CAAC,EACzBK,QAAQ,iBAAIjB,KAAA,CAAAW,aAAA,CAACF,KAAK;IAACoB,OAAO,EAAET,EAAG;IAACU,IAAI,EAAEX,KAAM;IAACY,MAAM,EAAE,OAAQ;IAACnB,SAAS,EAAE;EAAU,CAAE,CACrF,CAAC;AAEd,CAAC;AACD,MAAMoB,yBAAyB,GAAG1B,eAAe,CAC7C,2BAA2B,EAC3BY,oCACJ,CAAC;;AAED;AACA;AACA;AACA,MAAMe,4BAA4B,GAAIV,KAA6B,IAAK;EACpE,MAAM;IAAEW,EAAE;IAAEb;EAAc,CAAC,GAAGb,WAAW,CAACe,KAAK,CAAC;EAEhD,IAAI,CAACW,EAAE,CAACC,IAAI,EAAE;IACV,OAAO,IAAI;EACf;EAEA,oBAAOnC,KAAA,CAAAW,aAAA,CAACqB,yBAAyB,EAAAP,MAAA,CAAAC,MAAA,KAAKH,KAAK,EAAMW,EAAE,CAACC,IAAI;IAAEd,aAAa,EAAEA;EAAc,EAAE,CAAC;AAC9F,CAAC;AACD,MAAMe,iBAAiB,GAAG9B,eAAe,CAAC,mBAAmB,EAAE2B,4BAA4B,CAAC;AAE5F,SACIG,iBAAiB,EACjBJ,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["React","Checkbox","CheckboxPrimitives","ReactComponent","CheckIcon","cn","makeDecoratable","cva","useCheckbox","Label","IndeterminateIcon","createElement","className","checkboxVariants","variants","indeterminate","true","hasLabel","DecoratableCheckboxPrimitiveRenderer","label","id","changeChecked","checked","disabled","props","Root","Object","assign","onCheckedChange","Indicator","htmlFor","text","weight","CheckboxPrimitiveRenderer","DecoratableCheckboxPrimitive","vm","item","CheckboxPrimitive"],"sources":["CheckboxPrimitive.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitives } from \"radix-ui\";\nimport { ReactComponent as CheckIcon } from \"@webiny/icons/check.svg\";\nimport { cn, makeDecoratable, cva, type VariantProps } from \"~/utils.js\";\nimport { useCheckbox } from \"./useCheckbox.js\";\nimport { Label } from \"~/Label/index.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\n\n/**\n * Indeterminate Icon\n */\nconst IndeterminateIcon = () => {\n return (\n <span\n className={\"block w-sm h-xxs rounded-sm bg-primary group-disabled:bg-primary-disabled\"}\n />\n );\n};\n\n/**\n * Checkbox Renderer\n */\nconst checkboxVariants = cva(\n [\n \"group peer h-md w-md shrink-0 rounded-sm border-sm \",\n \"border-neutral-muted bg-neutral-base [&_svg]:fill-neutral-base! ring-offset-background\",\n \"hover:border-neutral-dark\",\n \"focus:outline-none focus-visible:border-accent-default focus-visible:ring-lg focus-visible:ring-primary-dimmed focus-visible:ring-offset-0\",\n \"disabled:cursor-not-allowed disabled:border-transparent disabled:bg-neutral-disabled\",\n \"data-[state=checked]:bg-primary data-[state=checked]:border-transparent\",\n \"data-[state=checked]:hover:bg-primary-strong\",\n \"data-[state=checked]:disabled:bg-neutral-disabled data-[state=checked]:disabled:fill-neutral-strong\"\n ],\n {\n variants: {\n indeterminate: {\n true: [\n \"border-neutral-muted\",\n \"data-[state=checked]:bg-neutral-base data-[state=checked]:border-neutral-muted\",\n \"data-[state=checked]:hover:bg-neutral-base data-[state=checked]:hover:border-neutral-strong\",\n \"data-[state=checked]:focus-visible:border-accent-default\",\n \"data-[state=checked]:disabled:border-transparent\"\n ]\n },\n hasLabel: {\n true: \"mt-xxs\"\n }\n }\n }\n);\n\ntype CheckboxPrimitiveProps = Omit<\n CheckboxPrimitives.CheckboxProps,\n \"defaultChecked\" | \"onCheckedChange\" | \"onChange\"\n> &\n VariantProps<typeof checkboxVariants> &\n CheckboxItemDto & {\n onChange: (checked: boolean) => void;\n };\n\ninterface CheckboxPrimitiveVm {\n item?: CheckboxItemFormatted;\n}\n\ntype CheckboxPrimitiveRendererProps = Omit<CheckboxPrimitiveProps, \"onCheckedChange\" | \"onChange\"> &\n NonNullable<CheckboxPrimitiveVm[\"item\"]> & {\n changeChecked: (checked: boolean) => void;\n disabled?: boolean;\n };\n\nconst DecoratableCheckboxPrimitiveRenderer = ({\n label,\n id,\n hasLabel,\n indeterminate,\n changeChecked,\n checked,\n className,\n disabled = false,\n ...props\n}: CheckboxPrimitiveRendererProps) => {\n return (\n <div className=\"flex items-start space-x-sm-extra\">\n <CheckboxPrimitives.Root\n {...props}\n id={id}\n className={cn(checkboxVariants({ indeterminate, hasLabel }), className)}\n onCheckedChange={changeChecked}\n checked={indeterminate ? \"indeterminate\" : checked}\n disabled={disabled}\n >\n <span className={cn(\"flex items-center justify-center\")}>\n {indeterminate ? (\n <IndeterminateIcon />\n ) : (\n <CheckboxPrimitives.Indicator>\n <CheckIcon className={\"size-sm-extra!\"} />\n </CheckboxPrimitives.Indicator>\n )}\n </span>\n </CheckboxPrimitives.Root>\n {hasLabel && (\n <Label\n disabled={disabled}\n htmlFor={id}\n text={label}\n weight={\"light\"}\n className={\"text-md\"}\n />\n )}\n </div>\n );\n};\nconst CheckboxPrimitiveRenderer = makeDecoratable(\n \"CheckboxPrimitiveRenderer\",\n DecoratableCheckboxPrimitiveRenderer\n);\n\n/**\n * Checkbox\n */\nconst DecoratableCheckboxPrimitive = (props: CheckboxPrimitiveProps) => {\n const { vm, changeChecked } = useCheckbox(props);\n\n if (!vm.item) {\n return null;\n }\n\n return <CheckboxPrimitiveRenderer {...props} {...vm.item} changeChecked={changeChecked} />;\n};\nconst CheckboxPrimitive = makeDecoratable(\"CheckboxPrimitive\", DecoratableCheckboxPrimitive);\n\nexport {\n CheckboxPrimitive,\n CheckboxPrimitiveRenderer,\n type CheckboxPrimitiveProps,\n type CheckboxPrimitiveVm\n};\n"],"mappings":"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","ignoreList":[]}
@@ -34,7 +34,9 @@ const DecoratableCheckboxGroup = ({
34
34
  invalid: invalid,
35
35
  disabled: disabled,
36
36
  className: "mt-none mb-xs-plus"
37
- }), /*#__PURE__*/React.createElement(CheckboxGroupPrimitive, props), /*#__PURE__*/React.createElement(FormComponentNote, {
37
+ }), /*#__PURE__*/React.createElement(CheckboxGroupPrimitive, Object.assign({
38
+ disabled: disabled
39
+ }, props)), /*#__PURE__*/React.createElement(FormComponentNote, {
38
40
  text: note,
39
41
  disabled: disabled
40
42
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","makeDecoratable","CheckboxGroupPrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableCheckboxGroup","label","description","note","required","disabled","hint","validation","props","isValid","validationIsValid","message","validationMessage","invalid","createElement","className","text","CheckboxGroup"],"sources":["CheckboxGroup.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxGroupPrimitiveProps } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport { CheckboxGroupPrimitive } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype CheckboxGroupProps = CheckboxGroupPrimitiveProps & FormComponentProps;\n\nconst DecoratableCheckboxGroup = ({\n label,\n description,\n note,\n required,\n disabled,\n hint,\n validation,\n ...props\n}: CheckboxGroupProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className={\"mb-xs-plus\"}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className={\"mt-none mb-xs-plus\"}\n />\n <CheckboxGroupPrimitive {...props} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\nconst CheckboxGroup = makeDecoratable(\"CheckboxGroup\", DecoratableCheckboxGroup);\n\nexport { CheckboxGroup };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe;AAExB,SAASC,sBAAsB;AAE/B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,wBAAwB,GAAGA,CAAC;EAC9BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,IAAI;EACJC,UAAU;EACV,GAAGC;AACa,CAAC,KAAK;EACtB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,GAAGpB,OAAO,CAAC,MAAMiB,iBAAiB,KAAK,KAAK,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAE/E,oBACIlB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAE;EAAS,gBACrBvB,KAAA,CAAAsB,aAAA,CAAChB,kBAAkB;IACfkB,IAAI,EAAEf,KAAM;IACZK,IAAI,EAAEA,IAAK;IACXF,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBQ,OAAO,EAAEA;EAAQ,CACpB,CAAC,eACFrB,KAAA,CAAAsB,aAAA,CAAClB,wBAAwB;IACrBoB,IAAI,EAAEd,WAAY;IAClBG,QAAQ,EAAEA,QAAS;IACnBU,SAAS,EAAE;EAAa,CAC3B,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACjB,yBAAyB;IACtBmB,IAAI,EAAEJ,iBAAkB;IACxBC,OAAO,EAAEA,OAAQ;IACjBR,QAAQ,EAAEA,QAAS;IACnBU,SAAS,EAAE;EAAqB,CACnC,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACnB,sBAAsB,EAAKa,KAAQ,CAAC,eACrChB,KAAA,CAAAsB,aAAA,CAACf,iBAAiB;IAACiB,IAAI,EAAEb,IAAK;IAACE,QAAQ,EAAEA;EAAS,CAAE,CACnD,CAAC;AAEd,CAAC;AACD,MAAMY,aAAa,GAAGvB,eAAe,CAAC,eAAe,EAAEM,wBAAwB,CAAC;AAEhF,SAASiB,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","makeDecoratable","CheckboxGroupPrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableCheckboxGroup","label","description","note","required","disabled","hint","validation","props","isValid","validationIsValid","message","validationMessage","invalid","createElement","className","text","Object","assign","CheckboxGroup"],"sources":["CheckboxGroup.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxGroupPrimitiveProps } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport { CheckboxGroupPrimitive } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype CheckboxGroupProps = CheckboxGroupPrimitiveProps & FormComponentProps;\n\nconst DecoratableCheckboxGroup = ({\n label,\n description,\n note,\n required,\n disabled,\n hint,\n validation,\n ...props\n}: CheckboxGroupProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className={\"mb-xs-plus\"}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className={\"mt-none mb-xs-plus\"}\n />\n <CheckboxGroupPrimitive disabled={disabled} {...props} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\nconst CheckboxGroup = makeDecoratable(\"CheckboxGroup\", DecoratableCheckboxGroup);\n\nexport { CheckboxGroup };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe;AAExB,SAASC,sBAAsB;AAE/B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,wBAAwB,GAAGA,CAAC;EAC9BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,IAAI;EACJC,UAAU;EACV,GAAGC;AACa,CAAC,KAAK;EACtB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,GAAGpB,OAAO,CAAC,MAAMiB,iBAAiB,KAAK,KAAK,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAE/E,oBACIlB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAE;EAAS,gBACrBvB,KAAA,CAAAsB,aAAA,CAAChB,kBAAkB;IACfkB,IAAI,EAAEf,KAAM;IACZK,IAAI,EAAEA,IAAK;IACXF,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBQ,OAAO,EAAEA;EAAQ,CACpB,CAAC,eACFrB,KAAA,CAAAsB,aAAA,CAAClB,wBAAwB;IACrBoB,IAAI,EAAEd,WAAY;IAClBG,QAAQ,EAAEA,QAAS;IACnBU,SAAS,EAAE;EAAa,CAC3B,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACjB,yBAAyB;IACtBmB,IAAI,EAAEJ,iBAAkB;IACxBC,OAAO,EAAEA,OAAQ;IACjBR,QAAQ,EAAEA,QAAS;IACnBU,SAAS,EAAE;EAAqB,CACnC,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACnB,sBAAsB,EAAAsB,MAAA,CAAAC,MAAA;IAACb,QAAQ,EAAEA;EAAS,GAAKG,KAAK,CAAG,CAAC,eACzDhB,KAAA,CAAAsB,aAAA,CAACf,iBAAiB;IAACiB,IAAI,EAAEb,IAAK;IAACE,QAAQ,EAAEA;EAAS,CAAE,CACnD,CAAC;AAEd,CAAC;AACD,MAAMc,aAAa,GAAGzB,eAAe,CAAC,eAAe,EAAEM,wBAAwB,CAAC;AAEhF,SAASmB,aAAa","ignoreList":[]}
@@ -13,28 +13,33 @@ interface CheckboxGroupPrimitiveProps<TValue = any> {
13
13
  * Array of selected checkbox values.
14
14
  */
15
15
  value?: TValue[];
16
+ /**
17
+ * Is checkbox group disabled?
18
+ */
19
+ disabled?: boolean;
16
20
  }
17
21
  interface CheckboxGroupPrimitiveVm {
18
22
  items: CheckboxItemFormatted[];
19
23
  }
20
24
  type CheckboxGroupPrimitiveRendererProps<TValue = any> = CheckboxGroupPrimitiveVm & {
21
25
  changeChecked: (value: TValue) => void;
26
+ disabled?: boolean;
22
27
  };
23
- declare const CheckboxGroupPrimitiveRenderer: (({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
24
- original: ({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
28
+ declare const CheckboxGroupPrimitiveRenderer: (({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
29
+ original: ({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
25
30
  originalName: string;
26
31
  displayName: string;
27
32
  } & {
28
- original: (({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
29
- original: ({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
33
+ original: (({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
34
+ original: ({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
30
35
  originalName: string;
31
36
  displayName: string;
32
37
  };
33
38
  originalName: string;
34
39
  displayName: string;
35
40
  } & {
36
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
37
- original: ({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
41
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
42
+ original: ({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
38
43
  originalName: string;
39
44
  displayName: string;
40
45
  }>) => (props: unknown) => React.JSX.Element;
@@ -7,13 +7,15 @@ import { useCheckboxGroup } from "./useCheckboxGroup.js";
7
7
  */
8
8
  const DecoratableCheckboxGroupPrimitiveRenderer = ({
9
9
  items,
10
- changeChecked
10
+ changeChecked,
11
+ disabled
11
12
  }) => {
12
13
  return /*#__PURE__*/React.createElement("div", {
13
14
  className: cn("grid gap-sm-extra py-xs-plus")
14
15
  }, items.map(item => /*#__PURE__*/React.createElement(CheckboxPrimitiveRenderer, Object.assign({
15
16
  key: item.id
16
17
  }, item, {
18
+ disabled: disabled ?? item.disabled,
17
19
  changeChecked: () => changeChecked(item.value)
18
20
  }))));
19
21
  };
@@ -28,7 +30,8 @@ const DecoratableCheckboxGroupPrimitive = props => {
28
30
  changeChecked
29
31
  } = useCheckboxGroup(props);
30
32
  return /*#__PURE__*/React.createElement(CheckboxGroupPrimitiveRenderer, Object.assign({}, vm, {
31
- changeChecked: changeChecked
33
+ changeChecked: changeChecked,
34
+ disabled: props.disabled
32
35
  }));
33
36
  };
34
37
  const CheckboxGroupPrimitive = makeDecoratable("CheckboxGroupPrimitive", DecoratableCheckboxGroupPrimitive);
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","makeDecoratable","CheckboxPrimitiveRenderer","useCheckboxGroup","DecoratableCheckboxGroupPrimitiveRenderer","items","changeChecked","createElement","className","map","item","Object","assign","key","id","value","CheckboxGroupPrimitiveRenderer","DecoratableCheckboxGroupPrimitive","props","vm","CheckboxGroupPrimitive"],"sources":["CheckboxGroupPrimitive.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\nimport { CheckboxPrimitiveRenderer } from \"~/Checkbox/index.js\";\nimport { useCheckboxGroup } from \"./useCheckboxGroup.js\";\n\ninterface CheckboxGroupPrimitiveProps<TValue = any> {\n /**\n * Array of checkbox items.\n */\n items: CheckboxItemDto[];\n /**\n * Callback function called when the checkbox values change.\n */\n onChange?: (values: TValue[]) => void;\n /**\n * Array of selected checkbox values.\n */\n value?: TValue[];\n}\n\ninterface CheckboxGroupPrimitiveVm {\n items: CheckboxItemFormatted[];\n}\n\ntype CheckboxGroupPrimitiveRendererProps<TValue = any> = CheckboxGroupPrimitiveVm & {\n changeChecked: (value: TValue) => void;\n};\n\n/**\n * Checkbox Group Renderer\n */\nconst DecoratableCheckboxGroupPrimitiveRenderer = ({\n items,\n changeChecked\n}: CheckboxGroupPrimitiveRendererProps) => {\n return (\n <div className={cn(\"grid gap-sm-extra py-xs-plus\")}>\n {items.map(item => (\n <CheckboxPrimitiveRenderer\n key={item.id}\n {...item}\n changeChecked={() => changeChecked(item.value)}\n />\n ))}\n </div>\n );\n};\nconst CheckboxGroupPrimitiveRenderer = makeDecoratable(\n \"CheckboxGroupPrimitiveRenderer\",\n DecoratableCheckboxGroupPrimitiveRenderer\n);\n\n/**\n * Checkbox Group\n */\nconst DecoratableCheckboxGroupPrimitive = (props: CheckboxGroupPrimitiveProps) => {\n const { vm, changeChecked } = useCheckboxGroup(props);\n return <CheckboxGroupPrimitiveRenderer {...vm} changeChecked={changeChecked} />;\n};\nconst CheckboxGroupPrimitive = makeDecoratable(\n \"CheckboxGroupPrimitive\",\n DecoratableCheckboxGroupPrimitive\n);\n\nexport {\n CheckboxGroupPrimitive,\n CheckboxGroupPrimitiveRenderer,\n type CheckboxGroupPrimitiveProps,\n type CheckboxGroupPrimitiveRendererProps,\n type CheckboxGroupPrimitiveVm\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,eAAe;AAE5B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAyBzB;AACA;AACA;AACA,MAAMC,yCAAyC,GAAGA,CAAC;EAC/CC,KAAK;EACLC;AACiC,CAAC,KAAK;EACvC,oBACIP,KAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAER,EAAE,CAAC,8BAA8B;EAAE,GAC9CK,KAAK,CAACI,GAAG,CAACC,IAAI,iBACXX,KAAA,CAAAQ,aAAA,CAACL,yBAAyB,EAAAS,MAAA,CAAAC,MAAA;IACtBC,GAAG,EAAEH,IAAI,CAACI;EAAG,GACTJ,IAAI;IACRJ,aAAa,EAAEA,CAAA,KAAMA,aAAa,CAACI,IAAI,CAACK,KAAK;EAAE,EAClD,CACJ,CACA,CAAC;AAEd,CAAC;AACD,MAAMC,8BAA8B,GAAGf,eAAe,CAClD,gCAAgC,EAChCG,yCACJ,CAAC;;AAED;AACA;AACA;AACA,MAAMa,iCAAiC,GAAIC,KAAkC,IAAK;EAC9E,MAAM;IAAEC,EAAE;IAAEb;EAAc,CAAC,GAAGH,gBAAgB,CAACe,KAAK,CAAC;EACrD,oBAAOnB,KAAA,CAAAQ,aAAA,CAACS,8BAA8B,EAAAL,MAAA,CAAAC,MAAA,KAAKO,EAAE;IAAEb,aAAa,EAAEA;EAAc,EAAE,CAAC;AACnF,CAAC;AACD,MAAMc,sBAAsB,GAAGnB,eAAe,CAC1C,wBAAwB,EACxBgB,iCACJ,CAAC;AAED,SACIG,sBAAsB,EACtBJ,8BAA8B","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","makeDecoratable","CheckboxPrimitiveRenderer","useCheckboxGroup","DecoratableCheckboxGroupPrimitiveRenderer","items","changeChecked","disabled","createElement","className","map","item","Object","assign","key","id","value","CheckboxGroupPrimitiveRenderer","DecoratableCheckboxGroupPrimitive","props","vm","CheckboxGroupPrimitive"],"sources":["CheckboxGroupPrimitive.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\nimport { CheckboxPrimitiveRenderer } from \"~/Checkbox/index.js\";\nimport { useCheckboxGroup } from \"./useCheckboxGroup.js\";\n\ninterface CheckboxGroupPrimitiveProps<TValue = any> {\n /**\n * Array of checkbox items.\n */\n items: CheckboxItemDto[];\n /**\n * Callback function called when the checkbox values change.\n */\n onChange?: (values: TValue[]) => void;\n /**\n * Array of selected checkbox values.\n */\n value?: TValue[];\n /**\n * Is checkbox group disabled?\n */\n disabled?: boolean;\n}\n\ninterface CheckboxGroupPrimitiveVm {\n items: CheckboxItemFormatted[];\n}\n\ntype CheckboxGroupPrimitiveRendererProps<TValue = any> = CheckboxGroupPrimitiveVm & {\n changeChecked: (value: TValue) => void;\n disabled?: boolean;\n};\n\n/**\n * Checkbox Group Renderer\n */\nconst DecoratableCheckboxGroupPrimitiveRenderer = ({\n items,\n changeChecked,\n disabled\n}: CheckboxGroupPrimitiveRendererProps) => {\n return (\n <div className={cn(\"grid gap-sm-extra py-xs-plus\")}>\n {items.map(item => (\n <CheckboxPrimitiveRenderer\n key={item.id}\n {...item}\n disabled={disabled ?? item.disabled}\n changeChecked={() => changeChecked(item.value)}\n />\n ))}\n </div>\n );\n};\nconst CheckboxGroupPrimitiveRenderer = makeDecoratable(\n \"CheckboxGroupPrimitiveRenderer\",\n DecoratableCheckboxGroupPrimitiveRenderer\n);\n\n/**\n * Checkbox Group\n */\nconst DecoratableCheckboxGroupPrimitive = (props: CheckboxGroupPrimitiveProps) => {\n const { vm, changeChecked } = useCheckboxGroup(props);\n return (\n <CheckboxGroupPrimitiveRenderer\n {...vm}\n changeChecked={changeChecked}\n disabled={props.disabled}\n />\n );\n};\nconst CheckboxGroupPrimitive = makeDecoratable(\n \"CheckboxGroupPrimitive\",\n DecoratableCheckboxGroupPrimitive\n);\n\nexport {\n CheckboxGroupPrimitive,\n CheckboxGroupPrimitiveRenderer,\n type CheckboxGroupPrimitiveProps,\n type CheckboxGroupPrimitiveRendererProps,\n type CheckboxGroupPrimitiveVm\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,eAAe;AAE5B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AA8BzB;AACA;AACA;AACA,MAAMC,yCAAyC,GAAGA,CAAC;EAC/CC,KAAK;EACLC,aAAa;EACbC;AACiC,CAAC,KAAK;EACvC,oBACIR,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAET,EAAE,CAAC,8BAA8B;EAAE,GAC9CK,KAAK,CAACK,GAAG,CAACC,IAAI,iBACXZ,KAAA,CAAAS,aAAA,CAACN,yBAAyB,EAAAU,MAAA,CAAAC,MAAA;IACtBC,GAAG,EAAEH,IAAI,CAACI;EAAG,GACTJ,IAAI;IACRJ,QAAQ,EAAEA,QAAQ,IAAII,IAAI,CAACJ,QAAS;IACpCD,aAAa,EAAEA,CAAA,KAAMA,aAAa,CAACK,IAAI,CAACK,KAAK;EAAE,EAClD,CACJ,CACA,CAAC;AAEd,CAAC;AACD,MAAMC,8BAA8B,GAAGhB,eAAe,CAClD,gCAAgC,EAChCG,yCACJ,CAAC;;AAED;AACA;AACA;AACA,MAAMc,iCAAiC,GAAIC,KAAkC,IAAK;EAC9E,MAAM;IAAEC,EAAE;IAAEd;EAAc,CAAC,GAAGH,gBAAgB,CAACgB,KAAK,CAAC;EACrD,oBACIpB,KAAA,CAAAS,aAAA,CAACS,8BAA8B,EAAAL,MAAA,CAAAC,MAAA,KACvBO,EAAE;IACNd,aAAa,EAAEA,aAAc;IAC7BC,QAAQ,EAAEY,KAAK,CAACZ;EAAS,EAC5B,CAAC;AAEV,CAAC;AACD,MAAMc,sBAAsB,GAAGpB,eAAe,CAC1C,wBAAwB,EACxBiB,iCACJ,CAAC;AAED,SACIG,sBAAsB,EACtBJ,8BAA8B","ignoreList":[]}
@@ -8,6 +8,7 @@ interface DataTableColumn<T> {
8
8
  enableSorting?: boolean;
9
9
  enableResizing?: boolean;
10
10
  enableHiding?: boolean;
11
+ accessorKey?: string;
11
12
  }
12
13
  type DataTableColumns<T> = {
13
14
  [P in keyof T]?: DataTableColumn<T>;
@@ -19,6 +19,7 @@ const defineColumns = (columns, options) => {
19
19
  }));
20
20
  const defaults = columnsList.map(column => {
21
21
  const {
22
+ accessorKey,
22
23
  cell,
23
24
  className,
24
25
  enableHiding = true,
@@ -30,7 +31,7 @@ const defineColumns = (columns, options) => {
30
31
  } = column;
31
32
  return {
32
33
  id,
33
- accessorKey: id,
34
+ accessorKey: accessorKey || id,
34
35
  header: () => header,
35
36
  cell: props => {
36
37
  if (cell && typeof cell === "function") {
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useCallback","useEffect","useMemo","useRef","useState","flexRender","getCoreRowModel","getSortedRowModel","useReactTable","CheckboxPrimitive","Skeleton","Table","ColumnSorter","ColumnsVisibility","cn","makeDecoratable","defineColumns","columns","options","canSelectAllRows","onSelectRow","onToggleRow","loading","columnsList","Object","keys","map","key","id","defaults","column","cell","className","enableHiding","enableResizing","enableSorting","header","size","accessorKey","props","row","original","getValue","String","meta","columnsDefs","firstColumn","isSelectable","createElement","indeterminate","table","getIsSomeRowsSelected","checked","getIsAllRowsSelected","onChange","toggleAllPageRowsSelected","disabled","onClick","e","stopPropagation","getIsSelected","value","toggleSelected","getCanSelect","slice","type","typedMemo","TableCell","getColumnWidth","width","Cell","assign","columnDef","style","maxWidth","getContext","MemoTableCell","TableRow","selected","cells","Row","MemoTableRow","emptyArray","Array","fill","DecoratableDataTable","bordered","columnVisibility","initialColumns","data","initialData","initialSorting","isRowSelectable","onColumnVisibilityChange","onSortingChange","selectedRows","sorting","stickyHeader","tableRef","tableWidth","setTableWidth","updateElementWidth","current","clientWidth","window","addEventListener","removeEventListener","rowSelection","reduce","acc","item","recordIndex","findIndex","rec","onRowSelectionChange","updater","newSelection","toggledRows","filter","x","length","parseInt","selection","tableSorting","isArray","columnResizeMode","enableColumnResizing","enableRowSelection","enableSortingRemoval","manualSorting","state","getCanResize","getSize","tableSize","getTotalSize","columnSize","Math","ceil","tableRows","getRowModel","rows","ref","sticky","Header","getHeaderGroups","headerGroup","headers","index","isLastCell","Head","colSpan","isPlaceholder","getToggleSortingHandler","sortable","getCanSort","Direction","direction","getIsSorted","getAllColumns","Resizer","onMouseDown","getResizeHandler","onTouchStart","isResizing","getIsResizing","Body","getVisibleCells","DataTable"],"sources":["DataTable.tsx"],"sourcesContent":["import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n Cell,\n Column,\n ColumnDef,\n ColumnSort,\n OnChangeFn,\n Row,\n RowSelectionState,\n SortingState,\n VisibilityState\n} from \"@tanstack/react-table\";\nimport {\n flexRender,\n getCoreRowModel,\n getSortedRowModel,\n useReactTable\n} from \"@tanstack/react-table\";\nimport { CheckboxPrimitive } from \"~/Checkbox/index.js\";\nimport { Skeleton } from \"~/Skeleton/index.js\";\nimport { Table } from \"~/Table/index.js\";\nimport { ColumnSorter, ColumnsVisibility } from \"./components/index.js\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\n\ninterface DataTableColumn<T> {\n /*\n * Column header component.\n */\n header?: string | number | JSX.Element;\n /*\n * Cell renderer, receives the full row and returns the value to render inside the cell.\n */\n cell?: (row: T) => string | number | JSX.Element | null;\n /*\n * Column size.\n */\n size?: number;\n /*\n * Column class names.\n */\n className?: string;\n /*\n * Enable column sorting.\n */\n enableSorting?: boolean;\n /*\n * Enable column resizing.\n */\n enableResizing?: boolean;\n /*\n * Enable column visibility toggling.\n */\n enableHiding?: boolean;\n}\n\ntype DataTableColumns<T> = {\n [P in keyof T]?: DataTableColumn<T>;\n};\n\ntype DataTableDefaultData = {\n id: string;\n /*\n * Define if a specific row can be selected.\n */\n $selectable?: boolean;\n};\n\ntype DataTableRow<T> = Row<DataTableDefaultData & T>;\n\ntype DataTableSorting = SortingState;\n\ntype DataTableColumnSort = ColumnSort;\n\ntype OnDataTableSortingChange = OnChangeFn<DataTableSorting>;\n\ntype DataTableColumnVisibility = VisibilityState;\n\ntype OnDataTableColumnVisibilityChange = OnChangeFn<DataTableColumnVisibility>;\n\ninterface DataTableProps<TEntry> {\n /**\n * Show or hide borders.\n */\n bordered?: boolean;\n /**\n * Controls whether \"select all\" action is allowed.\n */\n canSelectAllRows?: boolean;\n /**\n * Columns definition.\n */\n columns: DataTableColumns<TEntry>;\n /**\n * The column visibility state.\n */\n columnVisibility?: DataTableColumnVisibility;\n /**\n * Callback that receives current column visibility state.\n */\n onColumnVisibilityChange?: OnDataTableColumnVisibilityChange;\n /**\n * Data to display into DataTable body.\n */\n data: TEntry[];\n /**\n * Callback that is called to determine if the row is selectable.\n */\n isRowSelectable?: (row: Row<TEntry>) => boolean;\n /**\n * Render the skeleton state while data are loading.\n */\n loading?: boolean;\n /**\n * Callback that receives the selected rows.\n */\n onSelectRow?: (rows: TEntry[]) => void;\n /**\n * Callback that receives the toggled row.\n */\n onToggleRow?: (row: TEntry) => void;\n /**\n * Callback that receives current sorting state.\n */\n onSortingChange?: OnDataTableSortingChange;\n /**\n * Selected rows.\n */\n selectedRows?: TEntry[];\n /**\n * Sorting state.\n */\n sorting?: DataTableSorting;\n /**\n * Initial sorting state.\n */\n initialSorting?: DataTableSorting;\n /**\n * Enable sticky header.\n */\n stickyHeader?: boolean;\n}\n\ninterface DefineColumnsOptions<TEntry> {\n canSelectAllRows: boolean;\n onSelectRow?: DataTableProps<TEntry>[\"onSelectRow\"];\n onToggleRow: DataTableProps<TEntry>[\"onToggleRow\"];\n loading: DataTableProps<TEntry>[\"loading\"];\n}\n\nconst defineColumns = <T,>(\n columns: DataTableProps<T>[\"columns\"],\n options: DefineColumnsOptions<T>\n): ColumnDef<T>[] => {\n const { canSelectAllRows, onSelectRow, onToggleRow, loading } = options;\n\n return useMemo(() => {\n const columnsList = Object.keys(columns).map(key => ({\n id: key,\n ...columns[key as keyof typeof columns]\n }));\n\n const defaults: ColumnDef<T>[] = columnsList.map(column => {\n const {\n cell,\n className,\n enableHiding = true,\n enableResizing = true,\n enableSorting = false,\n header,\n id,\n size = 100\n } = column;\n\n return {\n id,\n accessorKey: id,\n header: () => header,\n cell: props => {\n if (cell && typeof cell === \"function\") {\n return cell(props.row.original);\n } else {\n // Automatically convert any cell value to a string for rendering,\n // ensuring the table displays values correctly. This aligns with React's\n // rendering, which expects JSX, strings or null.\n // https://github.com/TanStack/table/issues/1042\n return props.getValue() ? String(props.getValue()) : null;\n }\n },\n enableSorting,\n meta: {\n className\n },\n enableResizing,\n size,\n enableHiding\n };\n });\n\n let columnsDefs = defaults;\n const firstColumn = defaults[0];\n const isSelectable = onToggleRow || onSelectRow;\n\n if (isSelectable && firstColumn) {\n columnsDefs = [\n {\n ...firstColumn,\n accessorKey: firstColumn.id as string,\n header: props => {\n if (!props) {\n return null;\n }\n\n return (\n <div className={\"flex items-center gap-xl\"}>\n <CheckboxPrimitive\n indeterminate={props.table.getIsSomeRowsSelected()}\n checked={props.table.getIsAllRowsSelected()}\n onChange={props.table.toggleAllPageRowsSelected}\n aria-label=\"Select all\"\n disabled={!canSelectAllRows}\n onClick={e => e.stopPropagation()}\n />\n {firstColumn.header\n ? React.createElement(firstColumn.header, props)\n : null}\n </div>\n );\n },\n cell: props => {\n if (!props) {\n return null;\n }\n return (\n <div className={\"flex items-center gap-xl\"}>\n <CheckboxPrimitive\n checked={props.row.getIsSelected()}\n onChange={value => props.row.toggleSelected(!!value)}\n disabled={!props.row.getCanSelect()}\n aria-label=\"Select row\"\n className={cn(!props.row.getCanSelect() ? \"invisible\" : \"\")}\n />\n {firstColumn.cell\n ? React.createElement(firstColumn.cell, props)\n : null}\n </div>\n );\n }\n },\n ...defaults.slice(1)\n ];\n }\n\n return columnsDefs.map(column => {\n if (loading) {\n return {\n ...column,\n cell: () => <Skeleton type={\"text\"} size={\"md\"} />\n };\n }\n\n return column;\n });\n }, [columns, onSelectRow, onToggleRow, loading]);\n};\n\nconst typedMemo: <T>(component: T) => T = memo;\n\ninterface TableCellProps<T> {\n cell: Cell<T, unknown>;\n getColumnWidth: (column: Column<T>) => number;\n}\n\nconst TableCell = <T,>({ cell, getColumnWidth }: TableCellProps<T>) => {\n const width = getColumnWidth(cell.column);\n\n return (\n <Table.Cell {...cell.column.columnDef.meta} style={{ width, maxWidth: width }}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n};\n\nconst MemoTableCell = typedMemo(TableCell);\n\ninterface TableRowProps<T> {\n selected: boolean;\n cells: Cell<T, unknown>[];\n getColumnWidth: (column: Column<T>) => number;\n}\n\nconst TableRow = <T,>({ selected, cells, getColumnWidth }: TableRowProps<T>) => {\n return (\n <Table.Row selected={selected}>\n {cells.map(cell => (\n <MemoTableCell<T> key={cell.id} cell={cell} getColumnWidth={getColumnWidth} />\n ))}\n </Table.Row>\n );\n};\n\nconst MemoTableRow = typedMemo(TableRow);\n\n/**\n * Empty array must be defined outside the React component so it does not force rerendering of the DataTable\n */\nconst emptyArray = Array(10).fill({});\n\nconst DecoratableDataTable = <T extends Record<string, any> & DataTableDefaultData>({\n bordered,\n canSelectAllRows = true,\n columnVisibility,\n columns: initialColumns,\n data: initialData,\n initialSorting,\n isRowSelectable,\n loading,\n onColumnVisibilityChange,\n onSelectRow,\n onSortingChange,\n onToggleRow,\n selectedRows = [],\n sorting,\n stickyHeader\n}: DataTableProps<T>) => {\n const tableRef = useRef<HTMLDivElement>(null);\n const [tableWidth, setTableWidth] = useState(1);\n\n const data = loading ? emptyArray : initialData;\n\n useEffect(() => {\n const updateElementWidth = () => {\n if (tableRef.current) {\n const width = tableRef.current.clientWidth;\n setTableWidth(width);\n }\n };\n\n updateElementWidth();\n\n window.addEventListener(\"resize\", updateElementWidth);\n\n return () => {\n window.removeEventListener(\"resize\", updateElementWidth);\n };\n }, [tableRef.current]);\n\n const rowSelection = useMemo(() => {\n return selectedRows.reduce<RowSelectionState>((acc, item) => {\n const recordIndex = data.findIndex(rec => rec.id === item.id);\n return { ...acc, [recordIndex]: true };\n }, {});\n }, [selectedRows, data]);\n\n const onRowSelectionChange: OnChangeFn<RowSelectionState> = updater => {\n const newSelection = typeof updater === \"function\" ? updater(rowSelection) : updater;\n\n /**\n * `@tanstack/react-table` isn't telling us what row was selected or deselected. It simply gives us\n * the new selection state (an object with row indexes that are currently selected).\n *\n * To figure out what row was toggled, we need to calculate the difference between the old selection\n * and the new selection. What we're doing here is:\n * - find all items that were present in the previous selection, but are no longer present in the new selection\n * - find all items that are present in the new selection, but were not present in the previous selection\n */\n const toggledRows = [\n ...Object.keys(rowSelection).filter(x => !(x in newSelection)),\n ...Object.keys(newSelection).filter(x => !(x in rowSelection))\n ];\n\n // If the difference is only 1 item, and `onToggleRow` is available, execute that.\n if (toggledRows.length === 1 && typeof onToggleRow === \"function\") {\n onToggleRow(data[parseInt(toggledRows[0])]);\n return;\n } else if (typeof onSelectRow === \"function\") {\n const selection = Object.keys(newSelection).map(key => data[parseInt(key)]);\n onSelectRow(selection);\n }\n };\n\n const tableSorting = useMemo(() => {\n if (!Array.isArray(sorting) || !sorting.length) {\n return initialSorting;\n }\n return sorting;\n }, [sorting]);\n\n const columns = defineColumns(initialColumns, {\n canSelectAllRows,\n onSelectRow,\n onToggleRow,\n loading\n });\n\n const table = useReactTable<T>({\n columnResizeMode: \"onChange\",\n columns,\n data,\n enableColumnResizing: true,\n enableHiding: !!onColumnVisibilityChange,\n enableRowSelection: isRowSelectable,\n enableSorting: !!onSortingChange,\n enableSortingRemoval: false,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualSorting: true,\n onColumnVisibilityChange,\n onRowSelectionChange,\n onSortingChange,\n state: {\n columnVisibility,\n rowSelection,\n sorting: tableSorting\n }\n });\n\n const getColumnWidth = useCallback(\n (column: Column<T>): number => {\n if (!column.getCanResize()) {\n return column.getSize();\n }\n\n const tableSize = table.getTotalSize();\n const columnSize = column.getSize();\n\n return Math.ceil((columnSize * tableWidth) / tableSize);\n },\n [table, tableWidth]\n );\n\n /**\n * Had to memoize the rows to avoid browser freeze.\n */\n const tableRows = useMemo(() => {\n return table.getRowModel().rows;\n }, [table, data, columns]);\n\n return (\n <div ref={tableRef}>\n <Table bordered={bordered} sticky={stickyHeader}>\n <Table.Header sticky={stickyHeader}>\n {table.getHeaderGroups().map(headerGroup => (\n <Table.Row key={headerGroup.id}>\n {headerGroup.headers.map((header, index) => {\n const isLastCell = index === headerGroup.headers.length - 1;\n const width = getColumnWidth(header.column);\n\n return (\n <Table.Head\n key={header.id}\n {...header.column.columnDef.meta}\n colSpan={header.colSpan}\n style={{ width, maxWidth: width }}\n >\n {header.isPlaceholder ? null : (\n <ColumnSorter\n onClick={header.column.getToggleSortingHandler()}\n sortable={header.column.getCanSort()}\n >\n <div className=\"w-full overflow-hidden whitespace-nowrap truncate\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </div>\n <Table.Direction\n direction={header.column.getIsSorted() || null}\n />\n {isLastCell && (\n <div className={\"mr-xs h-md\"}>\n <ColumnsVisibility\n columns={table.getAllColumns()}\n />\n </div>\n )}\n </ColumnSorter>\n )}\n {header.column.getCanResize() && (\n <Table.Resizer\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n isResizing={header.column.getIsResizing()}\n />\n )}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body>\n {tableRows.map(row => {\n const id = row.original.id || row.id;\n return (\n <MemoTableRow<T>\n key={id}\n cells={row.getVisibleCells()}\n selected={row.getIsSelected()}\n getColumnWidth={getColumnWidth}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst DataTable = makeDecoratable(\"DataTable\", DecoratableDataTable);\n\nexport {\n DataTable,\n type DataTableProps,\n type DataTableColumn,\n type DataTableColumns,\n type DataTableDefaultData,\n type DataTableRow,\n type DataTableSorting,\n type DataTableColumnSort,\n type OnDataTableSortingChange,\n type DataTableColumnVisibility,\n type OnDataTableColumnVisibilityChange\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAYtF,SACIC,UAAU,EACVC,eAAe,EACfC,iBAAiB,EACjBC,aAAa,QACV,uBAAuB;AAC9B,SAASC,iBAAiB;AAC1B,SAASC,QAAQ;AACjB,SAASC,KAAK;AACd,SAASC,YAAY,EAAEC,iBAAiB;AACxC,SAASC,EAAE,EAAEC,eAAe;AA+H5B,MAAMC,aAAa,GAAGA,CAClBC,OAAqC,EACrCC,OAAgC,KACf;EACjB,MAAM;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EAAQ,CAAC,GAAGJ,OAAO;EAEvE,OAAOhB,OAAO,CAAC,MAAM;IACjB,MAAMqB,WAAW,GAAGC,MAAM,CAACC,IAAI,CAACR,OAAO,CAAC,CAACS,GAAG,CAACC,GAAG,KAAK;MACjDC,EAAE,EAAED,GAAG;MACP,GAAGV,OAAO,CAACU,GAAG;IAClB,CAAC,CAAC,CAAC;IAEH,MAAME,QAAwB,GAAGN,WAAW,CAACG,GAAG,CAACI,MAAM,IAAI;MACvD,MAAM;QACFC,IAAI;QACJC,SAAS;QACTC,YAAY,GAAG,IAAI;QACnBC,cAAc,GAAG,IAAI;QACrBC,aAAa,GAAG,KAAK;QACrBC,MAAM;QACNR,EAAE;QACFS,IAAI,GAAG;MACX,CAAC,GAAGP,MAAM;MAEV,OAAO;QACHF,EAAE;QACFU,WAAW,EAAEV,EAAE;QACfQ,MAAM,EAAEA,CAAA,KAAMA,MAAM;QACpBL,IAAI,EAAEQ,KAAK,IAAI;UACX,IAAIR,IAAI,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;YACpC,OAAOA,IAAI,CAACQ,KAAK,CAACC,GAAG,CAACC,QAAQ,CAAC;UACnC,CAAC,MAAM;YACH;YACA;YACA;YACA;YACA,OAAOF,KAAK,CAACG,QAAQ,CAAC,CAAC,GAAGC,MAAM,CAACJ,KAAK,CAACG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;UAC7D;QACJ,CAAC;QACDP,aAAa;QACbS,IAAI,EAAE;UACFZ;QACJ,CAAC;QACDE,cAAc;QACdG,IAAI;QACJJ;MACJ,CAAC;IACL,CAAC,CAAC;IAEF,IAAIY,WAAW,GAAGhB,QAAQ;IAC1B,MAAMiB,WAAW,GAAGjB,QAAQ,CAAC,CAAC,CAAC;IAC/B,MAAMkB,YAAY,GAAG1B,WAAW,IAAID,WAAW;IAE/C,IAAI2B,YAAY,IAAID,WAAW,EAAE;MAC7BD,WAAW,GAAG,CACV;QACI,GAAGC,WAAW;QACdR,WAAW,EAAEQ,WAAW,CAAClB,EAAY;QACrCQ,MAAM,EAAEG,KAAK,IAAI;UACb,IAAI,CAACA,KAAK,EAAE;YACR,OAAO,IAAI;UACf;UAEA,oBACIzC,KAAA,CAAAkD,aAAA;YAAKhB,SAAS,EAAE;UAA2B,gBACvClC,KAAA,CAAAkD,aAAA,CAACvC,iBAAiB;YACdwC,aAAa,EAAEV,KAAK,CAACW,KAAK,CAACC,qBAAqB,CAAC,CAAE;YACnDC,OAAO,EAAEb,KAAK,CAACW,KAAK,CAACG,oBAAoB,CAAC,CAAE;YAC5CC,QAAQ,EAAEf,KAAK,CAACW,KAAK,CAACK,yBAA0B;YAChD,cAAW,YAAY;YACvBC,QAAQ,EAAE,CAACrC,gBAAiB;YAC5BsC,OAAO,EAAEC,CAAC,IAAIA,CAAC,CAACC,eAAe,CAAC;UAAE,CACrC,CAAC,EACDb,WAAW,CAACV,MAAM,gBACbtC,KAAK,CAACkD,aAAa,CAACF,WAAW,CAACV,MAAM,EAAEG,KAAK,CAAC,GAC9C,IACL,CAAC;QAEd,CAAC;QACDR,IAAI,EAAEQ,KAAK,IAAI;UACX,IAAI,CAACA,KAAK,EAAE;YACR,OAAO,IAAI;UACf;UACA,oBACIzC,KAAA,CAAAkD,aAAA;YAAKhB,SAAS,EAAE;UAA2B,gBACvClC,KAAA,CAAAkD,aAAA,CAACvC,iBAAiB;YACd2C,OAAO,EAAEb,KAAK,CAACC,GAAG,CAACoB,aAAa,CAAC,CAAE;YACnCN,QAAQ,EAAEO,KAAK,IAAItB,KAAK,CAACC,GAAG,CAACsB,cAAc,CAAC,CAAC,CAACD,KAAK,CAAE;YACrDL,QAAQ,EAAE,CAACjB,KAAK,CAACC,GAAG,CAACuB,YAAY,CAAC,CAAE;YACpC,cAAW,YAAY;YACvB/B,SAAS,EAAElB,EAAE,CAAC,CAACyB,KAAK,CAACC,GAAG,CAACuB,YAAY,CAAC,CAAC,GAAG,WAAW,GAAG,EAAE;UAAE,CAC/D,CAAC,EACDjB,WAAW,CAACf,IAAI,gBACXjC,KAAK,CAACkD,aAAa,CAACF,WAAW,CAACf,IAAI,EAAEQ,KAAK,CAAC,GAC5C,IACL,CAAC;QAEd;MACJ,CAAC,EACD,GAAGV,QAAQ,CAACmC,KAAK,CAAC,CAAC,CAAC,CACvB;IACL;IAEA,OAAOnB,WAAW,CAACnB,GAAG,CAACI,MAAM,IAAI;MAC7B,IAAIR,OAAO,EAAE;QACT,OAAO;UACH,GAAGQ,MAAM;UACTC,IAAI,EAAEA,CAAA,kBAAMjC,KAAA,CAAAkD,aAAA,CAACtC,QAAQ;YAACuD,IAAI,EAAE,MAAO;YAAC5B,IAAI,EAAE;UAAK,CAAE;QACrD,CAAC;MACL;MAEA,OAAOP,MAAM;IACjB,CAAC,CAAC;EACN,CAAC,EAAE,CAACb,OAAO,EAAEG,WAAW,EAAEC,WAAW,EAAEC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM4C,SAAiC,GAAGnE,IAAI;AAO9C,MAAMoE,SAAS,GAAGA,CAAK;EAAEpC,IAAI;EAAEqC;AAAkC,CAAC,KAAK;EACnE,MAAMC,KAAK,GAAGD,cAAc,CAACrC,IAAI,CAACD,MAAM,CAAC;EAEzC,oBACIhC,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAAC2D,IAAI,EAAA9C,MAAA,CAAA+C,MAAA,KAAKxC,IAAI,CAACD,MAAM,CAAC0C,SAAS,CAAC5B,IAAI;IAAE6B,KAAK,EAAE;MAAEJ,KAAK;MAAEK,QAAQ,EAAEL;IAAM;EAAE,IACzEhE,UAAU,CAAC0B,IAAI,CAACD,MAAM,CAAC0C,SAAS,CAACzC,IAAI,EAAEA,IAAI,CAAC4C,UAAU,CAAC,CAAC,CACjD,CAAC;AAErB,CAAC;AAED,MAAMC,aAAa,GAAGV,SAAS,CAACC,SAAS,CAAC;AAQ1C,MAAMU,QAAQ,GAAGA,CAAK;EAAEC,QAAQ;EAAEC,KAAK;EAAEX;AAAiC,CAAC,KAAK;EAC5E,oBACItE,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAACqE,GAAG;IAACF,QAAQ,EAAEA;EAAS,GACzBC,KAAK,CAACrD,GAAG,CAACK,IAAI,iBACXjC,KAAA,CAAAkD,aAAA,CAAC4B,aAAa;IAAIjD,GAAG,EAAEI,IAAI,CAACH,EAAG;IAACG,IAAI,EAAEA,IAAK;IAACqC,cAAc,EAAEA;EAAe,CAAE,CAChF,CACM,CAAC;AAEpB,CAAC;AAED,MAAMa,YAAY,GAAGf,SAAS,CAACW,QAAQ,CAAC;;AAExC;AACA;AACA;AACA,MAAMK,UAAU,GAAGC,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC;AAErC,MAAMC,oBAAoB,GAAGA,CAAuD;EAChFC,QAAQ;EACRnE,gBAAgB,GAAG,IAAI;EACvBoE,gBAAgB;EAChBtE,OAAO,EAAEuE,cAAc;EACvBC,IAAI,EAAEC,WAAW;EACjBC,cAAc;EACdC,eAAe;EACftE,OAAO;EACPuE,wBAAwB;EACxBzE,WAAW;EACX0E,eAAe;EACfzE,WAAW;EACX0E,YAAY,GAAG,EAAE;EACjBC,OAAO;EACPC;AACe,CAAC,KAAK;EACrB,MAAMC,QAAQ,GAAG/F,MAAM,CAAiB,IAAI,CAAC;EAC7C,MAAM,CAACgG,UAAU,EAAEC,aAAa,CAAC,GAAGhG,QAAQ,CAAC,CAAC,CAAC;EAE/C,MAAMqF,IAAI,GAAGnE,OAAO,GAAG4D,UAAU,GAAGQ,WAAW;EAE/CzF,SAAS,CAAC,MAAM;IACZ,MAAMoG,kBAAkB,GAAGA,CAAA,KAAM;MAC7B,IAAIH,QAAQ,CAACI,OAAO,EAAE;QAClB,MAAMjC,KAAK,GAAG6B,QAAQ,CAACI,OAAO,CAACC,WAAW;QAC1CH,aAAa,CAAC/B,KAAK,CAAC;MACxB;IACJ,CAAC;IAEDgC,kBAAkB,CAAC,CAAC;IAEpBG,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEJ,kBAAkB,CAAC;IAErD,OAAO,MAAM;MACTG,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEL,kBAAkB,CAAC;IAC5D,CAAC;EACL,CAAC,EAAE,CAACH,QAAQ,CAACI,OAAO,CAAC,CAAC;EAEtB,MAAMK,YAAY,GAAGzG,OAAO,CAAC,MAAM;IAC/B,OAAO6F,YAAY,CAACa,MAAM,CAAoB,CAACC,GAAG,EAAEC,IAAI,KAAK;MACzD,MAAMC,WAAW,GAAGtB,IAAI,CAACuB,SAAS,CAACC,GAAG,IAAIA,GAAG,CAACrF,EAAE,KAAKkF,IAAI,CAAClF,EAAE,CAAC;MAC7D,OAAO;QAAE,GAAGiF,GAAG;QAAE,CAACE,WAAW,GAAG;MAAK,CAAC;IAC1C,CAAC,EAAE,CAAC,CAAC,CAAC;EACV,CAAC,EAAE,CAAChB,YAAY,EAAEN,IAAI,CAAC,CAAC;EAExB,MAAMyB,oBAAmD,GAAGC,OAAO,IAAI;IACnE,MAAMC,YAAY,GAAG,OAAOD,OAAO,KAAK,UAAU,GAAGA,OAAO,CAACR,YAAY,CAAC,GAAGQ,OAAO;;IAEpF;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,MAAME,WAAW,GAAG,CAChB,GAAG7F,MAAM,CAACC,IAAI,CAACkF,YAAY,CAAC,CAACW,MAAM,CAACC,CAAC,IAAI,EAAEA,CAAC,IAAIH,YAAY,CAAC,CAAC,EAC9D,GAAG5F,MAAM,CAACC,IAAI,CAAC2F,YAAY,CAAC,CAACE,MAAM,CAACC,CAAC,IAAI,EAAEA,CAAC,IAAIZ,YAAY,CAAC,CAAC,CACjE;;IAED;IACA,IAAIU,WAAW,CAACG,MAAM,KAAK,CAAC,IAAI,OAAOnG,WAAW,KAAK,UAAU,EAAE;MAC/DA,WAAW,CAACoE,IAAI,CAACgC,QAAQ,CAACJ,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAC3C;IACJ,CAAC,MAAM,IAAI,OAAOjG,WAAW,KAAK,UAAU,EAAE;MAC1C,MAAMsG,SAAS,GAAGlG,MAAM,CAACC,IAAI,CAAC2F,YAAY,CAAC,CAAC1F,GAAG,CAACC,GAAG,IAAI8D,IAAI,CAACgC,QAAQ,CAAC9F,GAAG,CAAC,CAAC,CAAC;MAC3EP,WAAW,CAACsG,SAAS,CAAC;IAC1B;EACJ,CAAC;EAED,MAAMC,YAAY,GAAGzH,OAAO,CAAC,MAAM;IAC/B,IAAI,CAACiF,KAAK,CAACyC,OAAO,CAAC5B,OAAO,CAAC,IAAI,CAACA,OAAO,CAACwB,MAAM,EAAE;MAC5C,OAAO7B,cAAc;IACzB;IACA,OAAOK,OAAO;EAClB,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAM/E,OAAO,GAAGD,aAAa,CAACwE,cAAc,EAAE;IAC1CrE,gBAAgB;IAChBC,WAAW;IACXC,WAAW;IACXC;EACJ,CAAC,CAAC;EAEF,MAAM4B,KAAK,GAAG1C,aAAa,CAAI;IAC3BqH,gBAAgB,EAAE,UAAU;IAC5B5G,OAAO;IACPwE,IAAI;IACJqC,oBAAoB,EAAE,IAAI;IAC1B7F,YAAY,EAAE,CAAC,CAAC4D,wBAAwB;IACxCkC,kBAAkB,EAAEnC,eAAe;IACnCzD,aAAa,EAAE,CAAC,CAAC2D,eAAe;IAChCkC,oBAAoB,EAAE,KAAK;IAC3B1H,eAAe,EAAEA,eAAe,CAAC,CAAC;IAClCC,iBAAiB,EAAEA,iBAAiB,CAAC,CAAC;IACtC0H,aAAa,EAAE,IAAI;IACnBpC,wBAAwB;IACxBqB,oBAAoB;IACpBpB,eAAe;IACfoC,KAAK,EAAE;MACH3C,gBAAgB;MAChBoB,YAAY;MACZX,OAAO,EAAE2B;IACb;EACJ,CAAC,CAAC;EAEF,MAAMvD,cAAc,GAAGpE,WAAW,CAC7B8B,MAAiB,IAAa;IAC3B,IAAI,CAACA,MAAM,CAACqG,YAAY,CAAC,CAAC,EAAE;MACxB,OAAOrG,MAAM,CAACsG,OAAO,CAAC,CAAC;IAC3B;IAEA,MAAMC,SAAS,GAAGnF,KAAK,CAACoF,YAAY,CAAC,CAAC;IACtC,MAAMC,UAAU,GAAGzG,MAAM,CAACsG,OAAO,CAAC,CAAC;IAEnC,OAAOI,IAAI,CAACC,IAAI,CAAEF,UAAU,GAAGpC,UAAU,GAAIkC,SAAS,CAAC;EAC3D,CAAC,EACD,CAACnF,KAAK,EAAEiD,UAAU,CACtB,CAAC;;EAED;AACJ;AACA;EACI,MAAMuC,SAAS,GAAGxI,OAAO,CAAC,MAAM;IAC5B,OAAOgD,KAAK,CAACyF,WAAW,CAAC,CAAC,CAACC,IAAI;EACnC,CAAC,EAAE,CAAC1F,KAAK,EAAEuC,IAAI,EAAExE,OAAO,CAAC,CAAC;EAE1B,oBACInB,KAAA,CAAAkD,aAAA;IAAK6F,GAAG,EAAE3C;EAAS,gBACfpG,KAAA,CAAAkD,aAAA,CAACrC,KAAK;IAAC2E,QAAQ,EAAEA,QAAS;IAACwD,MAAM,EAAE7C;EAAa,gBAC5CnG,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAACoI,MAAM;IAACD,MAAM,EAAE7C;EAAa,GAC9B/C,KAAK,CAAC8F,eAAe,CAAC,CAAC,CAACtH,GAAG,CAACuH,WAAW,iBACpCnJ,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAACqE,GAAG;IAACrD,GAAG,EAAEsH,WAAW,CAACrH;EAAG,GAC1BqH,WAAW,CAACC,OAAO,CAACxH,GAAG,CAAC,CAACU,MAAM,EAAE+G,KAAK,KAAK;IACxC,MAAMC,UAAU,GAAGD,KAAK,KAAKF,WAAW,CAACC,OAAO,CAAC1B,MAAM,GAAG,CAAC;IAC3D,MAAMnD,KAAK,GAAGD,cAAc,CAAChC,MAAM,CAACN,MAAM,CAAC;IAE3C,oBACIhC,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAAC0I,IAAI,EAAA7H,MAAA,CAAA+C,MAAA;MACP5C,GAAG,EAAES,MAAM,CAACR;IAAG,GACXQ,MAAM,CAACN,MAAM,CAAC0C,SAAS,CAAC5B,IAAI;MAChC0G,OAAO,EAAElH,MAAM,CAACkH,OAAQ;MACxB7E,KAAK,EAAE;QAAEJ,KAAK;QAAEK,QAAQ,EAAEL;MAAM;IAAE,IAEjCjC,MAAM,CAACmH,aAAa,GAAG,IAAI,gBACxBzJ,KAAA,CAAAkD,aAAA,CAACpC,YAAY;MACT6C,OAAO,EAAErB,MAAM,CAACN,MAAM,CAAC0H,uBAAuB,CAAC,CAAE;MACjDC,QAAQ,EAAErH,MAAM,CAACN,MAAM,CAAC4H,UAAU,CAAC;IAAE,gBAErC5J,KAAA,CAAAkD,aAAA;MAAKhB,SAAS,EAAC;IAAmD,GAC7D3B,UAAU,CACP+B,MAAM,CAACN,MAAM,CAAC0C,SAAS,CAACpC,MAAM,EAC9BA,MAAM,CAACuC,UAAU,CAAC,CACtB,CACC,CAAC,eACN7E,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAACgJ,SAAS;MACZC,SAAS,EAAExH,MAAM,CAACN,MAAM,CAAC+H,WAAW,CAAC,CAAC,IAAI;IAAK,CAClD,CAAC,EACDT,UAAU,iBACPtJ,KAAA,CAAAkD,aAAA;MAAKhB,SAAS,EAAE;IAAa,gBACzBlC,KAAA,CAAAkD,aAAA,CAACnC,iBAAiB;MACdI,OAAO,EAAEiC,KAAK,CAAC4G,aAAa,CAAC;IAAE,CAClC,CACA,CAEC,CACjB,EACA1H,MAAM,CAACN,MAAM,CAACqG,YAAY,CAAC,CAAC,iBACzBrI,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAACoJ,OAAO;MACVC,WAAW,EAAE5H,MAAM,CAAC6H,gBAAgB,CAAC,CAAE;MACvCC,YAAY,EAAE9H,MAAM,CAAC6H,gBAAgB,CAAC,CAAE;MACxCE,UAAU,EAAE/H,MAAM,CAACN,MAAM,CAACsI,aAAa,CAAC;IAAE,CAC7C,CAEG,CAAC;EAErB,CAAC,CACM,CACd,CACS,CAAC,eACftK,KAAA,CAAAkD,aAAA,CAACrC,KAAK,CAAC0J,IAAI,QACN3B,SAAS,CAAChH,GAAG,CAACc,GAAG,IAAI;IAClB,MAAMZ,EAAE,GAAGY,GAAG,CAACC,QAAQ,CAACb,EAAE,IAAIY,GAAG,CAACZ,EAAE;IACpC,oBACI9B,KAAA,CAAAkD,aAAA,CAACiC,YAAY;MACTtD,GAAG,EAAEC,EAAG;MACRmD,KAAK,EAAEvC,GAAG,CAAC8H,eAAe,CAAC,CAAE;MAC7BxF,QAAQ,EAAEtC,GAAG,CAACoB,aAAa,CAAC,CAAE;MAC9BQ,cAAc,EAAEA;IAAe,CAClC,CAAC;EAEV,CAAC,CACO,CACT,CACN,CAAC;AAEd,CAAC;AAED,MAAMmG,SAAS,GAAGxJ,eAAe,CAAC,WAAW,EAAEsE,oBAAoB,CAAC;AAEpE,SACIkF,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useCallback","useEffect","useMemo","useRef","useState","flexRender","getCoreRowModel","getSortedRowModel","useReactTable","CheckboxPrimitive","Skeleton","Table","ColumnSorter","ColumnsVisibility","cn","makeDecoratable","defineColumns","columns","options","canSelectAllRows","onSelectRow","onToggleRow","loading","columnsList","Object","keys","map","key","id","defaults","column","accessorKey","cell","className","enableHiding","enableResizing","enableSorting","header","size","props","row","original","getValue","String","meta","columnsDefs","firstColumn","isSelectable","createElement","indeterminate","table","getIsSomeRowsSelected","checked","getIsAllRowsSelected","onChange","toggleAllPageRowsSelected","disabled","onClick","e","stopPropagation","getIsSelected","value","toggleSelected","getCanSelect","slice","type","typedMemo","TableCell","getColumnWidth","width","Cell","assign","columnDef","style","maxWidth","getContext","MemoTableCell","TableRow","selected","cells","Row","MemoTableRow","emptyArray","Array","fill","DecoratableDataTable","bordered","columnVisibility","initialColumns","data","initialData","initialSorting","isRowSelectable","onColumnVisibilityChange","onSortingChange","selectedRows","sorting","stickyHeader","tableRef","tableWidth","setTableWidth","updateElementWidth","current","clientWidth","window","addEventListener","removeEventListener","rowSelection","reduce","acc","item","recordIndex","findIndex","rec","onRowSelectionChange","updater","newSelection","toggledRows","filter","x","length","parseInt","selection","tableSorting","isArray","columnResizeMode","enableColumnResizing","enableRowSelection","enableSortingRemoval","manualSorting","state","getCanResize","getSize","tableSize","getTotalSize","columnSize","Math","ceil","tableRows","getRowModel","rows","ref","sticky","Header","getHeaderGroups","headerGroup","headers","index","isLastCell","Head","colSpan","isPlaceholder","getToggleSortingHandler","sortable","getCanSort","Direction","direction","getIsSorted","getAllColumns","Resizer","onMouseDown","getResizeHandler","onTouchStart","isResizing","getIsResizing","Body","getVisibleCells","DataTable"],"sources":["DataTable.tsx"],"sourcesContent":["import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n Cell,\n Column,\n ColumnDef,\n ColumnSort,\n OnChangeFn,\n Row,\n RowSelectionState,\n SortingState,\n VisibilityState\n} from \"@tanstack/react-table\";\nimport {\n flexRender,\n getCoreRowModel,\n getSortedRowModel,\n useReactTable\n} from \"@tanstack/react-table\";\nimport { CheckboxPrimitive } from \"~/Checkbox/index.js\";\nimport { Skeleton } from \"~/Skeleton/index.js\";\nimport { Table } from \"~/Table/index.js\";\nimport { ColumnSorter, ColumnsVisibility } from \"./components/index.js\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\n\ninterface DataTableColumn<T> {\n /*\n * Column header component.\n */\n header?: string | number | JSX.Element;\n /*\n * Cell renderer, receives the full row and returns the value to render inside the cell.\n */\n cell?: (row: T) => string | number | JSX.Element | null;\n /*\n * Column size.\n */\n size?: number;\n /*\n * Column class names.\n */\n className?: string;\n /*\n * Enable column sorting.\n */\n enableSorting?: boolean;\n /*\n * Enable column resizing.\n */\n enableResizing?: boolean;\n /*\n * Enable column visibility toggling.\n */\n enableHiding?: boolean;\n /*\n * Accessor key for the column data path.\n */\n accessorKey?: string;\n}\n\ntype DataTableColumns<T> = {\n [P in keyof T]?: DataTableColumn<T>;\n};\n\ntype DataTableDefaultData = {\n id: string;\n /*\n * Define if a specific row can be selected.\n */\n $selectable?: boolean;\n};\n\ntype DataTableRow<T> = Row<DataTableDefaultData & T>;\n\ntype DataTableSorting = SortingState;\n\ntype DataTableColumnSort = ColumnSort;\n\ntype OnDataTableSortingChange = OnChangeFn<DataTableSorting>;\n\ntype DataTableColumnVisibility = VisibilityState;\n\ntype OnDataTableColumnVisibilityChange = OnChangeFn<DataTableColumnVisibility>;\n\ninterface DataTableProps<TEntry> {\n /**\n * Show or hide borders.\n */\n bordered?: boolean;\n /**\n * Controls whether \"select all\" action is allowed.\n */\n canSelectAllRows?: boolean;\n /**\n * Columns definition.\n */\n columns: DataTableColumns<TEntry>;\n /**\n * The column visibility state.\n */\n columnVisibility?: DataTableColumnVisibility;\n /**\n * Callback that receives current column visibility state.\n */\n onColumnVisibilityChange?: OnDataTableColumnVisibilityChange;\n /**\n * Data to display into DataTable body.\n */\n data: TEntry[];\n /**\n * Callback that is called to determine if the row is selectable.\n */\n isRowSelectable?: (row: Row<TEntry>) => boolean;\n /**\n * Render the skeleton state while data are loading.\n */\n loading?: boolean;\n /**\n * Callback that receives the selected rows.\n */\n onSelectRow?: (rows: TEntry[]) => void;\n /**\n * Callback that receives the toggled row.\n */\n onToggleRow?: (row: TEntry) => void;\n /**\n * Callback that receives current sorting state.\n */\n onSortingChange?: OnDataTableSortingChange;\n /**\n * Selected rows.\n */\n selectedRows?: TEntry[];\n /**\n * Sorting state.\n */\n sorting?: DataTableSorting;\n /**\n * Initial sorting state.\n */\n initialSorting?: DataTableSorting;\n /**\n * Enable sticky header.\n */\n stickyHeader?: boolean;\n}\n\ninterface DefineColumnsOptions<TEntry> {\n canSelectAllRows: boolean;\n onSelectRow?: DataTableProps<TEntry>[\"onSelectRow\"];\n onToggleRow: DataTableProps<TEntry>[\"onToggleRow\"];\n loading: DataTableProps<TEntry>[\"loading\"];\n}\n\nconst defineColumns = <T,>(\n columns: DataTableProps<T>[\"columns\"],\n options: DefineColumnsOptions<T>\n): ColumnDef<T>[] => {\n const { canSelectAllRows, onSelectRow, onToggleRow, loading } = options;\n\n return useMemo(() => {\n const columnsList = Object.keys(columns).map(key => ({\n id: key,\n ...columns[key as keyof typeof columns]\n }));\n\n const defaults: ColumnDef<T>[] = columnsList.map(column => {\n const {\n accessorKey,\n cell,\n className,\n enableHiding = true,\n enableResizing = true,\n enableSorting = false,\n header,\n id,\n size = 100\n } = column;\n\n return {\n id,\n accessorKey: accessorKey || id,\n header: () => header,\n cell: props => {\n if (cell && typeof cell === \"function\") {\n return cell(props.row.original);\n } else {\n // Automatically convert any cell value to a string for rendering,\n // ensuring the table displays values correctly. This aligns with React's\n // rendering, which expects JSX, strings or null.\n // https://github.com/TanStack/table/issues/1042\n return props.getValue() ? String(props.getValue()) : null;\n }\n },\n enableSorting,\n meta: {\n className\n },\n enableResizing,\n size,\n enableHiding\n };\n });\n\n let columnsDefs = defaults;\n const firstColumn = defaults[0];\n const isSelectable = onToggleRow || onSelectRow;\n\n if (isSelectable && firstColumn) {\n columnsDefs = [\n {\n ...firstColumn,\n accessorKey: firstColumn.id as string,\n header: props => {\n if (!props) {\n return null;\n }\n\n return (\n <div className={\"flex items-center gap-xl\"}>\n <CheckboxPrimitive\n indeterminate={props.table.getIsSomeRowsSelected()}\n checked={props.table.getIsAllRowsSelected()}\n onChange={props.table.toggleAllPageRowsSelected}\n aria-label=\"Select all\"\n disabled={!canSelectAllRows}\n onClick={e => e.stopPropagation()}\n />\n {firstColumn.header\n ? React.createElement(firstColumn.header, props)\n : null}\n </div>\n );\n },\n cell: props => {\n if (!props) {\n return null;\n }\n return (\n <div className={\"flex items-center gap-xl\"}>\n <CheckboxPrimitive\n checked={props.row.getIsSelected()}\n onChange={value => props.row.toggleSelected(!!value)}\n disabled={!props.row.getCanSelect()}\n aria-label=\"Select row\"\n className={cn(!props.row.getCanSelect() ? \"invisible\" : \"\")}\n />\n {firstColumn.cell\n ? React.createElement(firstColumn.cell, props)\n : null}\n </div>\n );\n }\n },\n ...defaults.slice(1)\n ];\n }\n\n return columnsDefs.map(column => {\n if (loading) {\n return {\n ...column,\n cell: () => <Skeleton type={\"text\"} size={\"md\"} />\n };\n }\n\n return column;\n });\n }, [columns, onSelectRow, onToggleRow, loading]);\n};\n\nconst typedMemo: <T>(component: T) => T = memo;\n\ninterface TableCellProps<T> {\n cell: Cell<T, unknown>;\n getColumnWidth: (column: Column<T>) => number;\n}\n\nconst TableCell = <T,>({ cell, getColumnWidth }: TableCellProps<T>) => {\n const width = getColumnWidth(cell.column);\n\n return (\n <Table.Cell {...cell.column.columnDef.meta} style={{ width, maxWidth: width }}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n};\n\nconst MemoTableCell = typedMemo(TableCell);\n\ninterface TableRowProps<T> {\n selected: boolean;\n cells: Cell<T, unknown>[];\n getColumnWidth: (column: Column<T>) => number;\n}\n\nconst TableRow = <T,>({ selected, cells, getColumnWidth }: TableRowProps<T>) => {\n return (\n <Table.Row selected={selected}>\n {cells.map(cell => (\n <MemoTableCell<T> key={cell.id} cell={cell} getColumnWidth={getColumnWidth} />\n ))}\n </Table.Row>\n );\n};\n\nconst MemoTableRow = typedMemo(TableRow);\n\n/**\n * Empty array must be defined outside the React component so it does not force rerendering of the DataTable\n */\nconst emptyArray = Array(10).fill({});\n\nconst DecoratableDataTable = <T extends Record<string, any> & DataTableDefaultData>({\n bordered,\n canSelectAllRows = true,\n columnVisibility,\n columns: initialColumns,\n data: initialData,\n initialSorting,\n isRowSelectable,\n loading,\n onColumnVisibilityChange,\n onSelectRow,\n onSortingChange,\n onToggleRow,\n selectedRows = [],\n sorting,\n stickyHeader\n}: DataTableProps<T>) => {\n const tableRef = useRef<HTMLDivElement>(null);\n const [tableWidth, setTableWidth] = useState(1);\n\n const data = loading ? emptyArray : initialData;\n\n useEffect(() => {\n const updateElementWidth = () => {\n if (tableRef.current) {\n const width = tableRef.current.clientWidth;\n setTableWidth(width);\n }\n };\n\n updateElementWidth();\n\n window.addEventListener(\"resize\", updateElementWidth);\n\n return () => {\n window.removeEventListener(\"resize\", updateElementWidth);\n };\n }, [tableRef.current]);\n\n const rowSelection = useMemo(() => {\n return selectedRows.reduce<RowSelectionState>((acc, item) => {\n const recordIndex = data.findIndex(rec => rec.id === item.id);\n return { ...acc, [recordIndex]: true };\n }, {});\n }, [selectedRows, data]);\n\n const onRowSelectionChange: OnChangeFn<RowSelectionState> = updater => {\n const newSelection = typeof updater === \"function\" ? updater(rowSelection) : updater;\n\n /**\n * `@tanstack/react-table` isn't telling us what row was selected or deselected. It simply gives us\n * the new selection state (an object with row indexes that are currently selected).\n *\n * To figure out what row was toggled, we need to calculate the difference between the old selection\n * and the new selection. What we're doing here is:\n * - find all items that were present in the previous selection, but are no longer present in the new selection\n * - find all items that are present in the new selection, but were not present in the previous selection\n */\n const toggledRows = [\n ...Object.keys(rowSelection).filter(x => !(x in newSelection)),\n ...Object.keys(newSelection).filter(x => !(x in rowSelection))\n ];\n\n // If the difference is only 1 item, and `onToggleRow` is available, execute that.\n if (toggledRows.length === 1 && typeof onToggleRow === \"function\") {\n onToggleRow(data[parseInt(toggledRows[0])]);\n return;\n } else if (typeof onSelectRow === \"function\") {\n const selection = Object.keys(newSelection).map(key => data[parseInt(key)]);\n onSelectRow(selection);\n }\n };\n\n const tableSorting = useMemo(() => {\n if (!Array.isArray(sorting) || !sorting.length) {\n return initialSorting;\n }\n return sorting;\n }, [sorting]);\n\n const columns = defineColumns(initialColumns, {\n canSelectAllRows,\n onSelectRow,\n onToggleRow,\n loading\n });\n\n const table = useReactTable<T>({\n columnResizeMode: \"onChange\",\n columns,\n data,\n enableColumnResizing: true,\n enableHiding: !!onColumnVisibilityChange,\n enableRowSelection: isRowSelectable,\n enableSorting: !!onSortingChange,\n enableSortingRemoval: false,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualSorting: true,\n onColumnVisibilityChange,\n onRowSelectionChange,\n onSortingChange,\n state: {\n columnVisibility,\n rowSelection,\n sorting: tableSorting\n }\n });\n\n const getColumnWidth = useCallback(\n (column: Column<T>): number => {\n if (!column.getCanResize()) {\n return column.getSize();\n }\n\n const tableSize = table.getTotalSize();\n const columnSize = column.getSize();\n\n return Math.ceil((columnSize * tableWidth) / tableSize);\n },\n [table, tableWidth]\n );\n\n /**\n * Had to memoize the rows to avoid browser freeze.\n */\n const tableRows = useMemo(() => {\n return table.getRowModel().rows;\n }, [table, data, columns]);\n\n return (\n <div ref={tableRef}>\n <Table bordered={bordered} sticky={stickyHeader}>\n <Table.Header sticky={stickyHeader}>\n {table.getHeaderGroups().map(headerGroup => (\n <Table.Row key={headerGroup.id}>\n {headerGroup.headers.map((header, index) => {\n const isLastCell = index === headerGroup.headers.length - 1;\n const width = getColumnWidth(header.column);\n\n return (\n <Table.Head\n key={header.id}\n {...header.column.columnDef.meta}\n colSpan={header.colSpan}\n style={{ width, maxWidth: width }}\n >\n {header.isPlaceholder ? null : (\n <ColumnSorter\n onClick={header.column.getToggleSortingHandler()}\n sortable={header.column.getCanSort()}\n >\n <div className=\"w-full overflow-hidden whitespace-nowrap truncate\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </div>\n <Table.Direction\n direction={header.column.getIsSorted() || null}\n />\n {isLastCell && (\n <div className={\"mr-xs h-md\"}>\n <ColumnsVisibility\n columns={table.getAllColumns()}\n />\n </div>\n )}\n </ColumnSorter>\n )}\n {header.column.getCanResize() && (\n <Table.Resizer\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n isResizing={header.column.getIsResizing()}\n />\n )}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body>\n {tableRows.map(row => {\n const id = row.original.id || row.id;\n return (\n <MemoTableRow<T>\n key={id}\n cells={row.getVisibleCells()}\n selected={row.getIsSelected()}\n getColumnWidth={getColumnWidth}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst DataTable = makeDecoratable(\"DataTable\", DecoratableDataTable);\n\nexport {\n DataTable,\n type DataTableProps,\n type DataTableColumn,\n type DataTableColumns,\n type DataTableDefaultData,\n type DataTableRow,\n type DataTableSorting,\n type DataTableColumnSort,\n type OnDataTableSortingChange,\n type DataTableColumnVisibility,\n type OnDataTableColumnVisibilityChange\n};\n"],"mappings":"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","ignoreList":[]}
package/Grid/Grid.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { type VariantProps } from "../utils.js";
3
3
  declare const columnVariants: (props?: ({
4
- span?: 1 | 2 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | "auto" | 12 | null | undefined;
4
+ span?: 1 | 2 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | "auto" | null | undefined;
5
5
  offset?: 1 | 2 | 4 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | null | undefined;
6
6
  align?: "bottom" | "top" | "middle" | null | undefined;
7
7
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
@@ -11,7 +11,7 @@ const HeaderBarBase = ({
11
11
  return /*#__PURE__*/React.createElement("header", null, /*#__PURE__*/React.createElement("div", Object.assign({
12
12
  className: cn("grid grid-cols-[1fr_auto_1fr] w-full py-xs-plus px-sm bg-neutral-base", className)
13
13
  }, props), /*#__PURE__*/React.createElement("div", {
14
- className: "h-full flex items-center justify-self-start"
14
+ className: "h-full flex items-center min-w-0 flex-1"
15
15
  }, start), /*#__PURE__*/React.createElement("div", {
16
16
  className: "h-full flex items-center"
17
17
  }, middle), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"names":["React","cn","makeDecoratable","Separator","HeaderBarBase","start","middle","end","className","props","createElement","Object","assign","HeaderBar"],"sources":["HeaderBar.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\nimport { Separator } from \"~/Separator/index.js\";\n\ninterface HeaderBarProps extends React.HTMLAttributes<HTMLDivElement> {\n start?: React.ReactNode;\n middle?: React.ReactNode;\n end?: React.ReactNode;\n}\n\nconst HeaderBarBase = ({ start, middle, end, className, ...props }: HeaderBarProps) => {\n return (\n <header>\n <div\n className={cn(\n \"grid grid-cols-[1fr_auto_1fr] w-full py-xs-plus px-sm bg-neutral-base\",\n className\n )}\n {...props}\n >\n <div className=\"h-full flex items-center justify-self-start\">{start}</div>\n <div className=\"h-full flex items-center\">{middle}</div>\n <div className=\"h-full flex items-center justify-self-end\">{end}</div>\n </div>\n <Separator />\n </header>\n );\n};\n\nconst HeaderBar = makeDecoratable(\"HeaderBar\", HeaderBarBase);\n\nexport { HeaderBar, type HeaderBarProps };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,eAAe;AAC5B,SAASC,SAAS;AAQlB,MAAMC,aAAa,GAAGA,CAAC;EAAEC,KAAK;EAAEC,MAAM;EAAEC,GAAG;EAAEC,SAAS;EAAE,GAAGC;AAAsB,CAAC,KAAK;EACnF,oBACIT,KAAA,CAAAU,aAAA,8BACIV,KAAA,CAAAU,aAAA,QAAAC,MAAA,CAAAC,MAAA;IACIJ,SAAS,EAAEP,EAAE,CACT,uEAAuE,EACvEO,SACJ;EAAE,GACEC,KAAK,gBAETT,KAAA,CAAAU,aAAA;IAAKF,SAAS,EAAC;EAA6C,GAAEH,KAAW,CAAC,eAC1EL,KAAA,CAAAU,aAAA;IAAKF,SAAS,EAAC;EAA0B,GAAEF,MAAY,CAAC,eACxDN,KAAA,CAAAU,aAAA;IAAKF,SAAS,EAAC;EAA2C,GAAED,GAAS,CACpE,CAAC,eACNP,KAAA,CAAAU,aAAA,CAACP,SAAS,MAAE,CACR,CAAC;AAEjB,CAAC;AAED,MAAMU,SAAS,GAAGX,eAAe,CAAC,WAAW,EAAEE,aAAa,CAAC;AAE7D,SAASS,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","cn","makeDecoratable","Separator","HeaderBarBase","start","middle","end","className","props","createElement","Object","assign","HeaderBar"],"sources":["HeaderBar.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\nimport { Separator } from \"~/Separator/index.js\";\n\ninterface HeaderBarProps extends React.HTMLAttributes<HTMLDivElement> {\n start?: React.ReactNode;\n middle?: React.ReactNode;\n end?: React.ReactNode;\n}\n\nconst HeaderBarBase = ({ start, middle, end, className, ...props }: HeaderBarProps) => {\n return (\n <header>\n <div\n className={cn(\n \"grid grid-cols-[1fr_auto_1fr] w-full py-xs-plus px-sm bg-neutral-base\",\n className\n )}\n {...props}\n >\n <div className=\"h-full flex items-center min-w-0 flex-1\">{start}</div>\n <div className=\"h-full flex items-center\">{middle}</div>\n <div className=\"h-full flex items-center justify-self-end\">{end}</div>\n </div>\n <Separator />\n </header>\n );\n};\n\nconst HeaderBar = makeDecoratable(\"HeaderBar\", HeaderBarBase);\n\nexport { HeaderBar, type HeaderBarProps };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,eAAe;AAC5B,SAASC,SAAS;AAQlB,MAAMC,aAAa,GAAGA,CAAC;EAAEC,KAAK;EAAEC,MAAM;EAAEC,GAAG;EAAEC,SAAS;EAAE,GAAGC;AAAsB,CAAC,KAAK;EACnF,oBACIT,KAAA,CAAAU,aAAA,8BACIV,KAAA,CAAAU,aAAA,QAAAC,MAAA,CAAAC,MAAA;IACIJ,SAAS,EAAEP,EAAE,CACT,uEAAuE,EACvEO,SACJ;EAAE,GACEC,KAAK,gBAETT,KAAA,CAAAU,aAAA;IAAKF,SAAS,EAAC;EAAyC,GAAEH,KAAW,CAAC,eACtEL,KAAA,CAAAU,aAAA;IAAKF,SAAS,EAAC;EAA0B,GAAEF,MAAY,CAAC,eACxDN,KAAA,CAAAU,aAAA;IAAKF,SAAS,EAAC;EAA2C,GAAED,GAAS,CACpE,CAAC,eACNP,KAAA,CAAAU,aAAA,CAACP,SAAS,MAAE,CACR,CAAC;AAEjB,CAAC;AAED,MAAMU,SAAS,GAAGX,eAAe,CAAC,WAAW,EAAEE,aAAa,CAAC;AAE7D,SAASS,SAAS","ignoreList":[]}
@@ -34,7 +34,9 @@ const DecoratableRadioGroup = ({
34
34
  invalid: invalid,
35
35
  disabled: disabled,
36
36
  className: "mt-none mb-xs-plus"
37
- }), /*#__PURE__*/React.createElement(RadioGroupPrimitive, props), /*#__PURE__*/React.createElement(FormComponentNote, {
37
+ }), /*#__PURE__*/React.createElement(RadioGroupPrimitive, Object.assign({
38
+ disabled: disabled
39
+ }, props)), /*#__PURE__*/React.createElement(FormComponentNote, {
38
40
  text: note,
39
41
  disabled: disabled
40
42
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","makeDecoratable","RadioGroupPrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableRadioGroup","label","description","note","hint","required","disabled","validation","props","isValid","validationIsValid","message","validationMessage","invalid","createElement","className","text","RadioGroup"],"sources":["RadioGroup.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { RadioGroupPrimitiveProps } from \"./primitives/index.js\";\nimport { RadioGroupPrimitive } from \"./primitives/index.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype RadioGroupProps = RadioGroupPrimitiveProps & FormComponentProps;\n\nconst DecoratableRadioGroup = ({\n label,\n description,\n note,\n hint,\n required,\n disabled,\n validation,\n ...props\n}: RadioGroupProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className={\"mb-xs-plus\"}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className={\"mt-none mb-xs-plus\"}\n />\n <RadioGroupPrimitive {...props} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\nconst RadioGroup = makeDecoratable(\"RadioGroup\", DecoratableRadioGroup);\n\nexport { RadioGroup };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe;AAExB,SAASC,mBAAmB;AAE5B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,qBAAqB,GAAGA,CAAC;EAC3BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACV,GAAGC;AACU,CAAC,KAAK;EACnB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,GAAGpB,OAAO,CAAC,MAAMiB,iBAAiB,KAAK,KAAK,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAE/E,oBACIlB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAE;EAAS,gBACrBvB,KAAA,CAAAsB,aAAA,CAAChB,kBAAkB;IACfkB,IAAI,EAAEf,KAAM;IACZG,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBO,OAAO,EAAEA;EAAQ,CACpB,CAAC,eACFrB,KAAA,CAAAsB,aAAA,CAAClB,wBAAwB;IACrBoB,IAAI,EAAEd,WAAY;IAClBI,QAAQ,EAAEA,QAAS;IACnBS,SAAS,EAAE;EAAa,CAC3B,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACjB,yBAAyB;IACtBmB,IAAI,EAAEJ,iBAAkB;IACxBC,OAAO,EAAEA,OAAQ;IACjBP,QAAQ,EAAEA,QAAS;IACnBS,SAAS,EAAE;EAAqB,CACnC,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACnB,mBAAmB,EAAKa,KAAQ,CAAC,eAClChB,KAAA,CAAAsB,aAAA,CAACf,iBAAiB;IAACiB,IAAI,EAAEb,IAAK;IAACG,QAAQ,EAAEA;EAAS,CAAE,CACnD,CAAC;AAEd,CAAC;AACD,MAAMW,UAAU,GAAGvB,eAAe,CAAC,YAAY,EAAEM,qBAAqB,CAAC;AAEvE,SAASiB,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","makeDecoratable","RadioGroupPrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableRadioGroup","label","description","note","hint","required","disabled","validation","props","isValid","validationIsValid","message","validationMessage","invalid","createElement","className","text","Object","assign","RadioGroup"],"sources":["RadioGroup.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { RadioGroupPrimitiveProps } from \"./primitives/index.js\";\nimport { RadioGroupPrimitive } from \"./primitives/index.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype RadioGroupProps = RadioGroupPrimitiveProps & FormComponentProps;\n\nconst DecoratableRadioGroup = ({\n label,\n description,\n note,\n hint,\n required,\n disabled,\n validation,\n ...props\n}: RadioGroupProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className={\"mb-xs-plus\"}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className={\"mt-none mb-xs-plus\"}\n />\n <RadioGroupPrimitive disabled={disabled} {...props} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\nconst RadioGroup = makeDecoratable(\"RadioGroup\", DecoratableRadioGroup);\n\nexport { RadioGroup };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe;AAExB,SAASC,mBAAmB;AAE5B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,qBAAqB,GAAGA,CAAC;EAC3BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACV,GAAGC;AACU,CAAC,KAAK;EACnB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,GAAGpB,OAAO,CAAC,MAAMiB,iBAAiB,KAAK,KAAK,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAE/E,oBACIlB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAE;EAAS,gBACrBvB,KAAA,CAAAsB,aAAA,CAAChB,kBAAkB;IACfkB,IAAI,EAAEf,KAAM;IACZG,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBO,OAAO,EAAEA;EAAQ,CACpB,CAAC,eACFrB,KAAA,CAAAsB,aAAA,CAAClB,wBAAwB;IACrBoB,IAAI,EAAEd,WAAY;IAClBI,QAAQ,EAAEA,QAAS;IACnBS,SAAS,EAAE;EAAa,CAC3B,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACjB,yBAAyB;IACtBmB,IAAI,EAAEJ,iBAAkB;IACxBC,OAAO,EAAEA,OAAQ;IACjBP,QAAQ,EAAEA,QAAS;IACnBS,SAAS,EAAE;EAAqB,CACnC,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACnB,mBAAmB,EAAAsB,MAAA,CAAAC,MAAA;IAACZ,QAAQ,EAAEA;EAAS,GAAKE,KAAK,CAAG,CAAC,eACtDhB,KAAA,CAAAsB,aAAA,CAACf,iBAAiB;IAACiB,IAAI,EAAEb,IAAK;IAACG,QAAQ,EAAEA;EAAS,CAAE,CACnD,CAAC;AAEd,CAAC;AACD,MAAMa,UAAU,GAAGzB,eAAe,CAAC,YAAY,EAAEM,qBAAqB,CAAC;AAEvE,SAASmB,UAAU","ignoreList":[]}
@@ -103,7 +103,7 @@ const SeparatorBase = ({
103
103
  variant
104
104
  });
105
105
  const textColor = variant === "accent" ? "text-accent-primary" : "text-neutral-primary";
106
- const baseLabelClass = `${textColor} text-md font-semibold`;
106
+ const baseLabelClass = `${textColor} text-lg font-semibold`;
107
107
  const renderContent = () => {
108
108
  if (labelPosition === "start") {
109
109
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Separator","SeparatorPrimitive","cva","makeDecoratable","separatorVariants","variants","margin","none","xs","sm","md","lg","xl","orientation","horizontal","vertical","variant","transparent","base","dimmed","muted","strong","accent","compoundVariants","className","defaultVariants","SeparatorBase","decorative","children","labelPosition","props","createElement","Root","Object","assign","isHorizontal","containerClass","separatorClass","textColor","baseLabelClass","renderContent","Fragment"],"sources":["Separator.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps, makeDecoratable } from \"~/utils.js\";\n\nconst separatorVariants = cva(\"shrink-0\", {\n variants: {\n margin: {\n none: \"\",\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n xl: \"\"\n },\n orientation: {\n horizontal: \"h-px w-full\",\n vertical: \"h-full w-px\"\n },\n variant: {\n transparent: \"transparent\",\n base: \"bg-white\",\n dimmed: \"bg-neutral-dimmed\",\n muted: \"bg-neutral-muted\",\n strong: \"bg-neutral-strong\",\n accent: \"bg-primary\"\n }\n },\n compoundVariants: [\n { orientation: \"horizontal\", margin: \"xs\", className: \"my-px\" },\n { orientation: \"horizontal\", margin: \"sm\", className: \"my-xxs\" },\n { orientation: \"horizontal\", margin: \"md\", className: \"my-xs\" },\n { orientation: \"horizontal\", margin: \"lg\", className: \"my-sm\" },\n { orientation: \"horizontal\", margin: \"xl\", className: \"my-md\" },\n { orientation: \"vertical\", margin: \"xs\", className: \"mx-px\" },\n { orientation: \"vertical\", margin: \"sm\", className: \"mx-xxs\" },\n { orientation: \"vertical\", margin: \"md\", className: \"mx-xs\" },\n { orientation: \"vertical\", margin: \"lg\", className: \"mx-sm\" },\n { orientation: \"vertical\", margin: \"xl\", className: \"mx-md\" }\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n variant: \"dimmed\",\n margin: \"none\"\n }\n});\n\ntype SeparatorPosition = \"start\" | \"middle\" | \"end\";\n\ntype SeparatorProps = Omit<SeparatorPrimitive.SeparatorProps, \"children\"> &\n VariantProps<typeof separatorVariants> & {\n children?: React.ReactNode;\n labelPosition?: SeparatorPosition;\n };\n\nconst SeparatorBase = ({\n className,\n orientation = \"horizontal\",\n margin,\n variant,\n decorative = true,\n children,\n labelPosition = \"middle\",\n ...props\n}: SeparatorProps) => {\n // If no children, render simple separator\n if (!children) {\n return (\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={separatorVariants({ orientation, margin, variant, className })}\n {...props}\n />\n );\n }\n\n // With children, render separator with label\n const isHorizontal = orientation === \"horizontal\";\n const containerClass = isHorizontal\n ? \"flex items-center w-full\"\n : \"flex flex-col items-center h-full\";\n const separatorClass = separatorVariants({ orientation, variant });\n const textColor = variant === \"accent\" ? \"text-accent-primary\" : \"text-neutral-primary\";\n const baseLabelClass = `${textColor} text-md font-semibold`;\n\n const renderContent = () => {\n if (labelPosition === \"start\") {\n return (\n <>\n <span className={`${baseLabelClass} pr-md`}>{children}</span>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n </>\n );\n }\n\n if (labelPosition === \"end\") {\n return (\n <>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n <span className={`${baseLabelClass} pl-md`}>{children}</span>\n </>\n );\n }\n\n // middle (default)\n return (\n <>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n <span className={`${baseLabelClass} px-md`}>{children}</span>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n </>\n );\n };\n\n return <div className={`${containerClass} ${className || \"\"}`}>{renderContent()}</div>;\n};\n\nconst Separator = makeDecoratable(\"Separator\", SeparatorBase);\n\nexport { Separator, type SeparatorProps };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Separator","SeparatorPrimitive","cva","makeDecoratable","separatorVariants","variants","margin","none","xs","sm","md","lg","xl","orientation","horizontal","vertical","variant","transparent","base","dimmed","muted","strong","accent","compoundVariants","className","defaultVariants","SeparatorBase","decorative","children","labelPosition","props","createElement","Root","Object","assign","isHorizontal","containerClass","separatorClass","textColor","baseLabelClass","renderContent","Fragment"],"sources":["Separator.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps, makeDecoratable } from \"~/utils.js\";\n\nconst separatorVariants = cva(\"shrink-0\", {\n variants: {\n margin: {\n none: \"\",\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n xl: \"\"\n },\n orientation: {\n horizontal: \"h-px w-full\",\n vertical: \"h-full w-px\"\n },\n variant: {\n transparent: \"transparent\",\n base: \"bg-white\",\n dimmed: \"bg-neutral-dimmed\",\n muted: \"bg-neutral-muted\",\n strong: \"bg-neutral-strong\",\n accent: \"bg-primary\"\n }\n },\n compoundVariants: [\n { orientation: \"horizontal\", margin: \"xs\", className: \"my-px\" },\n { orientation: \"horizontal\", margin: \"sm\", className: \"my-xxs\" },\n { orientation: \"horizontal\", margin: \"md\", className: \"my-xs\" },\n { orientation: \"horizontal\", margin: \"lg\", className: \"my-sm\" },\n { orientation: \"horizontal\", margin: \"xl\", className: \"my-md\" },\n { orientation: \"vertical\", margin: \"xs\", className: \"mx-px\" },\n { orientation: \"vertical\", margin: \"sm\", className: \"mx-xxs\" },\n { orientation: \"vertical\", margin: \"md\", className: \"mx-xs\" },\n { orientation: \"vertical\", margin: \"lg\", className: \"mx-sm\" },\n { orientation: \"vertical\", margin: \"xl\", className: \"mx-md\" }\n ],\n defaultVariants: {\n orientation: \"horizontal\",\n variant: \"dimmed\",\n margin: \"none\"\n }\n});\n\ntype SeparatorPosition = \"start\" | \"middle\" | \"end\";\n\ntype SeparatorProps = Omit<SeparatorPrimitive.SeparatorProps, \"children\"> &\n VariantProps<typeof separatorVariants> & {\n children?: React.ReactNode;\n labelPosition?: SeparatorPosition;\n };\n\nconst SeparatorBase = ({\n className,\n orientation = \"horizontal\",\n margin,\n variant,\n decorative = true,\n children,\n labelPosition = \"middle\",\n ...props\n}: SeparatorProps) => {\n // If no children, render simple separator\n if (!children) {\n return (\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={separatorVariants({ orientation, margin, variant, className })}\n {...props}\n />\n );\n }\n\n // With children, render separator with label\n const isHorizontal = orientation === \"horizontal\";\n const containerClass = isHorizontal\n ? \"flex items-center w-full\"\n : \"flex flex-col items-center h-full\";\n const separatorClass = separatorVariants({ orientation, variant });\n const textColor = variant === \"accent\" ? \"text-accent-primary\" : \"text-neutral-primary\";\n const baseLabelClass = `${textColor} text-lg font-semibold`;\n\n const renderContent = () => {\n if (labelPosition === \"start\") {\n return (\n <>\n <span className={`${baseLabelClass} pr-md`}>{children}</span>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n </>\n );\n }\n\n if (labelPosition === \"end\") {\n return (\n <>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n <span className={`${baseLabelClass} pl-md`}>{children}</span>\n </>\n );\n }\n\n // middle (default)\n return (\n <>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n <span className={`${baseLabelClass} px-md`}>{children}</span>\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={`${separatorClass} flex-1`}\n {...props}\n />\n </>\n );\n };\n\n return <div className={`${containerClass} ${className || \"\"}`}>{renderContent()}</div>;\n};\n\nconst Separator = makeDecoratable(\"Separator\", SeparatorBase);\n\nexport { Separator, type SeparatorProps };\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { makeAutoObservable } from "mobx";
2
- import minimatch from "minimatch";
2
+ import { minimatch } from "minimatch";
3
3
  import { TagItem, TagItemMapper } from "../../domain/index.js";
4
4
  class TagsValuesPresenter {
5
5
  values = [];
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","minimatch","TagItem","TagItemMapper","TagsValuesPresenter","values","constructor","init","params","map","value","create","label","protected","protectedValues","some","pattern","vm","toFormatted","addValue","find","tag","tagItem","push","removeValue","filter","isValueProtected","hasValue"],"sources":["TagsValuesPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport minimatch from \"minimatch\";\nimport { TagItem, type TagItemFormatted, TagItemMapper } from \"~/Tags/domain/index.js\";\n\ninterface TagsValuesPresenterParams {\n values?: string[];\n protectedValues?: string[];\n}\n\ninterface ITagsValuesPresenter {\n vm: {\n values: TagItemFormatted[];\n };\n init: (params: TagsValuesPresenterParams) => void;\n addValue: (value: string) => void;\n removeValue: (value: string) => void;\n hasValue: (value: string) => boolean;\n isValueProtected: (value: string) => boolean;\n}\n\nclass TagsValuesPresenter implements ITagsValuesPresenter {\n private values: TagItem[] = [];\n\n constructor() {\n makeAutoObservable(this);\n }\n\n init(params: TagsValuesPresenterParams) {\n this.values =\n params.values?.map(value =>\n TagItem.create({\n label: value,\n protected: params.protectedValues\n ? params.protectedValues.some(pattern => minimatch(value, pattern))\n : false\n })\n ) ?? [];\n }\n\n get vm() {\n return {\n values: this.values.map(value => TagItemMapper.toFormatted(value))\n };\n }\n\n public addValue = (value: string) => {\n if (!value || this.values.find(tag => tag.label === value)) {\n return;\n }\n const tagItem = TagItem.create({ label: value });\n this.values.push(tagItem);\n };\n\n public removeValue = (value: string) => {\n this.values = this.values.filter(\n tagItem => tagItem.label !== value || this.isValueProtected(tagItem.label)\n );\n };\n\n public hasValue = (value: string) => {\n return !!this.values.find(tag => tag.label === value);\n };\n\n public isValueProtected = (value: string) => {\n return !!this.values.find(tag => tag.label === value && tag.protected);\n };\n}\n\nexport { TagsValuesPresenter, type ITagsValuesPresenter, type TagsValuesPresenterParams };\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,MAAM;AACzC,OAAOC,SAAS,MAAM,WAAW;AACjC,SAASC,OAAO,EAAyBC,aAAa;AAkBtD,MAAMC,mBAAmB,CAAiC;EAC9CC,MAAM,GAAc,EAAE;EAE9BC,WAAWA,CAAA,EAAG;IACVN,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEAO,IAAIA,CAACC,MAAiC,EAAE;IACpC,IAAI,CAACH,MAAM,GACPG,MAAM,CAACH,MAAM,EAAEI,GAAG,CAACC,KAAK,IACpBR,OAAO,CAACS,MAAM,CAAC;MACXC,KAAK,EAAEF,KAAK;MACZG,SAAS,EAAEL,MAAM,CAACM,eAAe,GAC3BN,MAAM,CAACM,eAAe,CAACC,IAAI,CAACC,OAAO,IAAIf,SAAS,CAACS,KAAK,EAAEM,OAAO,CAAC,CAAC,GACjE;IACV,CAAC,CACL,CAAC,IAAI,EAAE;EACf;EAEA,IAAIC,EAAEA,CAAA,EAAG;IACL,OAAO;MACHZ,MAAM,EAAE,IAAI,CAACA,MAAM,CAACI,GAAG,CAACC,KAAK,IAAIP,aAAa,CAACe,WAAW,CAACR,KAAK,CAAC;IACrE,CAAC;EACL;EAEOS,QAAQ,GAAIT,KAAa,IAAK;IACjC,IAAI,CAACA,KAAK,IAAI,IAAI,CAACL,MAAM,CAACe,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,KAAK,KAAKF,KAAK,CAAC,EAAE;MACxD;IACJ;IACA,MAAMY,OAAO,GAAGpB,OAAO,CAACS,MAAM,CAAC;MAAEC,KAAK,EAAEF;IAAM,CAAC,CAAC;IAChD,IAAI,CAACL,MAAM,CAACkB,IAAI,CAACD,OAAO,CAAC;EAC7B,CAAC;EAEME,WAAW,GAAId,KAAa,IAAK;IACpC,IAAI,CAACL,MAAM,GAAG,IAAI,CAACA,MAAM,CAACoB,MAAM,CAC5BH,OAAO,IAAIA,OAAO,CAACV,KAAK,KAAKF,KAAK,IAAI,IAAI,CAACgB,gBAAgB,CAACJ,OAAO,CAACV,KAAK,CAC7E,CAAC;EACL,CAAC;EAEMe,QAAQ,GAAIjB,KAAa,IAAK;IACjC,OAAO,CAAC,CAAC,IAAI,CAACL,MAAM,CAACe,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,KAAK,KAAKF,KAAK,CAAC;EACzD,CAAC;EAEMgB,gBAAgB,GAAIhB,KAAa,IAAK;IACzC,OAAO,CAAC,CAAC,IAAI,CAACL,MAAM,CAACe,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,KAAK,KAAKF,KAAK,IAAIW,GAAG,CAACR,SAAS,CAAC;EAC1E,CAAC;AACL;AAEA,SAAST,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["makeAutoObservable","minimatch","TagItem","TagItemMapper","TagsValuesPresenter","values","constructor","init","params","map","value","create","label","protected","protectedValues","some","pattern","vm","toFormatted","addValue","find","tag","tagItem","push","removeValue","filter","isValueProtected","hasValue"],"sources":["TagsValuesPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport { minimatch } from \"minimatch\";\nimport { TagItem, type TagItemFormatted, TagItemMapper } from \"~/Tags/domain/index.js\";\n\ninterface TagsValuesPresenterParams {\n values?: string[];\n protectedValues?: string[];\n}\n\ninterface ITagsValuesPresenter {\n vm: {\n values: TagItemFormatted[];\n };\n init: (params: TagsValuesPresenterParams) => void;\n addValue: (value: string) => void;\n removeValue: (value: string) => void;\n hasValue: (value: string) => boolean;\n isValueProtected: (value: string) => boolean;\n}\n\nclass TagsValuesPresenter implements ITagsValuesPresenter {\n private values: TagItem[] = [];\n\n constructor() {\n makeAutoObservable(this);\n }\n\n init(params: TagsValuesPresenterParams) {\n this.values =\n params.values?.map(value =>\n TagItem.create({\n label: value,\n protected: params.protectedValues\n ? params.protectedValues.some(pattern => minimatch(value, pattern))\n : false\n })\n ) ?? [];\n }\n\n get vm() {\n return {\n values: this.values.map(value => TagItemMapper.toFormatted(value))\n };\n }\n\n public addValue = (value: string) => {\n if (!value || this.values.find(tag => tag.label === value)) {\n return;\n }\n const tagItem = TagItem.create({ label: value });\n this.values.push(tagItem);\n };\n\n public removeValue = (value: string) => {\n this.values = this.values.filter(\n tagItem => tagItem.label !== value || this.isValueProtected(tagItem.label)\n );\n };\n\n public hasValue = (value: string) => {\n return !!this.values.find(tag => tag.label === value);\n };\n\n public isValueProtected = (value: string) => {\n return !!this.values.find(tag => tag.label === value && tag.protected);\n };\n}\n\nexport { TagsValuesPresenter, type ITagsValuesPresenter, type TagsValuesPresenterParams };\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,MAAM;AACzC,SAASC,SAAS,QAAQ,WAAW;AACrC,SAASC,OAAO,EAAyBC,aAAa;AAkBtD,MAAMC,mBAAmB,CAAiC;EAC9CC,MAAM,GAAc,EAAE;EAE9BC,WAAWA,CAAA,EAAG;IACVN,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEAO,IAAIA,CAACC,MAAiC,EAAE;IACpC,IAAI,CAACH,MAAM,GACPG,MAAM,CAACH,MAAM,EAAEI,GAAG,CAACC,KAAK,IACpBR,OAAO,CAACS,MAAM,CAAC;MACXC,KAAK,EAAEF,KAAK;MACZG,SAAS,EAAEL,MAAM,CAACM,eAAe,GAC3BN,MAAM,CAACM,eAAe,CAACC,IAAI,CAACC,OAAO,IAAIf,SAAS,CAACS,KAAK,EAAEM,OAAO,CAAC,CAAC,GACjE;IACV,CAAC,CACL,CAAC,IAAI,EAAE;EACf;EAEA,IAAIC,EAAEA,CAAA,EAAG;IACL,OAAO;MACHZ,MAAM,EAAE,IAAI,CAACA,MAAM,CAACI,GAAG,CAACC,KAAK,IAAIP,aAAa,CAACe,WAAW,CAACR,KAAK,CAAC;IACrE,CAAC;EACL;EAEOS,QAAQ,GAAIT,KAAa,IAAK;IACjC,IAAI,CAACA,KAAK,IAAI,IAAI,CAACL,MAAM,CAACe,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,KAAK,KAAKF,KAAK,CAAC,EAAE;MACxD;IACJ;IACA,MAAMY,OAAO,GAAGpB,OAAO,CAACS,MAAM,CAAC;MAAEC,KAAK,EAAEF;IAAM,CAAC,CAAC;IAChD,IAAI,CAACL,MAAM,CAACkB,IAAI,CAACD,OAAO,CAAC;EAC7B,CAAC;EAEME,WAAW,GAAId,KAAa,IAAK;IACpC,IAAI,CAACL,MAAM,GAAG,IAAI,CAACA,MAAM,CAACoB,MAAM,CAC5BH,OAAO,IAAIA,OAAO,CAACV,KAAK,KAAKF,KAAK,IAAI,IAAI,CAACgB,gBAAgB,CAACJ,OAAO,CAACV,KAAK,CAC7E,CAAC;EACL,CAAC;EAEMe,QAAQ,GAAIjB,KAAa,IAAK;IACjC,OAAO,CAAC,CAAC,IAAI,CAACL,MAAM,CAACe,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,KAAK,KAAKF,KAAK,CAAC;EACzD,CAAC;EAEMgB,gBAAgB,GAAIhB,KAAa,IAAK;IACzC,OAAO,CAAC,CAAC,IAAI,CAACL,MAAM,CAACe,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACT,KAAK,KAAKF,KAAK,IAAIW,GAAG,CAACR,SAAS,CAAC;EAC1E,CAAC;AACL;AAEA,SAAST,mBAAmB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/admin-ui",
3
- "version": "0.0.0-unstable.ac6ebf63c6",
3
+ "version": "0.0.0-unstable.dbdf5d6258",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -16,15 +16,15 @@
16
16
  "@monaco-editor/react": "4.7.0",
17
17
  "@radix-ui/react-scroll-area": "1.2.10",
18
18
  "@tanstack/react-table": "8.21.3",
19
- "@webiny/icons": "0.0.0-unstable.ac6ebf63c6",
20
- "@webiny/react-composition": "0.0.0-unstable.ac6ebf63c6",
21
- "@webiny/utils": "0.0.0-unstable.ac6ebf63c6",
19
+ "@webiny/icons": "0.0.0-unstable.dbdf5d6258",
20
+ "@webiny/react-composition": "0.0.0-unstable.dbdf5d6258",
21
+ "@webiny/utils": "0.0.0-unstable.dbdf5d6258",
22
22
  "bytes": "3.1.2",
23
23
  "class-variance-authority": "0.7.1",
24
24
  "clsx": "2.1.1",
25
25
  "cmdk": "1.1.1",
26
26
  "lodash": "4.17.23",
27
- "minimatch": "5.1.6",
27
+ "minimatch": "10.2.4",
28
28
  "mobx": "6.15.0",
29
29
  "monaco-editor": "0.53.0",
30
30
  "radix-ui": "1.4.3",
@@ -35,36 +35,36 @@
35
35
  "react-virtualized": "9.22.6",
36
36
  "sonner": "2.0.7",
37
37
  "tailwind-merge": "2.6.1",
38
- "tailwindcss": "4.1.18",
38
+ "tailwindcss": "4.2.1",
39
39
  "timeago-react": "3.0.7",
40
40
  "tw-animate-css": "1.4.0",
41
41
  "type-fest": "5.4.4"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@fortawesome/free-solid-svg-icons": "6.7.2",
45
- "@storybook/addon-a11y": "9.1.17",
46
- "@storybook/addon-docs": "9.1.17",
45
+ "@storybook/addon-a11y": "9.1.19",
46
+ "@storybook/addon-docs": "9.1.19",
47
47
  "@storybook/addon-webpack5-compiler-babel": "3.0.6",
48
- "@storybook/react-webpack5": "9.1.17",
48
+ "@storybook/react-webpack5": "9.1.19",
49
49
  "@svgr/webpack": "6.5.1",
50
- "@tailwindcss/postcss": "4.1.18",
50
+ "@tailwindcss/postcss": "4.2.1",
51
51
  "@types/react": "18.2.79",
52
52
  "@types/react-color": "2.17.12",
53
53
  "@types/react-custom-scrollbars": "4.0.13",
54
54
  "@types/react-virtualized": "9.22.3",
55
- "@webiny/build-tools": "0.0.0-unstable.ac6ebf63c6",
56
- "@webiny/project": "0.0.0-unstable.ac6ebf63c6",
55
+ "@webiny/build-tools": "0.0.0-unstable.dbdf5d6258",
56
+ "@webiny/project": "0.0.0-unstable.dbdf5d6258",
57
57
  "chalk": "4.1.2",
58
- "css-loader": "7.1.3",
59
- "eslint-plugin-storybook": "9.1.17",
58
+ "css-loader": "7.1.4",
59
+ "eslint-plugin-storybook": "10.2.14",
60
60
  "file-loader": "6.2.0",
61
61
  "postcss-loader": "8.2.1",
62
62
  "prettier": "3.6.2",
63
63
  "rimraf": "6.1.3",
64
64
  "sass": "1.97.3",
65
- "storybook": "9.1.17",
65
+ "storybook": "9.1.19",
66
66
  "typescript": "5.9.3",
67
- "vitest": "3.2.4"
67
+ "vitest": "4.0.18"
68
68
  },
69
69
  "publishConfig": {
70
70
  "access": "public",
@@ -84,5 +84,5 @@
84
84
  ]
85
85
  }
86
86
  },
87
- "gitHead": "ac6ebf63c6de308703d41f2c1b375e03cd96b813"
87
+ "gitHead": "dbdf5d62587b971d52125a69ad6e69bae9ce8ee7"
88
88
  }