@atom-learning/components 6.8.1 → 6.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/components/search-input/SearchInput.js +1 -1
  2. package/dist/components/search-input/SearchInput.js.map +1 -1
  3. package/dist/components/skeleton-loader/SkeletonBarChart.d.ts +7 -0
  4. package/dist/components/skeleton-loader/SkeletonBarChart.js +21 -0
  5. package/dist/components/skeleton-loader/SkeletonBarChart.js.map +1 -0
  6. package/dist/components/skeleton-loader/SkeletonCard.d.ts +2 -1
  7. package/dist/components/skeleton-loader/SkeletonCard.js +2 -10
  8. package/dist/components/skeleton-loader/SkeletonCard.js.map +1 -1
  9. package/dist/components/skeleton-loader/SkeletonColumnChart.d.ts +7 -0
  10. package/dist/components/skeleton-loader/SkeletonColumnChart.js +21 -0
  11. package/dist/components/skeleton-loader/SkeletonColumnChart.js.map +1 -0
  12. package/dist/components/skeleton-loader/SkeletonDoughnutChart.d.ts +2 -2
  13. package/dist/components/skeleton-loader/SkeletonDoughnutChart.js +18 -53
  14. package/dist/components/skeleton-loader/SkeletonDoughnutChart.js.map +1 -1
  15. package/dist/components/skeleton-loader/SkeletonPanelList.d.ts +4 -0
  16. package/dist/components/skeleton-loader/SkeletonPanelList.js +10 -0
  17. package/dist/components/skeleton-loader/SkeletonPanelList.js.map +1 -0
  18. package/dist/components/skeleton-loader/SkeletonSubjectList.d.ts +4 -0
  19. package/dist/components/skeleton-loader/SkeletonSubjectList.js +10 -0
  20. package/dist/components/skeleton-loader/SkeletonSubjectList.js.map +1 -0
  21. package/dist/components/skeleton-loader/SkeletonTable.d.ts +2 -2
  22. package/dist/components/skeleton-loader/SkeletonTable.js +2 -2
  23. package/dist/components/skeleton-loader/SkeletonTable.js.map +1 -1
  24. package/dist/components/skeleton-loader/SkeletonTabs.d.ts +3 -3
  25. package/dist/components/skeleton-loader/SkeletonTabs.js +2 -2
  26. package/dist/components/skeleton-loader/SkeletonTabs.js.map +1 -1
  27. package/dist/components/skeleton-loader/index.d.ts +4 -0
  28. package/dist/components/skeleton-loader/index.js +8 -0
  29. package/dist/components/skeleton-loader/index.js.map +1 -1
  30. package/dist/docgen.json +1 -1
  31. package/dist/index.cjs.js +62 -67
  32. package/dist/index.cjs.js.map +1 -1
  33. package/package.json +1 -1
package/dist/index.cjs.js CHANGED
@@ -4391,7 +4391,7 @@ var SearchInput = react.forwardRef(({ size = "md", appearance = "standard", clas
4391
4391
  ...remainingProps,
4392
4392
  value: innerValue,
4393
4393
  onChange: handleOnChange,
4394
- className: (0, clsx.default)(size === "sm" ? "pr-8" : "pr-10", "[-webkit-search-decoration:hidden]", "[-webkit-search-cancel-button:hidden]", "[-webkit-search-results-button:hidden]")
4394
+ className: (0, clsx.default)(size === "sm" ? "pr-8" : "pr-10", "[&::-webkit-search-decoration]:appearance-none", "[&::-webkit-search-cancel-button]:appearance-none", "[&::-webkit-search-results-button]:appearance-none")
4395
4395
  }), getIcon());
4396
4396
  });
4397
4397
  SearchInput.displayName = "SearchInput";
