@clickhouse/click-ui 0.0.125 → 0.0.127

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.
@@ -8731,6 +8731,7 @@ const Accordion = ({
8731
8731
  color,
8732
8732
  icon,
8733
8733
  iconSize,
8734
+ gap,
8734
8735
  children,
8735
8736
  ...delegated
8736
8737
  }) => /* @__PURE__ */ jsxRuntimeExports.jsx($1bf158f521e1b1b4$export$be92b6f5f03c0fe9, { type: "single", collapsible: true, ...delegated, children: /* @__PURE__ */ jsxRuntimeExports.jsxs($1bf158f521e1b1b4$export$6d08773d2e66f8f2, { value: "item", children: [
@@ -8739,8 +8740,9 @@ const Accordion = ({
8739
8740
  /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionIconWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgImage, { name: "chevron-right", size: iconSize || size2, "aria-label": "accordion icon" }) }),
8740
8741
  icon ? /* @__PURE__ */ jsxRuntimeExports.jsx(SvgImage, { name: icon, size: iconSize || size2 }) : null
8741
8742
  ] }),
8742
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: title })
8743
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { size: size2, children: title })
8743
8744
  ] }),
8745
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Spacer, { size: gap }),
8744
8746
  /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionContent, { children })
8745
8747
  ] }) });
8746
8748
  const AccordionTrigger = styled($1bf158f521e1b1b4$export$41fb9f06171c75f4).withConfig({
@@ -9726,6 +9728,7 @@ const Badge = ({
9726
9728
  ] }) });