@@ -7940,69 +7940,34 @@ var Tile = react.default.forwardRef(({ children, borderRadius = "lg", colorSchem
7940
7940
  Tile.displayName = "Tile";
7941
7941
  //#endregion
7942
7942
  //#region src/components/skeleton-loader/SkeletonTabs.tsx
7943
- var SkeletonTabs = ({ numberOfTabs, containerCss, tabCss }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-row", "gap-4", containerCss) }, Array.from({ length: numberOfTabs }, (_, index) => `tab_${index}`).map((key) => /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
7943
+ var SkeletonTabs = ({ numberOfTabs, className, tabClassName }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-row", "gap-4", className) }, Array.from({ length: numberOfTabs }, (_, index) => `tab_${index}`).map((key) => /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
7944
7944
  key,
7945
- className: (0, clsx.default)("w-32", "h-6", "rounded-sm", tabCss)
7945
+ className: (0, clsx.default)("w-32", "h-6", "rounded-sm", tabClassName)
7946
7946
  })));
7947
7947
  //#endregion
7948
7948
  //#region src/components/skeleton-loader/SkeletonDoughnutChart.tsx
7949
- var DoughnutSvg = () => /* @__PURE__ */ react.default.createElement("svg", {
7950
- xmlns: "http://www.w3.org/2000/svg",
7951
- width: 120,
7952
- height: 121,
7953
- fill: "none",
7954
- className: "animate-shimmer"
7955
- }, /* @__PURE__ */ react.default.createElement("mask", {
7956
- id: "a",
7957
- fill: "#fff"
7958
- }, /* @__PURE__ */ react.default.createElement("path", { d: "m117 60 3 3a60 60 0 0 1-39 53q-2 1-4-2l-5-17q-1-2 2-4a36 36 0 0 0 22-30q0-2 3-3z" })), /* @__PURE__ */ react.default.createElement("path", {
7959
- className: "fill-grey-300",
7960
- stroke: "#fff",
7961
- strokeWidth: 1.6,
7962
- d: "m117 60 3 3a60 60 0 0 1-39 53q-2 1-4-2l-5-17q-1-2 2-4a36 36 0 0 0 22-30q0-2 3-3z",
7963
- mask: "url(#a)"
7964
- }), /* @__PURE__ */ react.default.createElement("mask", {
7965
- id: "b",
7966
- fill: "#fff"
7967
- }, /* @__PURE__ */ react.default.createElement("path", { d: "M117 60q2 0 3-3A60 60 0 0 0 81 4l-4 2-5 17q-1 4 2 4a36 36 0 0 1 22 30q0 3 3 3z" })), /* @__PURE__ */ react.default.createElement("path", {
7968
- className: "fill-grey-300",
7969
- stroke: "#fff",
7970
- strokeWidth: 1.6,
7971
- d: "M117 60q2 0 3-3A60 60 0 0 0 81 4l-4 2-5 17q-1 4 2 4a36 36 0 0 1 22 30q0 3 3 3z",
7972
- mask: "url(#b)"
7973
- }), /* @__PURE__ */ react.default.createElement("mask", {
7974
- id: "c",
7975
- fill: "#fff"
7976
- }, /* @__PURE__ */ react.default.createElement("path", { d: "M77 6q1-2-2-4a60 60 0 0 0-62 21q-1 2 1 4l14 10h5a36 36 0 0 1 35-12q3 1 4-2z" })), /* @__PURE__ */ react.default.createElement("path", {
7977
- className: "fill-grey-300",
7978
- stroke: "#fff",
7979
- strokeWidth: 1.6,
7980
- d: "M77 6q1-2-2-4a60 60 0 0 0-62 21q-1 2 1 4l14 10h5a36 36 0 0 1 35-12q3 1 4-2z",
7981
- mask: "url(#c)"
7982
- }), /* @__PURE__ */ react.default.createElement("mask", {
7983
- id: "d",
7984
- fill: "#fff"
7985
- }, /* @__PURE__ */ react.default.createElement("path", { d: "M14 93q-3 2-1 5a60 60 0 0 0 62 20l2-4-5-16-4-3a36 36 0 0 1-35-11q-3-3-5-1z" })), /* @__PURE__ */ react.default.createElement("path", {
7986
- className: "fill-grey-300",
7987
- stroke: "#fff",
7988
- strokeWidth: 1.6,
7989
- d: "M14 93q-3 2-1 5a60 60 0 0 0 62 20l2-4-5-16-4-3a36 36 0 0 1-35-11q-3-3-5-1z",
7990
- mask: "url(#d)"
7991
- }), /* @__PURE__ */ react.default.createElement("mask", {
7992
- id: "e",
7993
- fill: "#fff"
7994
- }, /* @__PURE__ */ react.default.createElement("path", { d: "M14 27q-2-2-4 1a60 60 0 0 0 0 65q1 2 4 0l14-10q3-2 1-4a36 36 0 0 1 0-37q2-3-1-5z" })), /* @__PURE__ */ react.default.createElement("path", {
7995
- className: "fill-grey-300",
7996
- stroke: "#fff",
7997
- strokeWidth: 1.6,
7998
- d: "M14 27q-2-2-4 1a60 60 0 0 0 0 65q1 2 4 0l14-10q3-2 1-4a36 36 0 0 1 0-37q2-3-1-5z",
7999
- mask: "url(#e)"
8000
- }));
8001
- var SkeletonDoughnutChart = ({ containerCss }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-row", "gap-4", "relative", containerCss) }, /* @__PURE__ */ react.default.createElement(DoughnutSvg, null));
7949
+ var buildConicGradient = () => {
7950
+ const numberOfSegments = 5;
7951
+ const gap = 4;
7952
+ const segmentAngle = (360 - numberOfSegments * gap) / numberOfSegments;
7953
+ const stops = [];
7954
+ let current = 0;
7955
+ Array.from({ length: numberOfSegments }).forEach(() => {
7956
+ stops.push(`var(--color-grey-300) ${current}deg ${current + segmentAngle}deg`);
7957
+ current += segmentAngle;
7958
+ stops.push(`white ${current}deg ${current + gap}deg`);
7959
+ current += gap;
7960
+ });
7961
+ return `conic-gradient(${stops.join(", ")})`;
7962
+ };
7963
+ var SkeletonDoughnutChart = ({ className }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "size-60", className) }, /* @__PURE__ */ react.default.createElement("div", {
7964
+ className: "animate-shimmer aspect-square w-full rounded-full [background-image:var(--gradient)] bg-clip-padding",
7965
+ style: { "--gradient": buildConicGradient() }
7966
+ }, /* @__PURE__ */ react.default.createElement("div", { className: "mt-[20%] ml-[20%] size-[60%] rounded-full bg-white" })));
8002
7967
  //#endregion