9727
9729
  const BigStat = ({
9728
9730
  fillWidth = false,
9731
+ maxWidth,
9729
9732
  height = "6rem",
9730
9733
  label = "Label",
9731
9734
  order = "titleTop",
@@ -9733,7 +9736,7 @@ const BigStat = ({
9733
9736
  spacing = "sm",
9734
9737
  state = "default",
9735
9738
  title = "Title"
9736
- }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Wrapper$b, { $height: height, $order: order, $size: size2, $spacing: spacing, $state: state, $fillWidth: fillWidth, children: [
9739
+ }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Wrapper$b, { $height: height, $order: order, $size: size2, $spacing: spacing, $state: state, $fillWidth: fillWidth, $maxWidth: maxWidth, children: [
9737
9740
  /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { $state: state, $size: size2, children: label }),
9738
9741
  /* @__PURE__ */ jsxRuntimeExports.jsx(Title$3, { $state: state, $size: size2, children: title })
9739
9742
  ] });
@@ -9741,6 +9744,7 @@ const Wrapper$b = styled.div.withConfig({
9741
9744
  componentId: "sc-u5029o-0"
9742
9745
  })(["display:flex;justify-content:center;box-sizing:border-box;", ""], ({
9743
9746
  $fillWidth = false,
9747
+ $maxWidth = "none",
9744
9748
  $state = "default",
9745
9749
  $size = "lg",
9746
9750
  $height = "fixed",
@@ -9758,6 +9762,7 @@ const Wrapper$b = styled.div.withConfig({
9758
9762
  min-height: ${$height !== void 0 ? `${$height}` : "auto"};
9759
9763
  flex-direction: ${$order === "titleBottom" ? "column-reverse" : "column"};
9760
9764
  width: ${$fillWidth === true ? "100%" : "auto"};
9765
+ max-width: ${$maxWidth ? $maxWidth : "none"};
9761
9766
  `);
9762
9767
  const Label = styled.div.withConfig({
9763
9768
  componentId: "sc-u5029o-1"
@@ -16934,7 +16939,7 @@ const useSelectionActions = ({
16934
16939
  let action = null;
16935
16940
  if (moveAnchor) {
16936
16941
  if (selection.type === "rows") {
16937
- const row = clamp2(selection.anchorRow + rowDiff, 0, rowCount - 1);
16942
+ const row = clamp2(selection.anchorRow + rowDiff, 0, rowCount + rowStart - 1);
16938
16943
  action = {
16939
16944
  type: "shiftRowSelection",
16940
16945
  row,
@@ -16948,7 +16953,7 @@ const useSelectionActions = ({
16948
16953
  event
16949
16954
  };
16950
16955
  } else if (selection.type === "rectangle") {
16951
- const row = clamp2(selection.anchor.row + rowDiff, 0, rowCount - 1);
16956
+ const row = clamp2(selection.anchor.row + rowDiff, 0, rowCount + rowStart - 1);
16952
16957
  const column = clamp2(selection.anchor.column + columnDiff, 0, columnCount - 1);
16953
16958
  action = {
16954
16959
  type: "shiftSelection",
@@ -16958,7 +16963,7 @@ const useSelectionActions = ({
16958
16963
  };
16959
16964
  }
16960
16965
  } else {
16961
- const row = clamp2(focus.row + rowDiff, 0, rowCount - 1);
16966
+ const row = clamp2(focus.row + rowDiff, 0, rowCount + rowStart - 1);
16962
16967
  const column = clamp2(focus.column + columnDiff, 0, columnCount - 1);
16963
16968
  action = {
16964
16969
  type: "normal",
@@ -16971,7 +16976,7 @@ const useSelectionActions = ({
16971
16976
  onSelection(action);
16972
16977
  }
16973
16978
  return action;
16974
- }, [onSelection, columnCount, rowCount, selection, focus]);
16979
+ }, [onSelection, columnCount, rowCount, selection, focus, rowStart]);
16975
16980
  const getSelectionType = useCallback((args) => {
16976
16981
  if (args.type === "all") {
16977
16982
  const isSelected = cellRectSelected(selection, 0, rowStart, columnCount - 1, rowCount + rowStart - 1);
@@ -37924,7 +37929,7 @@ const TableRow = styled.tr.withConfig({
37924
37929
  `);
37925
37930
  const TableData = styled.td.withConfig({
37926
37931
  componentId: "sc-1q458rb-4"
37927
- })(["overflow:hidden;", " @media (max-width:768px){width:auto;min-width:40%;padding:", " ", ";}"], ({
37932
+ })(["overflow:hidden;", " @media (max-width:768px){width:auto;min-width:40%;", "}"], ({
37928
37933
  theme: theme2,
37929
37934
  $size
37930
37935
  }) => `
@@ -37933,9 +37938,9 @@ const TableData = styled.td.withConfig({
37933
37938
  padding: ${theme2.click.table.body.cell.space[$size].y} ${theme2.click.table.body.cell.space[$size].x};
37934
37939
  `, ({
37935
37940
  theme: theme2
37936
- }) => theme2.click.table.body.cell.space.sm.y, ({
37937
- theme: theme2
37938
- }) => theme2.click.table.body.cell.space.sm.x);
37941
+ }) => `
37942
+ padding: ${theme2.click.table.body.cell.space.sm.y} ${theme2.click.table.body.cell.space.sm.x};
37943
+ `);
37939
37944
  const StyledColGroup = styled.colgroup.withConfig({
37940
37945
  componentId: "sc-1q458rb-5"
37941
37946
  })(["@media (max-width:768px){display:none;}"]);
@@ -38009,9 +38014,6 @@ const TableRowCloseButton = styled.button.withConfig({
38009
38014
  }) => `
38010
38015
  ${$isDeleted ? "transform: rotate(45deg)" : ""};
38011
38016
  `);
38012
- const TableText = styled.div.withConfig({
38013
- componentId: "sc-1q458rb-17"
38014
- })(["overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
38015
38017
  const TableBodyRow = ({
38016
38018
  headers,
38017
38019
  items,
@@ -38036,7 +38038,7 @@ const TableBodyRow = ({
38036
38038
  ...cellProps
38037
38039
  }, cellIndex) => /* @__PURE__ */ jsxRuntimeExports.jsxs(TableData, { $size: size2, ...cellProps, children: [
38038
38040
  headers[cellIndex] && /* @__PURE__ */ jsxRuntimeExports.jsx(MobileHeader, { children: headers[cellIndex].label }),
38039
- /* @__PURE__ */ jsxRuntimeExports.jsx(TableText, { children: label })
38041
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EllipsisContent, { component: "div", children: label })
38040
38042
  ] }, `table-cell-${cellIndex}`)),
38041
38043
  actionsList.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ActionsList, { $size: size2, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ActionsContainer, { children: [
38042
38044
  actionsList.includes("editAction") && /* @__PURE__ */ jsxRuntimeExports.jsx(EditButton, { as: IconButton$1, type: "ghost", disabled: isDisabled || isDeleted || !isEditable, icon: "pencil", onClick: onEdit, "data-testid": "table-row-edit" }),
@@ -38045,10 +38047,10 @@ const TableBodyRow = ({
38045
38047
  ] });
38046
38048
  };
38047
38049
  const SpanedTableData = styled(TableData).withConfig({
38048
- componentId: "sc-1q458rb-18"
38050
+ componentId: "sc-1q458rb-17"
38049
38051
  })(["text-align:center;"]);
38050
38052
  const CustomTableDataMessage = styled.div.withConfig({
38051
- componentId: "sc-1q458rb-19"
38053
+ componentId: "sc-1q458rb-18"
38052
38054
  })(["display:flex;gap:0.5rem;justify-content:center;"]);
38053
38055
  const LoadingData = () => {
38054
38056
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
@@ -38135,7 +38137,7 @@ const Table = forwardRef(({
38135
38137
  ] });
38136
38138
  });
38137
38139
  const StyledTable = styled.table.withConfig({
38138
- componentId: "sc-1q458rb-20"
38140
+ componentId: "sc-1q458rb-19"
38139
38141
  })(["width:100%;border-spacing:0;overflow:hidden;table-layout:fixed;", " @media (max-width:768px){border:none;table-layout:auto;}"], ({
38140
38142
  theme: theme2
38141
38143
  }) => `
@@ -8748,6 +8748,7 @@ var __publicField = (obj, key, value) => {
8748
8748
  color,
8749
8749
  icon,
8750
8750
  iconSize,
8751
+ gap,
8751
8752
  children,
8752
8753
  ...delegated
8753
8754
  }) => /* @__PURE__ */ jsxRuntimeExports.jsx($1bf158f521e1b1b4$export$be92b6f5f03c0fe9, { type: "single", collapsible: true, ...delegated, children: /* @__PURE__ */ jsxRuntimeExports.jsxs($1bf158f521e1b1b4$export$6d08773d2e66f8f2, { value: "item", children: [
@@ -8756,8 +8757,9 @@ var __publicField = (obj, key, value) => {
8756
8757
  /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionIconWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgImage, { name: "chevron-right", size: iconSize || size2, "aria-label": "accordion icon" }) }),
8757
8758
  icon ? /* @__PURE__ */ jsxRuntimeExports.jsx(SvgImage, { name: icon, size: iconSize || size2 }) : null
8758
8759
  ] }),
8759
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: title })
8760
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text, { size: size2, children: title })
8760
8761
  ] }),
8762
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Spacer, { size: gap }),
8761
8763
  /* @__PURE__ */ jsxRuntimeExports.jsx(AccordionContent, { children })
8762
8764
  ] }) });
8763
8765
  const AccordionTrigger = styled($1bf158f521e1b1b4$export$41fb9f06171c75f4).withConfig({
@@ -9743,6 +9745,7 @@ var __publicField = (obj, key, value) => {
9743
9745
  ] }) });
9744
9746
  const BigStat = ({
9745
9747
  fillWidth = false,
9748
+ maxWidth,
9746
9749
  height = "6rem",
9747
9750
  label = "Label",
9748
9751
  order = "titleTop",
@@ -9750,7 +9753,7 @@ var __publicField = (obj, key, value) => {
9750
9753
  spacing = "sm",
9751
9754
  state = "default",
9752
9755
  title = "Title"
9753
- }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Wrapper$b, { $height: height, $order: order, $size: size2, $spacing: spacing, $state: state, $fillWidth: fillWidth, children: [
9756
+ }) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Wrapper$b, { $height: height, $order: order, $size: size2, $spacing: spacing, $state: state, $fillWidth: fillWidth, $maxWidth: maxWidth, children: [
9754
9757
  /* @__PURE__ */ jsxRuntimeExports.jsx(Label, { $state: state, $size: size2, children: label }),
9755
9758
  /* @__PURE__ */ jsxRuntimeExports.jsx(Title$3, { $state: state, $size: size2, children: title })
9756
9759
  ] });
@@ -9758,6 +9761,7 @@ var __publicField = (obj, key, value) => {
9758
9761
  componentId: "sc-u5029o-0"
9759
9762
  })(["display:flex;justify-content:center;box-sizing:border-box;", ""], ({
9760
9763
  $fillWidth = false,
9764
+ $maxWidth = "none",
9761
9765
  $state = "default",
9762
9766
  $size = "lg",
9763
9767
  $height = "fixed",
@@ -9775,6 +9779,7 @@ var __publicField = (obj, key, value) => {
9775
9779
  min-height: ${$height !== void 0 ? `${$height}` : "auto"};
9776
9780
  flex-direction: ${$order === "titleBottom" ? "column-reverse" : "column"};
9777
9781
  width: ${$fillWidth === true ? "100%" : "auto"};
9782
+ max-width: ${$maxWidth ? $maxWidth : "none"};
9778
9783
  `);
9779
9784
  const Label = styled.div.withConfig({
9780
9785
  componentId: "sc-u5029o-1"
@@ -16951,7 +16956,7 @@ var __publicField = (obj, key, value) => {
16951
16956
  let action = null;
16952
16957
  if (moveAnchor) {
16953
16958
  if (selection.type === "rows") {
16954
- const row = clamp2(selection.anchorRow + rowDiff, 0, rowCount - 1);
16959
+ const row = clamp2(selection.anchorRow + rowDiff, 0, rowCount + rowStart - 1);
16955
16960
  action = {
16956
16961
  type: "shiftRowSelection",
16957
16962
  row,
@@ -16965,7 +16970,7 @@ var __publicField = (obj, key, value) => {
16965
16970
  event
16966
16971
  };
16967
16972
  } else if (selection.type === "rectangle") {
16968
- const row = clamp2(selection.anchor.row + rowDiff, 0, rowCount - 1);
16973
+ const row = clamp2(selection.anchor.row + rowDiff, 0, rowCount + rowStart - 1);
16969
16974
  const column = clamp2(selection.anchor.column + columnDiff, 0, columnCount - 1);
16970
16975
  action = {
16971
16976
  type: "shiftSelection",
@@ -16975,7 +16980,7 @@ var __publicField = (obj, key, value) => {
16975
16980
  };
16976
16981
  }
16977
16982
  } else {
16978
- const row = clamp2(focus.row + rowDiff, 0, rowCount - 1);
16983
+ const row = clamp2(focus.row + rowDiff, 0, rowCount + rowStart - 1);
16979
16984
  const column = clamp2(focus.column + columnDiff, 0, columnCount - 1);
16980
16985
  action = {
16981
16986
  type: "normal",
@@ -16988,7 +16993,7 @@ var __publicField = (obj, key, value) => {
16988
16993
  onSelection(action);
16989
16994
  }
16990
16995
  return action;
16991
- }, [onSelection, columnCount, rowCount, selection, focus]);
16996
+ }, [onSelection, columnCount, rowCount, selection, focus, rowStart]);
16992
16997
  const getSelectionType = React.useCallback((args) => {
16993
16998
  if (args.type === "all") {
16994
16999
  const isSelected = cellRectSelected(selection, 0, rowStart, columnCount - 1, rowCount + rowStart - 1);
@@ -37941,7 +37946,7 @@ Defaulting to \`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\`.`;
37941
37946
  `);
37942
37947
  const TableData = styled.td.withConfig({
37943
37948
  componentId: "sc-1q458rb-4"
37944
- })(["overflow:hidden;", " @media (max-width:768px){width:auto;min-width:40%;padding:", " ", ";}"], ({
37949
+ })(["overflow:hidden;", " @media (max-width:768px){width:auto;min-width:40%;", "}"], ({
37945
37950
  theme: theme2,
37946
37951
  $size
37947
37952
  }) => `
@@ -37950,9 +37955,9 @@ Defaulting to \`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\`.`;
37950
37955
  padding: ${theme2.click.table.body.cell.space[$size].y} ${theme2.click.table.body.cell.space[$size].x};
37951
37956
  `, ({
37952
37957
  theme: theme2
37953
- }) => theme2.click.table.body.cell.space.sm.y, ({
37954
- theme: theme2
37955
- }) => theme2.click.table.body.cell.space.sm.x);
37958
+ }) => `
37959
+ padding: ${theme2.click.table.body.cell.space.sm.y} ${theme2.click.table.body.cell.space.sm.x};
37960
+ `);
37956
37961
  const StyledColGroup = styled.colgroup.withConfig({
37957
37962
  componentId: "sc-1q458rb-5"
37958
37963
  })(["@media (max-width:768px){display:none;}"]);
@@ -38026,9 +38031,6 @@ Defaulting to \`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\`.`;
38026
38031
  }) => `
38027
38032
  ${$isDeleted ? "transform: rotate(45deg)" : ""};
38028
38033
  `);
38029
- const TableText = styled.div.withConfig({
38030
- componentId: "sc-1q458rb-17"
38031
- })(["overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
38032
38034
  const TableBodyRow = ({
38033
38035
  headers,
38034
38036
  items,
@@ -38053,7 +38055,7 @@ Defaulting to \`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\`.`;
38053
38055
  ...cellProps
38054
38056
  }, cellIndex) => /* @__PURE__ */ jsxRuntimeExports.jsxs(TableData, { $size: size2, ...cellProps, children: [
38055
38057
  headers[cellIndex] && /* @__PURE__ */ jsxRuntimeExports.jsx(MobileHeader, { children: headers[cellIndex].label }),
38056
- /* @__PURE__ */ jsxRuntimeExports.jsx(TableText, { children: label })
38058
+ /* @__PURE__ */ jsxRuntimeExports.jsx(EllipsisContent, { component: "div", children: label })
38057
38059
  ] }, `table-cell-${cellIndex}`)),
38058
38060
  actionsList.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(ActionsList, { $size: size2, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ActionsContainer, { children: [
38059
38061
  actionsList.includes("editAction") && /* @__PURE__ */ jsxRuntimeExports.jsx(EditButton, { as: IconButton$1, type: "ghost", disabled: isDisabled || isDeleted || !isEditable, icon: "pencil", onClick: onEdit, "data-testid": "table-row-edit" }),
@@ -38062,10 +38064,10 @@ Defaulting to \`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\`.`;
38062
38064
  ] });
38063
38065
  };
38064
38066
  const SpanedTableData = styled(TableData).withConfig({
38065
- componentId: "sc-1q458rb-18"
38067
+ componentId: "sc-1q458rb-17"
38066
38068
  })(["text-align:center;"]);
38067
38069
  const CustomTableDataMessage = styled.div.withConfig({
38068
- componentId: "sc-1q458rb-19"
38070
+ componentId: "sc-1q458rb-18"
38069
38071
  })(["display:flex;gap:0.5rem;justify-content:center;"]);
38070
38072
  const LoadingData = () => {
38071
38073
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
@@ -38152,7 +38154,7 @@ Defaulting to \`${$89eedd556c436f6a$var$DEFAULT_ORIENTATION}\`.`;
38152
38154
  ] });
38153
38155
  });
38154
38156
  const StyledTable = styled.table.withConfig({
38155
- componentId: "sc-1q458rb-20"
38157
+ componentId: "sc-1q458rb-19"
38156
38158
  })(["width:100%;border-spacing:0;overflow:hidden;table-layout:fixed;", " @media (max-width:768px){border:none;table-layout:auto;}"], ({
38157
38159
  theme: theme2
38158
38160
  }) => `
@@ -3,17 +3,19 @@ import * as RadixAccordion from "@radix-ui/react-accordion";
3
3
  import { IconSize } from '../../components/Icon/types';
4
4
  import { IconName } from '../../components';
5
5
  type Size = "sm" | "md" | "lg";
6
+ type Gap = "sm" | "md" | "lg";
6
7
  type Color = "default" | "link";
7
8
  export interface AccordionProps extends SizeProp, Omit<RadixAccordion.AccordionSingleProps, "type" | "collapsible"> {
8
9
  title: string;
9
10
  color?: Color;
10
11
  icon?: IconName;
11
12
  iconSize?: IconSize;
13
+ gap?: Gap;
12
14
  children: React.ReactNode;
13
15
  }
14
16
  interface SizeProp {
15
17
  size?: Size;
16
18
  }
17
- declare const SidebarAccordion: import("styled-components").StyledComponent<({ title, size, color, icon, iconSize, children, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element, import("styled-components").DefaultTheme, {}, never>;
18
- declare const AccordionToExport: import("styled-components").StyledComponent<({ title, size, color, icon, iconSize, children, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element, import("styled-components").DefaultTheme, {}, never>;
19
+ declare const SidebarAccordion: import("styled-components").StyledComponent<({ title, size, color, icon, iconSize, gap, children, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element, import("styled-components").DefaultTheme, {}, never>;
20
+ declare const AccordionToExport: import("styled-components").StyledComponent<({ title, size, color, icon, iconSize, gap, children, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element, import("styled-components").DefaultTheme, {}, never>;
19
21
  export { AccordionToExport as Accordion, SidebarAccordion };
@@ -5,6 +5,7 @@ export type bigStatSpacing = "sm" | "lg";
5
5
  export type bigStatState = "default" | "muted";
6
6
  export interface BigStatProps {
7
7
  fillWidth?: boolean;
8
+ maxWidth?: string;
8
9
  height?: string;
9
10
  label: React.ReactNode;
10
11
  order?: bigStatOrder;
@@ -13,4 +14,4 @@ export interface BigStatProps {
13
14
  state?: bigStatState;
14
15
  title: React.ReactNode;
15
16
  }
16
- export declare const BigStat: ({ fillWidth, height, label, order, size, spacing, state, title, }: BigStatProps) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const BigStat: ({ fillWidth, maxWidth, height, label, order, size, spacing, state, title, }: BigStatProps) => import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickhouse/click-ui",
3
- "version": "0.0.125",
3
+ "version": "0.0.127",
4
4
  "description": "Official ClickHouse design system react library",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",