8003
7968
  //#region src/components/skeleton-loader/SkeletonTable.tsx
8004
- var SkeletonTable = ({ numberOfColumns = 4, numberOfRows = 4, columnWidth, containerCss }) => {
8005
- return /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-row", "gap-4", "relative", containerCss) }, /* @__PURE__ */ react.default.createElement(Table, { size: "md" }, /* @__PURE__ */ react.default.createElement(Table.Header, { theme: "white" }, Array.from({ length: numberOfColumns }, (_, index) => index).map((columnIndex) => /* @__PURE__ */ react.default.createElement(Table.HeaderCell, { key: columnIndex }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
7969
+ var SkeletonTable = ({ numberOfColumns = 4, numberOfRows = 4, columnWidth, className }) => {
7970
+ return /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-row", "gap-4", "relative", className) }, /* @__PURE__ */ react.default.createElement(Table, { size: "md" }, /* @__PURE__ */ react.default.createElement(Table.Header, { theme: "white" }, Array.from({ length: numberOfColumns }, (_, index) => index).map((columnIndex) => /* @__PURE__ */ react.default.createElement(Table.HeaderCell, { key: columnIndex }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
8006
7971
  style: { "--width": columnWidth?.[columnIndex] || "100px" },
8007
7972
  className: "h-4 w-(--width) rounded-xl"
8008
7973
  })))), /* @__PURE__ */ react.default.createElement(Table.Body, { striped: false }, Array.from({ length: numberOfRows }, (_, index) => index).map((rowIndex) => /* @__PURE__ */ react.default.createElement(Table.Row, { key: rowIndex }, Array.from({ length: numberOfColumns }, (_, index) => index).map((columnIndex) => /* @__PURE__ */ react.default.createElement(Table.Cell, {
@@ -8015,26 +7980,56 @@ var SkeletonTable = ({ numberOfColumns = 4, numberOfRows = 4, columnWidth, conta
8015
7980
  };
8016
7981
  //#endregion
8017
7982
  //#region src/components/skeleton-loader/SkeletonCard.tsx
8018
- var SkeletonCard = ({ numberOfRows = 3, withChart }) => /* @__PURE__ */ react.default.createElement(Tile, { className: "relative w-full flex-col items-center gap-6 p-6" }, /* @__PURE__ */ react.default.createElement(Flex, {
8019
- gap: "6",
8020
- align: "center",
8021
- className: "w-full"
8022
- }, withChart && /* @__PURE__ */ react.default.createElement(SkeletonDoughnutChart, null), /* @__PURE__ */ react.default.createElement(Flex, {
8023
- direction: "column",
8024
- gap: "24",
8025
- className: "grow"
8026
- }, Array.from({ length: numberOfRows }, (_, index) => index).map((rowNumber) => /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
7983
+ var SkeletonCard = ({ numberOfRows = 3, withChart, className }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("relative", "w-full", "flex-col", "items-center", "gap-6 p-6", className) }, /* @__PURE__ */ react.default.createElement("div", { className: "align-center flex w-full gap-6" }, withChart && /* @__PURE__ */ react.default.createElement(SkeletonDoughnutChart, null), /* @__PURE__ */ react.default.createElement("div", { className: "flex grow flex-col gap-6" }, Array.from({ length: numberOfRows }, (_, index) => index).map((rowNumber) => /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
8027
7984
  key: rowNumber,
8028
7985
  className: "bg-grey-200 h-10 w-full min-w-25 rounded-md"
8029
7986
  })))), /* @__PURE__ */ react.default.createElement(SkeletonButton, null));
8030
7987
  //#endregion
7988
+ //#region src/components/skeleton-loader/SkeletonColumnChart.tsx
7989
+ var getBarHeight = (groupIndex, columnIndex) => Math.round(90 + Math.abs(Math.sin(groupIndex + columnIndex + 1)) * 30);
7990
+ var ColumnGroup = ({ numberOfColumns, groupIndex }) => /* @__PURE__ */ react.default.createElement("div", { className: "flex flex-col items-center gap-4" }, /* @__PURE__ */ react.default.createElement("div", { className: "flex items-end gap-2" }, Array.from({ length: numberOfColumns }, (_, i) => /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
7991
+ key: i,
7992
+ className: "h-(--height) w-5 rounded-t-full rounded-b-none",
7993
+ style: { "--height": `${getBarHeight(groupIndex, i)}px` }
7994
+ }))), /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-2 w-14 rounded-full" }));
7995
+ var LegendItem$1 = () => /* @__PURE__ */ react.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-3 w-3 rounded-full" }), /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-3 w-24 rounded-full" }));
7996
+ var SkeletonColumnChart = ({ numberOfLabels = 2, numberOfGroups = 7, numberOfColumns = 1, className }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-col", "gap-6", "w-full", className) }, /* @__PURE__ */ react.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ react.default.createElement("div", { className: "flex items-center gap-4" }, Array.from({ length: numberOfLabels }, (_, i) => /* @__PURE__ */ react.default.createElement(LegendItem$1, { key: i })))), /* @__PURE__ */ react.default.createElement("div", { className: "flex items-end justify-between gap-2" }, Array.from({ length: numberOfGroups }, (_, i) => /* @__PURE__ */ react.default.createElement(ColumnGroup, {
7997
+ key: i,
7998
+ numberOfColumns,
7999
+ groupIndex: i
8000
+ }))));
8001
+ //#endregion
8002
+ //#region src/components/skeleton-loader/SkeletonBarChart.tsx
8003
+ var getBarWidth = (rowIndex) => Math.round(40 + Math.abs(Math.sin(rowIndex + 1)) * 55);
8004
+ var LegendItem = () => /* @__PURE__ */ react.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-3 w-3 rounded-full" }), /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-3 w-24 rounded-full" }));
8005
+ var SkeletonBarChart = ({ numberOfLabels = 3, numberOfRows = 4, numberOfTicks = 4, className }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-6", "flex-col", "gap-6", "w-full", className) }, /* @__PURE__ */ react.default.createElement("div", { className: "flex items-center gap-4" }, Array.from({ length: numberOfLabels }, (_, i) => /* @__PURE__ */ react.default.createElement(LegendItem, { key: i }))), /* @__PURE__ */ react.default.createElement("div", { className: "flex flex-col justify-between gap-4" }, Array.from({ length: numberOfRows }, (_, i) => /* @__PURE__ */ react.default.createElement("div", {
8006
+ key: i,
8007
+ className: "flex items-center gap-5"
8008
+ }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-3 w-20 shrink-0 rounded-full" }), /* @__PURE__ */ react.default.createElement("div", { className: "grow" }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
8009
+ className: "h-5 w-(--width) rounded-full",
8010
+ style: { "--width": `${getBarWidth(i)}%` }
8011
+ })))), /* @__PURE__ */ react.default.createElement("div", { className: "flex justify-between pl-24" }, Array.from({ length: numberOfTicks }, (_, i) => /* @__PURE__ */ react.default.createElement(SkeletonLoader, {
8012
+ key: i,
8013
+ className: "h-2 w-8 rounded-full"
8014
+ })))));
8015
+ //#endregion
8016
+ //#region src/components/skeleton-loader/SkeletonPanelList.tsx
8017
+ var SkeletonPanelList = ({ className }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("px-6", "flex-col", "w-full", className) }, /* @__PURE__ */ react.default.createElement("div", { className: "border-grey-100 flex flex-wrap items-center gap-4 border-b py-4 last:border-b-0" }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "size-10 rounded-full" }), /* @__PURE__ */ react.default.createElement("div", { className: "grow" }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-4 w-2/3 rounded-full" })), /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-8 w-28 rounded-md" })));
8018
+ //#endregion
8019
+ //#region src/components/skeleton-loader/SkeletonSubjectList.tsx
8020
+ var SkeletonSubjectList = ({ className }) => /* @__PURE__ */ react.default.createElement(Tile, { className: (0, clsx.default)("p-2", "flex-row", "flex-wrap", "items-center", "justify-between", "gap-4", "w-full", className) }, /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "h-22 max-w-xl grow rounded-xl" }), /* @__PURE__ */ react.default.createElement(SkeletonLoader, { className: "size-10 shrink-0 rounded-md" }));
8021
+ //#endregion
8031
8022
  //#region src/components/skeleton-loader/index.ts
8032
8023
  var skeleton_loader_exports = /* @__PURE__ */ __exportAll({
8024
+ BarChart: () => SkeletonBarChart,
8033
8025
  Button: () => SkeletonButton,
8034
8026
  Card: () => SkeletonCard,
8027
+ ColumnChart: () => SkeletonColumnChart,
8035
8028
  DoughnutChart: () => SkeletonDoughnutChart,
8036
8029
  Heading: () => SkeletonHeading,
8037
8030
  Loader: () => SkeletonLoader,
8031
+ PanelList: () => SkeletonPanelList,
8032
+ SubjectList: () => SkeletonSubjectList,
8038
8033
  Table: () => SkeletonTable,
8039
8034
  Tabs: () => SkeletonTabs
8040
8035
  });