@activecollab/components 1.0.116 → 1.0.119

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Breadcrumbs/Breadcrumbs.tsx"],"names":["React","useRef","useMemo","useEffect","useState","useForkRef","useResizeObserver","Menu","ListItem","Button","TreeDotsIcon","debounce","StyledNavElement","StyledOList","StyledBreadcrumbListItem","StyledMenuList","Breadcrumbs","forwardRef","ref","children","className","separator","timeout","rest","internalRef","prevWidth","widthCollectionRef","handleRef","dimensions","childrenCollection","Children","toArray","width","setWidth","menuBreadcrumbs","setMenuBreadcrumbs","slice","length","menuCollection","listCollection","actualWidth","current","scrollWidth","breadcrumbItems","firstElementChild","enabled","diffWidth","childWidthCollection","childIndex","childSumWidth","childWidth","offsetWidth","separatorWidth","result","push","pop","oldVal","nextWidth","lastElementChild","offsetLeft","total","collection","sumWidth","lastWidth","totalToDecrease","end","debounceWidth","prevState","cancel","map","child","index","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useRef,\n useMemo,\n useEffect,\n useState,\n} from \"react\";\nimport { useForkRef, useResizeObserver } from \"../../utils\";\nimport { Menu } from \"../Menu\";\nimport { ListItem } from \"../List\";\nimport { Button } from \"../Button\";\nimport { TreeDotsIcon } from \"../Icons\";\nimport debounce from \"lodash.debounce\";\nimport {\n StyledNavElement,\n StyledOList,\n StyledBreadcrumbListItem,\n StyledMenuList,\n} from \"./Styles\";\n\nexport interface BreadcrumbsProps {\n /** Separator element */\n separator?: ReactElement | string;\n /** Resize update timeout */\n timeout?: number;\n}\n\nexport const Breadcrumbs = React.forwardRef<\n HTMLElement,\n BreadcrumbsProps &\n Omit<React.ComponentPropsWithoutRef<\"nav\">, keyof BreadcrumbsProps>\n>(({ children, className, separator = \"/\", timeout = 300, ...rest }, ref) => {\n const internalRef = useRef<HTMLElement | null>(null);\n const prevWidth = useRef<number | undefined>();\n const widthCollectionRef = useRef<number[]>([]);\n const handleRef = useForkRef(ref, internalRef);\n const dimensions = useResizeObserver(internalRef);\n\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [width, setWidth] = useState<number | undefined>();\n const [menuBreadcrumbs, setMenuBreadcrumbs] = useState(0);\n\n const [menuCollection, listCollection] = useMemo(() => {\n return [\n childrenCollection.slice(0, menuBreadcrumbs),\n childrenCollection.slice(menuBreadcrumbs, childrenCollection.length),\n ];\n }, [childrenCollection, menuBreadcrumbs]);\n\n useEffect(() => {\n const actualWidth = internalRef.current?.scrollWidth || 0;\n const breadcrumbItems = internalRef.current?.firstElementChild;\n\n const enabled = (prevWidth.current ?? 0) > (width ?? 0);\n\n if (enabled && width && actualWidth > width) {\n const diffWidth = actualWidth - width;\n const childWidthCollection: number[] = [];\n\n let childIndex = widthCollectionRef.current.length === 0 ? 0 : 2;\n let childSumWidth = 0;\n\n while (diffWidth > childSumWidth) {\n const childWidth =\n (breadcrumbItems?.children[childIndex] as HTMLLIElement)\n ?.offsetWidth ?? 0;\n const separatorWidth =\n (breadcrumbItems?.children[childIndex + 1] as HTMLLIElement)\n ?.offsetWidth ?? 0;\n const result = separatorWidth + childWidth;\n childWidthCollection.push(result);\n childSumWidth += result;\n childIndex += 2;\n }\n\n if (childWidthCollection.length === listCollection.length) {\n childWidthCollection.pop();\n }\n\n widthCollectionRef.current = [\n ...widthCollectionRef.current,\n ...childWidthCollection,\n ];\n\n setMenuBreadcrumbs((oldVal) => oldVal + childWidthCollection.length);\n }\n }, [listCollection.length, width]);\n\n useEffect(() => {\n const breadcrumbItems = internalRef.current?.firstElementChild;\n const nextWidth =\n (breadcrumbItems?.lastElementChild as HTMLLIElement)?.offsetWidth +\n (breadcrumbItems?.lastElementChild as HTMLLIElement)?.offsetLeft;\n\n const enabled = (prevWidth.current ?? 0) < (width ?? 0);\n const diffWidth = (width ?? 0) - nextWidth;\n\n if (enabled && diffWidth > 0 && widthCollectionRef.current.length > 0) {\n const total = widthCollectionRef.current.length;\n const collection = [...widthCollectionRef.current];\n\n let sumWidth = 0;\n\n while (diffWidth > sumWidth && collection.length > 0) {\n const lastWidth = collection[collection.length - 1] ?? 0;\n if (diffWidth < lastWidth + sumWidth) {\n sumWidth = diffWidth;\n } else {\n sumWidth += collection.pop() ?? 0;\n }\n }\n\n const totalToDecrease = total - collection.length;\n\n setMenuBreadcrumbs((oldVal) => oldVal - totalToDecrease);\n\n const end = total - totalToDecrease;\n\n widthCollectionRef.current =\n end > 0 ? widthCollectionRef.current.slice(0, end) : [];\n }\n }, [width]);\n\n useEffect(() => {\n const debounceWidth = debounce((width: number) => {\n setWidth((prevState) => {\n prevWidth.current = prevState ?? width + 1;\n return width;\n });\n }, timeout);\n\n debounceWidth(dimensions?.width ?? 0);\n\n return (): void => {\n debounceWidth.cancel();\n };\n }, [timeout, dimensions?.width]);\n\n return (\n <StyledNavElement className={className} ref={handleRef} {...rest}>\n <StyledOList>\n {menuCollection.length > 0 ? (\n <StyledBreadcrumbListItem>\n <Menu\n target={\n <Button variant=\"text gray\">\n <TreeDotsIcon />\n </Button>\n }\n >\n <StyledMenuList>\n {menuCollection.map((child, index) => (\n <ListItem key={index}>{child}</ListItem>\n ))}\n </StyledMenuList>\n </Menu>\n </StyledBreadcrumbListItem>\n ) : null}\n {listCollection.map((child, index) => {\n return (\n <React.Fragment key={index}>\n {index > 0 || menuCollection.length > 0 ? (\n <StyledBreadcrumbListItem>{separator}</StyledBreadcrumbListItem>\n ) : null}\n <StyledBreadcrumbListItem>{child}</StyledBreadcrumbListItem>\n </React.Fragment>\n );\n })}\n </StyledOList>\n </StyledNavElement>\n );\n});\n\nBreadcrumbs.displayName = \"Breadcrumbs\";\n"],"file":"Breadcrumbs.js"}
1
+ {"version":3,"sources":["../../../../src/components/Breadcrumbs/Breadcrumbs.tsx"],"names":["React","useRef","useMemo","useEffect","useState","useForkRef","useResizeObserver","Menu","ListItem","Button","TreeDotsIcon","StyledNavElement","StyledOList","StyledMenuList","StyledListWrapper","StyledBreadcrumbListItem","Breadcrumbs","forwardRef","ref","children","className","separator","rest","internalRef","listWrapperRef","olRef","widthCollectionRef","handleRef","menuBreadcrumbs","setMenuBreadcrumbs","dimensions","childDimensions","parentWidth","width","childWidth","childrenCollection","Children","toArray","slice","length","menuCollection","listCollection","current","diffWidth","separatorWidth","querySelectorAll","offsetWidth","breadcrumbItems","childWidthCollection","maxIndex","currentIndex","childSumWidth","result","push","pop","oldVal","total","collection","sumWidth","lastWidth","totalToDecrease","newValue","end","map","child","index","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useRef,\n useMemo,\n useEffect,\n useState,\n} from \"react\";\nimport { useForkRef, useResizeObserver } from \"../../utils\";\nimport { Menu } from \"../Menu\";\nimport { ListItem } from \"../List\";\nimport { Button } from \"../Button\";\nimport { TreeDotsIcon } from \"../Icons\";\nimport {\n StyledNavElement,\n StyledOList,\n StyledMenuList,\n StyledListWrapper,\n StyledBreadcrumbListItem,\n} from \"./Styles\";\n\nexport interface BreadcrumbsProps {\n /** Separator element */\n separator?: ReactElement | string;\n}\n\nexport const Breadcrumbs = React.forwardRef<\n HTMLElement,\n BreadcrumbsProps &\n Omit<React.ComponentPropsWithoutRef<\"nav\">, keyof BreadcrumbsProps>\n>(({ children, className, separator = \"/\", ...rest }, ref) => {\n const internalRef = useRef<HTMLElement | null>(null);\n const listWrapperRef = useRef<HTMLDivElement | null>(null);\n const olRef = useRef<HTMLOListElement | null>(null);\n const widthCollectionRef = useRef<number[]>([]);\n const handleRef = useForkRef(ref, internalRef);\n const [menuBreadcrumbs, setMenuBreadcrumbs] = useState(0);\n const dimensions = useResizeObserver(internalRef);\n const childDimensions = useResizeObserver(listWrapperRef);\n\n const parentWidth = dimensions?.width ?? 0;\n const childWidth = childDimensions?.width ?? 0;\n\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [menuCollection, listCollection] = useMemo(() => {\n return [\n childrenCollection.slice(0, menuBreadcrumbs),\n childrenCollection.slice(menuBreadcrumbs, childrenCollection.length),\n ];\n }, [childrenCollection, menuBreadcrumbs]);\n\n useEffect(() => {\n widthCollectionRef.current = [];\n setMenuBreadcrumbs(0);\n }, [childrenCollection.length]);\n\n useEffect(() => {\n const diffWidth = childWidth - parentWidth;\n\n if (diffWidth > 0) {\n const separatorWidth =\n (\n olRef.current?.querySelectorAll(\n `[data-role=\"separator\"]`\n )[0] as HTMLLIElement\n )?.offsetWidth ?? 0;\n const breadcrumbItems =\n olRef.current?.querySelectorAll(`[data-role=\"item\"]`) ?? [];\n const childWidthCollection: number[] = [];\n\n const maxIndex = (breadcrumbItems?.length ?? 1) - 1;\n let currentIndex = 0;\n let childSumWidth = 0;\n\n while (diffWidth > childSumWidth && maxIndex >= currentIndex) {\n const childWidth =\n (breadcrumbItems[currentIndex] as HTMLLIElement)?.offsetWidth ?? 0;\n const result = separatorWidth + childWidth;\n childWidthCollection.push(result);\n childSumWidth += result;\n currentIndex += 1;\n }\n\n if (childWidthCollection.length === listCollection.length) {\n childWidthCollection.pop();\n }\n\n widthCollectionRef.current = [\n ...widthCollectionRef.current,\n ...childWidthCollection,\n ];\n\n setMenuBreadcrumbs((oldVal) => oldVal + childWidthCollection.length);\n }\n }, [listCollection.length, parentWidth, childWidth]);\n\n useEffect(() => {\n const diffWidth = parentWidth - childWidth;\n\n if (diffWidth > 0 && widthCollectionRef.current.length > 0) {\n const total = widthCollectionRef.current.length;\n const collection = [...widthCollectionRef.current];\n\n let sumWidth = 0;\n\n while (diffWidth > sumWidth && collection.length > 0) {\n const lastWidth = collection[collection.length - 1] ?? 0;\n if (diffWidth < lastWidth + sumWidth) {\n sumWidth = diffWidth;\n } else {\n sumWidth += collection.pop() ?? 0;\n }\n }\n\n const totalToDecrease = total - collection.length;\n\n setMenuBreadcrumbs((oldVal) => {\n const newValue = oldVal - totalToDecrease;\n return newValue > 0 ? newValue : 0;\n });\n\n const end = total - totalToDecrease;\n\n widthCollectionRef.current =\n end > 0 ? widthCollectionRef.current.slice(0, end) : [];\n }\n }, [parentWidth, childWidth]);\n\n return (\n <StyledNavElement className={className} ref={handleRef} {...rest}>\n <StyledListWrapper ref={listWrapperRef}>\n <StyledOList ref={olRef}>\n {menuCollection.length > 0 ? (\n <StyledBreadcrumbListItem data-role=\"menu\">\n <Menu\n target={\n <Button variant=\"text gray\">\n <TreeDotsIcon />\n </Button>\n }\n >\n <StyledMenuList>\n {menuCollection.map((child, index) => (\n <ListItem key={index}>{child}</ListItem>\n ))}\n </StyledMenuList>\n </Menu>\n </StyledBreadcrumbListItem>\n ) : null}\n {listCollection.map((child, index) => {\n return (\n <React.Fragment key={index}>\n {index > 0 || menuCollection.length > 0 ? (\n <StyledBreadcrumbListItem data-role=\"separator\">\n {separator}\n </StyledBreadcrumbListItem>\n ) : null}\n <StyledBreadcrumbListItem data-role=\"item\">\n {child}\n </StyledBreadcrumbListItem>\n </React.Fragment>\n );\n })}\n </StyledOList>\n </StyledListWrapper>\n </StyledNavElement>\n );\n});\n\nBreadcrumbs.displayName = \"Breadcrumbs\";\n"],"file":"Breadcrumbs.js"}
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export declare const StyledNavElement: import("styled-components").StyledComponent<"nav", any, {}, never>;
3
- export declare const StyledOList: import("styled-components").StyledComponent<"ul", any, {}, never>;
3
+ export declare const StyledListWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const StyledOList: import("styled-components").StyledComponent<"ol", any, {}, never>;
4
5
  export declare const StyledMenuList: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../List").IList & import("react").HTMLAttributes<HTMLUListElement> & import("react").RefAttributes<HTMLUListElement>>, any, {}, never>;
5
6
  export declare const StyledBreadcrumbListItem: import("styled-components").StyledComponent<"li", any, {}, never>;
6
7
  //# sourceMappingURL=Styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Breadcrumbs/Styles.ts"],"names":[],"mappings":";AAMA,eAAO,MAAM,gBAAgB,oEAK5B,CAAC;AAIF,eAAO,MAAM,WAAW,mEAOvB,CAAC;AAIF,eAAO,MAAM,cAAc,sOAE1B,CAAC;AAIF,eAAO,MAAM,wBAAwB,mEAGpC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Breadcrumbs/Styles.ts"],"names":[],"mappings":";AAMA,eAAO,MAAM,gBAAgB,oEAK5B,CAAC;AAIF,eAAO,MAAM,iBAAiB,oEAE7B,CAAC;AAIF,eAAO,MAAM,WAAW,mEAOvB,CAAC;AAIF,eAAO,MAAM,cAAc,sOAE1B,CAAC;AAIF,eAAO,MAAM,wBAAwB,mEAGpC,CAAC"}
@@ -8,29 +8,36 @@ export var StyledNavElement = styled.nav.withConfig({
8
8
  })(["", " ", " ", " ", ""], {
9
9
  "width": "100%"
10
10
  }, {
11
- "overflow": "visible"
11
+ "overflow": "hidden"
12
12
  }, FontStyle, BoxSizingStyle);
13
13
  StyledNavElement.displayName = "StyledNavElement";
14
- export var StyledOList = styled.ul.withConfig({
15
- displayName: "Styles__StyledOList",
14
+ export var StyledListWrapper = styled.div.withConfig({
15
+ displayName: "Styles__StyledListWrapper",
16
16
  componentId: "sc-rxaesd-1"
17
+ })(["", ""], {
18
+ "display": "inline-block"
19
+ });
20
+ StyledListWrapper.displayName = "StyledListWrapper";
21
+ export var StyledOList = styled.ol.withConfig({
22
+ displayName: "Styles__StyledOList",
23
+ componentId: "sc-rxaesd-2"
17
24
  })(["", " ", " ", " ", " ", " ", ""], {
18
25
  "display": "flex"
19
26
  }, {
20
27
  "alignItems": "flex-start"
28
+ }, {
29
+ "alignItems": "center"
21
30
  }, {
22
31
  "listStyleType": "none"
23
32
  }, {
24
33
  "padding": "0px"
25
34
  }, {
26
35
  "margin": "0px"
27
- }, {
28
- "alignItems": "center"
29
36
  });
30
37
  StyledOList.displayName = "StyledOList";
31
38
  export var StyledMenuList = styled(List).withConfig({
32
39
  displayName: "Styles__StyledMenuList",
33
- componentId: "sc-rxaesd-2"
40
+ componentId: "sc-rxaesd-3"
34
41
  })(["", ""], {
35
42
  "paddingTop": "0.5rem",
36
43
  "paddingBottom": "0.5rem"
@@ -38,7 +45,7 @@ export var StyledMenuList = styled(List).withConfig({
38
45
  StyledMenuList.displayName = "StyledMenuList";
39
46
  export var StyledBreadcrumbListItem = styled.li.withConfig({
40
47
  displayName: "Styles__StyledBreadcrumbListItem",
41
- componentId: "sc-rxaesd-3"
48
+ componentId: "sc-rxaesd-4"
42
49
  })(["", " ", ""], {
43
50
  "display": "flex"
44
51
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Breadcrumbs/Styles.ts"],"names":["styled","BoxSizingStyle","FontStyle","List","StyledNavElement","nav","displayName","StyledOList","ul","StyledMenuList","StyledBreadcrumbListItem","li"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AAEA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,IAAT,QAAqB,SAArB;AAEA,OAAO,IAAMC,gBAAgB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,4BACvB;AAAA;AAAA,CADuB,EAEvB;AAAA;AAAA,CAFuB,EAGzBH,SAHyB,EAIzBD,cAJyB,CAAtB;AAOPG,gBAAgB,CAACE,WAAjB,GAA+B,kBAA/B;AAEA,OAAO,IAAMC,WAAW,GAAGP,MAAM,CAACQ,EAAV;AAAA;AAAA;AAAA,sCAClB;AAAA;AAAA,CADkB,EAElB;AAAA;AAAA,CAFkB,EAGlB;AAAA;AAAA,CAHkB,EAIlB;AAAA;AAAA,CAJkB,EAKlB;AAAA;AAAA,CALkB,EAMlB;AAAA;AAAA,CANkB,CAAjB;AASPD,WAAW,CAACD,WAAZ,GAA0B,aAA1B;AAEA,OAAO,IAAMG,cAAc,GAAGT,MAAM,CAACG,IAAD,CAAT;AAAA;AAAA;AAAA,aACrB;AAAA;AAAA;AAAA,CADqB,CAApB;AAIPM,cAAc,CAACH,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMI,wBAAwB,GAAGV,MAAM,CAACW,EAAV;AAAA;AAAA;AAAA,kBAC/B;AAAA;AAAA,CAD+B,EAE/B;AAAA;AAAA,CAF+B,CAA9B;AAKPD,wBAAwB,CAACJ,WAAzB,GAAuC,0BAAvC","sourcesContent":["import styled from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { List } from \"../List\";\n\nexport const StyledNavElement = styled.nav`\n ${tw`tw-w-full`}\n ${tw`tw-overflow-visible`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledNavElement.displayName = \"StyledNavElement\";\n\nexport const StyledOList = styled.ul`\n ${tw`tw-flex`}\n ${tw`tw-items-start`}\n ${tw`tw-list-none`}\n ${tw`tw-p-0`}\n ${tw`tw-m-0`}\n ${tw`tw-items-center`}\n`;\n\nStyledOList.displayName = \"StyledOList\";\n\nexport const StyledMenuList = styled(List)`\n ${tw`tw-py-2`}\n`;\n\nStyledMenuList.displayName = \"StyledMenuList\";\n\nexport const StyledBreadcrumbListItem = styled.li`\n ${tw`tw-flex`}\n ${tw`tw-flex-shrink-0`}\n`;\n\nStyledBreadcrumbListItem.displayName = \"StyledBreadcrumbListItem\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Breadcrumbs/Styles.ts"],"names":["styled","BoxSizingStyle","FontStyle","List","StyledNavElement","nav","displayName","StyledListWrapper","div","StyledOList","ol","StyledMenuList","StyledBreadcrumbListItem","li"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AAEA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,IAAT,QAAqB,SAArB;AAEA,OAAO,IAAMC,gBAAgB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,4BACvB;AAAA;AAAA,CADuB,EAEvB;AAAA;AAAA,CAFuB,EAGzBH,SAHyB,EAIzBD,cAJyB,CAAtB;AAOPG,gBAAgB,CAACE,WAAjB,GAA+B,kBAA/B;AAEA,OAAO,IAAMC,iBAAiB,GAAGP,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,aACxB;AAAA;AAAA,CADwB,CAAvB;AAIPD,iBAAiB,CAACD,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMG,WAAW,GAAGT,MAAM,CAACU,EAAV;AAAA;AAAA;AAAA,sCAClB;AAAA;AAAA,CADkB,EAElB;AAAA;AAAA,CAFkB,EAGlB;AAAA;AAAA,CAHkB,EAIlB;AAAA;AAAA,CAJkB,EAKlB;AAAA;AAAA,CALkB,EAMlB;AAAA;AAAA,CANkB,CAAjB;AASPD,WAAW,CAACH,WAAZ,GAA0B,aAA1B;AAEA,OAAO,IAAMK,cAAc,GAAGX,MAAM,CAACG,IAAD,CAAT;AAAA;AAAA;AAAA,aACrB;AAAA;AAAA;AAAA,CADqB,CAApB;AAIPQ,cAAc,CAACL,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMM,wBAAwB,GAAGZ,MAAM,CAACa,EAAV;AAAA;AAAA;AAAA,kBAC/B;AAAA;AAAA,CAD+B,EAE/B;AAAA;AAAA,CAF+B,CAA9B;AAKPD,wBAAwB,CAACN,WAAzB,GAAuC,0BAAvC","sourcesContent":["import styled from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { List } from \"../List\";\n\nexport const StyledNavElement = styled.nav`\n ${tw`tw-w-full`}\n ${tw`tw-overflow-hidden`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledNavElement.displayName = \"StyledNavElement\";\n\nexport const StyledListWrapper = styled.div`\n ${tw`tw-inline-block`}\n`;\n\nStyledListWrapper.displayName = \"StyledListWrapper\";\n\nexport const StyledOList = styled.ol`\n ${tw`tw-flex`}\n ${tw`tw-items-start`}\n ${tw`tw-items-center`}\n ${tw`tw-list-none`}\n ${tw`tw-p-0`}\n ${tw`tw-m-0`}\n`;\n\nStyledOList.displayName = \"StyledOList\";\n\nexport const StyledMenuList = styled(List)`\n ${tw`tw-py-2`}\n`;\n\nStyledMenuList.displayName = \"StyledMenuList\";\n\nexport const StyledBreadcrumbListItem = styled.li`\n ${tw`tw-flex`}\n ${tw`tw-flex-shrink-0`}\n`;\n\nStyledBreadcrumbListItem.displayName = \"StyledBreadcrumbListItem\";\n"],"file":"Styles.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAIxC,UAAU,iBAAkB,SAAQ,YAAY;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,sFAqOxB,CAAC;AAIF,eAAO,MAAM,oBAAoB,qEAGhC,CAAC;AAIF,eAAO,MAAM,mBAAmB,qEAK/B,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Button/Styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAIxC,UAAU,iBAAkB,SAAQ,YAAY;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,sFA2OxB,CAAC;AAIF,eAAO,MAAM,oBAAoB,qEAGhC,CAAC;AAIF,eAAO,MAAM,mBAAmB,qEAK/B,CAAC"}
@@ -9,17 +9,17 @@ export var StyledButton = styled.button.withConfig({
9
9
  }, function (props) {
10
10
  return props.size === "big" && css(["height:40px;"]);
11
11
  }, function (props) {
12
- return (props.variant === "primary" || props.variant === "contained") && css(["padding:0 16px;background-color:var(--color-primary);border-radius:var(--ac-br-rounded);color:var(--page-paper-main);&:hover{box-shadow:0 3px 6px -2px var(--color-primary-500);background-color:var(--color-primary-800);}&:active{box-shadow:0 4px 10px -2px var(--color-primary-600);background-color:var(--color-primary-800);}"]);
12
+ return (props.variant === "primary" || props.variant === "contained") && css(["padding:0 16px;background-color:var(--color-primary);border-radius:var(--ac-br-rounded);color:var(--page-paper-main);&:hover,&:focus{box-shadow:0 3px 6px -2px var(--color-primary-500);background-color:var(--color-primary-800);}&:active{box-shadow:0 4px 10px -2px var(--color-primary-600);background-color:var(--color-primary-800);}"]);
13
13
  }, function (props) {
14
- return (props.variant === "secondary" || props.variant === "outlined") && css(["padding:0 16px;background-color:transparent;border-radius:var(--ac-br-rounded);border:solid 1px var(--color-theme-700);color:var(--color-theme-700);&:hover{border-color:var(--color-primary);color:var(--color-primary);}&:active{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-200);}"]);
14
+ return (props.variant === "secondary" || props.variant === "outlined") && css(["padding:0 16px;background-color:transparent;border-radius:var(--ac-br-rounded);border:solid 1px var(--color-theme-700);color:var(--color-theme-700);&:hover,&:focus{border-color:var(--color-primary);color:var(--color-primary);}&:active{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-200);}"]);
15
15
  }, function (props) {
16
- return props.variant === "dark transparent" && css(["padding:0 8px;background-color:rgba(0,0,0,0.5);border-radius:var(--ac-br-6);color:var(--only-white);&:hover{background-color:rgba(0,0,0,0.85);}&:active{background-color:var(--only-black);}"]);
16
+ return props.variant === "dark transparent" && css(["padding:0 8px;background-color:rgba(0,0,0,0.5);border-radius:var(--ac-br-6);color:var(--only-white);&:hover,&:focus{background-color:rgba(0,0,0,0.85);}&:active{background-color:var(--only-black);}"]);
17
17
  }, function (props) {
18
- return (props.variant === "tertiary" || props.variant === "text colored") && css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-primary);&:hover{background-color:var(--color-primary-200);}&:active{background-color:var(--color-primary-300);}"]);
18
+ return (props.variant === "tertiary" || props.variant === "text colored") && css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-primary);&:hover,&:focus{background-color:var(--color-primary-200);}&:active{background-color:var(--color-primary-300);}"]);
19
19
  }, function (props) {
20
- return (props.variant === "option" || props.variant === "text gray") && css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-theme-700);&:hover{background-color:var(--color-theme-300);color:var(--color-theme-900);}&:active{background-color:var(--color-theme-400);color:var(--color-theme-900);}"]);
20
+ return (props.variant === "option" || props.variant === "text gray") && css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-theme-700);&:hover,&:focus{background-color:var(--color-theme-300);color:var(--color-theme-900);}&:active{background-color:var(--color-theme-400);color:var(--color-theme-900);}"]);
21
21
  }, function (props) {
22
- return props.variant === "circle raised" && css(["padding:0 6px;background-color:transparent;border-radius:var(--ac-br-rounded);color:var(--color-theme-700);transition:ease 0.3s all;&:hover{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary);}&:active{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary-hover);}"]);
22
+ return props.variant === "circle raised" && css(["padding:0 6px;background-color:transparent;border-radius:var(--ac-br-rounded);color:var(--color-theme-700);transition:ease 0.3s all;&:hover,&:focus{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary);}&:active{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary-hover);}"]);
23
23
  }, function (props) {
24
24
  return props.iconOnly && css(["display:inline-flex;justify-content:center;align-items:center;padding:0;width:32px;", ";", " ", ""], (props.size === "small" || props.size === "big") && css(["border-radius:var(--ac-br-rounded);"]), props.size === "small" && css(["width:24px;"]), props.size === "big" && css(["width:40px;"]));
25
25
  }, function (props) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Button/Styles.ts"],"names":["styled","css","FontStyle","BoxSizingStyle","StyledButton","button","props","size","variant","iconOnly","displayName","StyledButtonElements","span","StyledButtonElement"],"mappings":"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","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { IButtonProps } from \"./Button\";\nimport { FontStyle } from \"../FontStyle\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\n\ninterface StyledButtonProps extends IButtonProps {\n iconOnly: boolean;\n}\n\nexport const StyledButton = styled.button<StyledButtonProps>`\n ${FontStyle}\n ${BoxSizingStyle}\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n vertical-align: middle;\n font-weight: 500;\n display: inline-block;\n line-height: 1;\n margin: 0;\n text-decoration: none;\n font-size: 0.875rem;\n user-select: none;\n cursor: pointer;\n text-align: center;\n\n border: none;\n height: 32px;\n transition: all 0.3s ease;\n\n svg {\n fill: currentColor;\n }\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n text-decoration: none;\n }\n\n &:disabled {\n cursor: default;\n opacity: 50%;\n pointer-events: none;\n }\n\n ${(props) =>\n props.size === \"small\" &&\n css`\n height: 24px;\n `}\n\n ${(props) =>\n props.size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n (props.variant === \"primary\" || props.variant === \"contained\") &&\n css`\n padding: 0 16px;\n background-color: var(--color-primary);\n border-radius: var(--ac-br-rounded);\n color: var(--page-paper-main);\n\n &:hover {\n box-shadow: 0 3px 6px -2px var(--color-primary-500);\n background-color: var(--color-primary-800);\n }\n\n &:active {\n box-shadow: 0 4px 10px -2px var(--color-primary-600);\n background-color: var(--color-primary-800);\n }\n `}\n\n ${(props) =>\n (props.variant === \"secondary\" || props.variant === \"outlined\") &&\n css`\n padding: 0 16px;\n background-color: transparent;\n border-radius: var(--ac-br-rounded);\n border: solid 1px var(--color-theme-700);\n color: var(--color-theme-700);\n\n &:hover {\n border-color: var(--color-primary);\n color: var(--color-primary);\n }\n\n &:active {\n border-color: var(--color-primary);\n color: var(--color-primary);\n background-color: var(--color-primary-200);\n }\n `}\n\n ${(props) =>\n props.variant === \"dark transparent\" &&\n css`\n padding: 0 8px;\n background-color: rgba(0, 0, 0, 0.5);\n border-radius: var(--ac-br-6);\n color: var(--only-white);\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.85);\n }\n\n &:active {\n background-color: var(--only-black);\n }\n `}\n\n ${(props) =>\n (props.variant === \"tertiary\" || props.variant === \"text colored\") &&\n css`\n padding: 0 8px;\n background-color: transparent;\n border-radius: var(--ac-br-6);\n color: var(--color-primary);\n\n &:hover {\n background-color: var(--color-primary-200);\n }\n\n &:active {\n background-color: var(--color-primary-300);\n }\n `}\n\n ${(props) =>\n (props.variant === \"option\" || props.variant === \"text gray\") &&\n css`\n padding: 0 8px;\n background-color: transparent;\n border-radius: var(--ac-br-6);\n color: var(--color-theme-700);\n\n &:hover {\n background-color: var(--color-theme-300);\n color: var(--color-theme-900);\n }\n\n &:active {\n background-color: var(--color-theme-400);\n color: var(--color-theme-900);\n }\n `}\n\n ${(props) =>\n props.variant === \"circle raised\" &&\n css`\n padding: 0 6px;\n background-color: transparent;\n border-radius: var(--ac-br-rounded);\n color: var(--color-theme-700);\n transition: ease 0.3s all;\n\n &:hover {\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-tertiary);\n }\n\n &:active {\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-tertiary-hover);\n }\n `}\n\n ${(props) =>\n props.iconOnly &&\n css`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n padding: 0;\n width: 32px;\n\n ${(props.size === \"small\" || props.size === \"big\") &&\n css`\n border-radius: var(--ac-br-rounded);\n `};\n\n ${props.size === \"small\" &&\n css`\n width: 24px;\n `}\n\n ${props.size === \"big\" &&\n css`\n width: 40px;\n `}\n `}\n\n ${(props) =>\n (props.variant === \"primary\" ||\n props.variant === \"contained\" ||\n props.variant === \"secondary\" ||\n props.variant === \"outlined\") &&\n css`\n .c-btn__elements__element:first-child svg {\n margin-left: -6px;\n }\n .c-btn__elements__element:last-child svg {\n margin-right: -6px;\n }\n\n ${(props.size === \"small\" || props.size === \"big\") &&\n css`\n border-radius: var(--ac-br-rounded);\n `}\n `}\n\n ${(props) =>\n (props.variant === \"tertiary\" ||\n props.variant === \"text colored\" ||\n props.variant === \"option\" ||\n props.variant === \"text gray\" ||\n props.variant === \"dark transparent\") &&\n css`\n .c-btn__elements__element:first-child svg {\n margin-left: -4px;\n }\n .c-btn__elements__element:last-child svg {\n margin-right: -4px;\n }\n ${props.size === \"small\" &&\n css`\n border-radius: var(--ac-br-4);\n `}\n ${props.size === \"big\" &&\n css`\n border-radius: var(--ac-br-8);\n `}\n `}\n`;\n\nStyledButton.displayName = \"StyledButton\";\n\nexport const StyledButtonElements = styled.span`\n display: flex;\n align-items: center;\n`;\n\nStyledButtonElements.displayName = \"StyledButtonElements\";\n\nexport const StyledButtonElement = styled.span`\n display: inline-flex;\n svg {\n margin: 0 4px;\n }\n`;\n\nStyledButtonElement.displayName = \"StyledButtonElement\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Button/Styles.ts"],"names":["styled","css","FontStyle","BoxSizingStyle","StyledButton","button","props","size","variant","iconOnly","displayName","StyledButtonElements","span","StyledButtonElement"],"mappings":"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","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { IButtonProps } from \"./Button\";\nimport { FontStyle } from \"../FontStyle\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\n\ninterface StyledButtonProps extends IButtonProps {\n iconOnly: boolean;\n}\n\nexport const StyledButton = styled.button<StyledButtonProps>`\n ${FontStyle}\n ${BoxSizingStyle}\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n vertical-align: middle;\n font-weight: 500;\n display: inline-block;\n line-height: 1;\n margin: 0;\n text-decoration: none;\n font-size: 0.875rem;\n user-select: none;\n cursor: pointer;\n text-align: center;\n\n border: none;\n height: 32px;\n transition: all 0.3s ease;\n\n svg {\n fill: currentColor;\n }\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n text-decoration: none;\n }\n\n &:disabled {\n cursor: default;\n opacity: 50%;\n pointer-events: none;\n }\n\n ${(props) =>\n props.size === \"small\" &&\n css`\n height: 24px;\n `}\n\n ${(props) =>\n props.size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n (props.variant === \"primary\" || props.variant === \"contained\") &&\n css`\n padding: 0 16px;\n background-color: var(--color-primary);\n border-radius: var(--ac-br-rounded);\n color: var(--page-paper-main);\n\n &:hover,\n &:focus {\n box-shadow: 0 3px 6px -2px var(--color-primary-500);\n background-color: var(--color-primary-800);\n }\n\n &:active {\n box-shadow: 0 4px 10px -2px var(--color-primary-600);\n background-color: var(--color-primary-800);\n }\n `}\n\n ${(props) =>\n (props.variant === \"secondary\" || props.variant === \"outlined\") &&\n css`\n padding: 0 16px;\n background-color: transparent;\n border-radius: var(--ac-br-rounded);\n border: solid 1px var(--color-theme-700);\n color: var(--color-theme-700);\n\n &:hover,\n &:focus {\n border-color: var(--color-primary);\n color: var(--color-primary);\n }\n\n &:active {\n border-color: var(--color-primary);\n color: var(--color-primary);\n background-color: var(--color-primary-200);\n }\n `}\n\n ${(props) =>\n props.variant === \"dark transparent\" &&\n css`\n padding: 0 8px;\n background-color: rgba(0, 0, 0, 0.5);\n border-radius: var(--ac-br-6);\n color: var(--only-white);\n\n &:hover,\n &:focus {\n background-color: rgba(0, 0, 0, 0.85);\n }\n\n &:active {\n background-color: var(--only-black);\n }\n `}\n\n ${(props) =>\n (props.variant === \"tertiary\" || props.variant === \"text colored\") &&\n css`\n padding: 0 8px;\n background-color: transparent;\n border-radius: var(--ac-br-6);\n color: var(--color-primary);\n\n &:hover,\n &:focus {\n background-color: var(--color-primary-200);\n }\n\n &:active {\n background-color: var(--color-primary-300);\n }\n `}\n\n ${(props) =>\n (props.variant === \"option\" || props.variant === \"text gray\") &&\n css`\n padding: 0 8px;\n background-color: transparent;\n border-radius: var(--ac-br-6);\n color: var(--color-theme-700);\n\n &:hover,\n &:focus {\n background-color: var(--color-theme-300);\n color: var(--color-theme-900);\n }\n\n &:active {\n background-color: var(--color-theme-400);\n color: var(--color-theme-900);\n }\n `}\n\n ${(props) =>\n props.variant === \"circle raised\" &&\n css`\n padding: 0 6px;\n background-color: transparent;\n border-radius: var(--ac-br-rounded);\n color: var(--color-theme-700);\n transition: ease 0.3s all;\n\n &:hover,\n &:focus {\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-tertiary);\n }\n\n &:active {\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-tertiary-hover);\n }\n `}\n\n ${(props) =>\n props.iconOnly &&\n css`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n padding: 0;\n width: 32px;\n\n ${(props.size === \"small\" || props.size === \"big\") &&\n css`\n border-radius: var(--ac-br-rounded);\n `};\n\n ${props.size === \"small\" &&\n css`\n width: 24px;\n `}\n\n ${props.size === \"big\" &&\n css`\n width: 40px;\n `}\n `}\n\n ${(props) =>\n (props.variant === \"primary\" ||\n props.variant === \"contained\" ||\n props.variant === \"secondary\" ||\n props.variant === \"outlined\") &&\n css`\n .c-btn__elements__element:first-child svg {\n margin-left: -6px;\n }\n .c-btn__elements__element:last-child svg {\n margin-right: -6px;\n }\n\n ${(props.size === \"small\" || props.size === \"big\") &&\n css`\n border-radius: var(--ac-br-rounded);\n `}\n `}\n\n ${(props) =>\n (props.variant === \"tertiary\" ||\n props.variant === \"text colored\" ||\n props.variant === \"option\" ||\n props.variant === \"text gray\" ||\n props.variant === \"dark transparent\") &&\n css`\n .c-btn__elements__element:first-child svg {\n margin-left: -4px;\n }\n .c-btn__elements__element:last-child svg {\n margin-right: -4px;\n }\n ${props.size === \"small\" &&\n css`\n border-radius: var(--ac-br-4);\n `}\n ${props.size === \"big\" &&\n css`\n border-radius: var(--ac-br-8);\n `}\n `}\n`;\n\nStyledButton.displayName = \"StyledButton\";\n\nexport const StyledButtonElements = styled.span`\n display: flex;\n align-items: center;\n`;\n\nStyledButtonElements.displayName = \"StyledButtonElements\";\n\nexport const StyledButtonElement = styled.span`\n display: inline-flex;\n svg {\n margin: 0 4px;\n }\n`;\n\nStyledButtonElement.displayName = \"StyledButtonElement\";\n"],"file":"Styles.js"}
package/dist/index.js CHANGED
@@ -1,21 +1,21 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('styled-components'), require('classnames'), require('lodash.debounce'), require('resize-observer-polyfill'), require('react-focus-lock'), require('react-remove-scroll'), require('react-dom'), require('@popperjs/core'), require('react-transition-group'), require('moment'), require('react-day-picker/moment'), require('react-day-picker'), require('react-custom-scrollbars')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'react', 'styled-components', 'classnames', 'lodash.debounce', 'resize-observer-polyfill', 'react-focus-lock', 'react-remove-scroll', 'react-dom', '@popperjs/core', 'react-transition-group', 'moment', 'react-day-picker/moment', 'react-day-picker', 'react-custom-scrollbars'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.components = {}, global.React, global.styled, global.classnames, global.debounce, global.ResizeObserver, global.FocusLock, global.reactRemoveScroll, global.ReactDOM, global.core, global.reactTransitionGroup, global.moment, global.MomentLocaleUtils, global.DayPicker, global.reactCustomScrollbars));
5
- })(this, (function (exports, React, styled, classnames, debounce, ResizeObserver, FocusLock, reactRemoveScroll, ReactDOM, core, reactTransitionGroup, moment, MomentLocaleUtils, DayPicker, reactCustomScrollbars) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('styled-components'), require('classnames'), require('resize-observer-polyfill'), require('react-focus-lock'), require('react-remove-scroll'), require('react-dom'), require('@popperjs/core'), require('react-transition-group'), require('moment'), require('react-day-picker/moment'), require('react-day-picker'), require('lodash.debounce'), require('react-custom-scrollbars')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'react', 'styled-components', 'classnames', 'resize-observer-polyfill', 'react-focus-lock', 'react-remove-scroll', 'react-dom', '@popperjs/core', 'react-transition-group', 'moment', 'react-day-picker/moment', 'react-day-picker', 'lodash.debounce', 'react-custom-scrollbars'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.components = {}, global.React, global.styled, global.classnames, global.ResizeObserver, global.FocusLock, global.reactRemoveScroll, global.ReactDOM, global.core, global.reactTransitionGroup, global.moment, global.MomentLocaleUtils, global.DayPicker, global.debounce, global.reactCustomScrollbars));
5
+ })(this, (function (exports, React, styled, classnames, ResizeObserver, FocusLock, reactRemoveScroll, ReactDOM, core, reactTransitionGroup, moment, MomentLocaleUtils, DayPicker, debounce, reactCustomScrollbars) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
9
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
10
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
11
11
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
12
- var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
13
12
  var ResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(ResizeObserver);
14
13
  var FocusLock__default = /*#__PURE__*/_interopDefaultLegacy(FocusLock);
15
14
  var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
16
15
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
17
16
  var MomentLocaleUtils__default = /*#__PURE__*/_interopDefaultLegacy(MomentLocaleUtils);
18
17
  var DayPicker__default = /*#__PURE__*/_interopDefaultLegacy(DayPicker);
18
+ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
19
19
 
20
20
  function ownKeys(object, enumerableOnly) {
21
21
  var keys = Object.keys(object);
@@ -284,17 +284,17 @@
284
284
  }, function (props) {
285
285
  return props.size === "big" && styled.css(["height:40px;"]);
286
286
  }, function (props) {
287
- return (props.variant === "primary" || props.variant === "contained") && styled.css(["padding:0 16px;background-color:var(--color-primary);border-radius:var(--ac-br-rounded);color:var(--page-paper-main);&:hover{box-shadow:0 3px 6px -2px var(--color-primary-500);background-color:var(--color-primary-800);}&:active{box-shadow:0 4px 10px -2px var(--color-primary-600);background-color:var(--color-primary-800);}"]);
287
+ return (props.variant === "primary" || props.variant === "contained") && styled.css(["padding:0 16px;background-color:var(--color-primary);border-radius:var(--ac-br-rounded);color:var(--page-paper-main);&:hover,&:focus{box-shadow:0 3px 6px -2px var(--color-primary-500);background-color:var(--color-primary-800);}&:active{box-shadow:0 4px 10px -2px var(--color-primary-600);background-color:var(--color-primary-800);}"]);
288
288
  }, function (props) {
289
- return (props.variant === "secondary" || props.variant === "outlined") && styled.css(["padding:0 16px;background-color:transparent;border-radius:var(--ac-br-rounded);border:solid 1px var(--color-theme-700);color:var(--color-theme-700);&:hover{border-color:var(--color-primary);color:var(--color-primary);}&:active{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-200);}"]);
289
+ return (props.variant === "secondary" || props.variant === "outlined") && styled.css(["padding:0 16px;background-color:transparent;border-radius:var(--ac-br-rounded);border:solid 1px var(--color-theme-700);color:var(--color-theme-700);&:hover,&:focus{border-color:var(--color-primary);color:var(--color-primary);}&:active{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-200);}"]);
290
290
  }, function (props) {
291
- return props.variant === "dark transparent" && styled.css(["padding:0 8px;background-color:rgba(0,0,0,0.5);border-radius:var(--ac-br-6);color:var(--only-white);&:hover{background-color:rgba(0,0,0,0.85);}&:active{background-color:var(--only-black);}"]);
291
+ return props.variant === "dark transparent" && styled.css(["padding:0 8px;background-color:rgba(0,0,0,0.5);border-radius:var(--ac-br-6);color:var(--only-white);&:hover,&:focus{background-color:rgba(0,0,0,0.85);}&:active{background-color:var(--only-black);}"]);
292
292
  }, function (props) {
293
- return (props.variant === "tertiary" || props.variant === "text colored") && styled.css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-primary);&:hover{background-color:var(--color-primary-200);}&:active{background-color:var(--color-primary-300);}"]);
293
+ return (props.variant === "tertiary" || props.variant === "text colored") && styled.css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-primary);&:hover,&:focus{background-color:var(--color-primary-200);}&:active{background-color:var(--color-primary-300);}"]);
294
294
  }, function (props) {
295
- return (props.variant === "option" || props.variant === "text gray") && styled.css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-theme-700);&:hover{background-color:var(--color-theme-300);color:var(--color-theme-900);}&:active{background-color:var(--color-theme-400);color:var(--color-theme-900);}"]);
295
+ return (props.variant === "option" || props.variant === "text gray") && styled.css(["padding:0 8px;background-color:transparent;border-radius:var(--ac-br-6);color:var(--color-theme-700);&:hover,&:focus{background-color:var(--color-theme-300);color:var(--color-theme-900);}&:active{background-color:var(--color-theme-400);color:var(--color-theme-900);}"]);
296
296
  }, function (props) {
297
- return props.variant === "circle raised" && styled.css(["padding:0 6px;background-color:transparent;border-radius:var(--ac-br-rounded);color:var(--color-theme-700);transition:ease 0.3s all;&:hover{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary);}&:active{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary-hover);}"]);
297
+ return props.variant === "circle raised" && styled.css(["padding:0 6px;background-color:transparent;border-radius:var(--ac-br-rounded);color:var(--color-theme-700);transition:ease 0.3s all;&:hover,&:focus{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary);}&:active{background-color:var(--page-paper-main);box-shadow:var(--shadow-tertiary-hover);}"]);
298
298
  }, function (props) {
299
299
  return props.iconOnly && styled.css(["display:inline-flex;justify-content:center;align-items:center;padding:0;width:32px;", ";", " ", ""], (props.size === "small" || props.size === "big") && styled.css(["border-radius:var(--ac-br-rounded);"]), props.size === "small" && styled.css(["width:24px;"]), props.size === "big" && styled.css(["width:40px;"]));
300
300
  }, function (props) {
@@ -3575,29 +3575,36 @@
3575
3575
  })(["", " ", " ", " ", ""], {
3576
3576
  "width": "100%"
3577
3577
  }, {
3578
- "overflow": "visible"
3578
+ "overflow": "hidden"
3579
3579
  }, FontStyle, BoxSizingStyle);
3580
3580
  StyledNavElement.displayName = "StyledNavElement";
3581
- var StyledOList = styled__default["default"].ul.withConfig({
3582
- displayName: "Styles__StyledOList",
3581
+ var StyledListWrapper = styled__default["default"].div.withConfig({
3582
+ displayName: "Styles__StyledListWrapper",
3583
3583
  componentId: "sc-rxaesd-1"
3584
+ })(["", ""], {
3585
+ "display": "inline-block"
3586
+ });
3587
+ StyledListWrapper.displayName = "StyledListWrapper";
3588
+ var StyledOList = styled__default["default"].ol.withConfig({
3589
+ displayName: "Styles__StyledOList",
3590
+ componentId: "sc-rxaesd-2"
3584
3591
  })(["", " ", " ", " ", " ", " ", ""], {
3585
3592
  "display": "flex"
3586
3593
  }, {
3587
3594
  "alignItems": "flex-start"
3595
+ }, {
3596
+ "alignItems": "center"
3588
3597
  }, {
3589
3598
  "listStyleType": "none"
3590
3599
  }, {
3591
3600
  "padding": "0px"
3592
3601
  }, {
3593
3602
  "margin": "0px"
3594
- }, {
3595
- "alignItems": "center"
3596
3603
  });
3597
3604
  StyledOList.displayName = "StyledOList";
3598
3605
  var StyledMenuList = styled__default["default"](List).withConfig({
3599
3606
  displayName: "Styles__StyledMenuList",
3600
- componentId: "sc-rxaesd-2"
3607
+ componentId: "sc-rxaesd-3"
3601
3608
  })(["", ""], {
3602
3609
  "paddingTop": "0.5rem",
3603
3610
  "paddingBottom": "0.5rem"
@@ -3605,7 +3612,7 @@
3605
3612
  StyledMenuList.displayName = "StyledMenuList";
3606
3613
  var StyledBreadcrumbListItem = styled__default["default"].li.withConfig({
3607
3614
  displayName: "Styles__StyledBreadcrumbListItem",
3608
- componentId: "sc-rxaesd-3"
3615
+ componentId: "sc-rxaesd-4"
3609
3616
  })(["", " ", ""], {
3610
3617
  "display": "flex"
3611
3618
  }, {
@@ -3613,35 +3620,35 @@
3613
3620
  });
3614
3621
  StyledBreadcrumbListItem.displayName = "StyledBreadcrumbListItem";
3615
3622
 
3616
- var _excluded$O = ["children", "className", "separator", "timeout"];
3623
+ var _excluded$O = ["children", "className", "separator"];
3617
3624
  var Breadcrumbs = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
3625
+ var _dimensions$width, _childDimensions$widt;
3626
+
3618
3627
  var children = _ref.children,
3619
3628
  className = _ref.className,
3620
3629
  _ref$separator = _ref.separator,
3621
3630
  separator = _ref$separator === void 0 ? "/" : _ref$separator,
3622
- _ref$timeout = _ref.timeout,
3623
- timeout = _ref$timeout === void 0 ? 300 : _ref$timeout,
3624
3631
  rest = _objectWithoutProperties(_ref, _excluded$O);
3625
3632
 
3626
3633
  var internalRef = React.useRef(null);
3627
- var prevWidth = React.useRef();
3634
+ var listWrapperRef = React.useRef(null);
3635
+ var olRef = React.useRef(null);
3628
3636
  var widthCollectionRef = React.useRef([]);
3629
3637
  var handleRef = useForkRef(ref, internalRef);
3638
+
3639
+ var _useState = React.useState(0),
3640
+ _useState2 = _slicedToArray(_useState, 2),
3641
+ menuBreadcrumbs = _useState2[0],
3642
+ setMenuBreadcrumbs = _useState2[1];
3643
+
3630
3644
  var dimensions = useResizeObserver$1(internalRef);
3645
+ var childDimensions = useResizeObserver$1(listWrapperRef);
3646
+ var parentWidth = (_dimensions$width = dimensions === null || dimensions === void 0 ? void 0 : dimensions.width) !== null && _dimensions$width !== void 0 ? _dimensions$width : 0;
3647
+ var childWidth = (_childDimensions$widt = childDimensions === null || childDimensions === void 0 ? void 0 : childDimensions.width) !== null && _childDimensions$widt !== void 0 ? _childDimensions$widt : 0;
3631
3648
  var childrenCollection = React.useMemo(function () {
3632
3649
  return React__default["default"].Children.toArray(children);
3633
3650
  }, [children]);
3634
3651
 
3635
- var _useState = React.useState(),
3636
- _useState2 = _slicedToArray(_useState, 2),
3637
- width = _useState2[0],
3638
- setWidth = _useState2[1];
3639
-
3640
- var _useState3 = React.useState(0),
3641
- _useState4 = _slicedToArray(_useState3, 2),
3642
- menuBreadcrumbs = _useState4[0],
3643
- setMenuBreadcrumbs = _useState4[1];
3644
-
3645
3652
  var _useMemo = React.useMemo(function () {
3646
3653
  return [childrenCollection.slice(0, menuBreadcrumbs), childrenCollection.slice(menuBreadcrumbs, childrenCollection.length)];
3647
3654
  }, [childrenCollection, menuBreadcrumbs]),
@@ -3650,27 +3657,31 @@
3650
3657
  listCollection = _useMemo2[1];
3651
3658
 
3652
3659
  React.useEffect(function () {
3653
- var _internalRef$current, _internalRef$current2, _prevWidth$current;
3660
+ widthCollectionRef.current = [];
3661
+ setMenuBreadcrumbs(0);
3662
+ }, [childrenCollection.length]);
3663
+ React.useEffect(function () {
3664
+ var diffWidth = childWidth - parentWidth;
3654
3665
 
3655
- var actualWidth = ((_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.scrollWidth) || 0;
3656
- var breadcrumbItems = (_internalRef$current2 = internalRef.current) === null || _internalRef$current2 === void 0 ? void 0 : _internalRef$current2.firstElementChild;
3657
- var enabled = ((_prevWidth$current = prevWidth.current) !== null && _prevWidth$current !== void 0 ? _prevWidth$current : 0) > (width !== null && width !== void 0 ? width : 0);
3666
+ if (diffWidth > 0) {
3667
+ var _offsetWidth, _olRef$current, _olRef$current$queryS, _olRef$current$queryS2, _olRef$current2, _breadcrumbItems$leng;
3658
3668
 
3659
- if (enabled && width && actualWidth > width) {
3660
- var diffWidth = actualWidth - width;
3669
+ var separatorWidth = (_offsetWidth = (_olRef$current = olRef.current) === null || _olRef$current === void 0 ? void 0 : (_olRef$current$queryS = _olRef$current.querySelectorAll("[data-role=\"separator\"]")[0]) === null || _olRef$current$queryS === void 0 ? void 0 : _olRef$current$queryS.offsetWidth) !== null && _offsetWidth !== void 0 ? _offsetWidth : 0;
3670
+ var breadcrumbItems = (_olRef$current$queryS2 = (_olRef$current2 = olRef.current) === null || _olRef$current2 === void 0 ? void 0 : _olRef$current2.querySelectorAll("[data-role=\"item\"]")) !== null && _olRef$current$queryS2 !== void 0 ? _olRef$current$queryS2 : [];
3661
3671
  var childWidthCollection = [];
3662
- var childIndex = widthCollectionRef.current.length === 0 ? 0 : 2;
3672
+ var maxIndex = ((_breadcrumbItems$leng = breadcrumbItems === null || breadcrumbItems === void 0 ? void 0 : breadcrumbItems.length) !== null && _breadcrumbItems$leng !== void 0 ? _breadcrumbItems$leng : 1) - 1;
3673
+ var currentIndex = 0;
3663
3674
  var childSumWidth = 0;
3664
3675
 
3665
- while (diffWidth > childSumWidth) {
3666
- var _offsetWidth, _breadcrumbItems$chil, _offsetWidth2, _breadcrumbItems$chil2;
3676
+ while (diffWidth > childSumWidth && maxIndex >= currentIndex) {
3677
+ var _offsetWidth2, _breadcrumbItems$curr;
3667
3678
 
3668
- var childWidth = (_offsetWidth = breadcrumbItems === null || breadcrumbItems === void 0 ? void 0 : (_breadcrumbItems$chil = breadcrumbItems.children[childIndex]) === null || _breadcrumbItems$chil === void 0 ? void 0 : _breadcrumbItems$chil.offsetWidth) !== null && _offsetWidth !== void 0 ? _offsetWidth : 0;
3669
- var separatorWidth = (_offsetWidth2 = breadcrumbItems === null || breadcrumbItems === void 0 ? void 0 : (_breadcrumbItems$chil2 = breadcrumbItems.children[childIndex + 1]) === null || _breadcrumbItems$chil2 === void 0 ? void 0 : _breadcrumbItems$chil2.offsetWidth) !== null && _offsetWidth2 !== void 0 ? _offsetWidth2 : 0;
3670
- var result = separatorWidth + childWidth;
3679
+ var _childWidth = (_offsetWidth2 = (_breadcrumbItems$curr = breadcrumbItems[currentIndex]) === null || _breadcrumbItems$curr === void 0 ? void 0 : _breadcrumbItems$curr.offsetWidth) !== null && _offsetWidth2 !== void 0 ? _offsetWidth2 : 0;
3680
+
3681
+ var result = separatorWidth + _childWidth;
3671
3682
  childWidthCollection.push(result);
3672
3683
  childSumWidth += result;
3673
- childIndex += 2;
3684
+ currentIndex += 1;
3674
3685
  }
3675
3686
 
3676
3687
  if (childWidthCollection.length === listCollection.length) {
@@ -3682,16 +3693,11 @@
3682
3693
  return oldVal + childWidthCollection.length;
3683
3694
  });
3684
3695
  }
3685
- }, [listCollection.length, width]);
3696
+ }, [listCollection.length, parentWidth, childWidth]);
3686
3697
  React.useEffect(function () {
3687
- var _internalRef$current3, _breadcrumbItems$last, _breadcrumbItems$last2, _prevWidth$current2;
3688
-
3689
- var breadcrumbItems = (_internalRef$current3 = internalRef.current) === null || _internalRef$current3 === void 0 ? void 0 : _internalRef$current3.firstElementChild;
3690
- var nextWidth = (breadcrumbItems === null || breadcrumbItems === void 0 ? void 0 : (_breadcrumbItems$last = breadcrumbItems.lastElementChild) === null || _breadcrumbItems$last === void 0 ? void 0 : _breadcrumbItems$last.offsetWidth) + (breadcrumbItems === null || breadcrumbItems === void 0 ? void 0 : (_breadcrumbItems$last2 = breadcrumbItems.lastElementChild) === null || _breadcrumbItems$last2 === void 0 ? void 0 : _breadcrumbItems$last2.offsetLeft);
3691
- var enabled = ((_prevWidth$current2 = prevWidth.current) !== null && _prevWidth$current2 !== void 0 ? _prevWidth$current2 : 0) < (width !== null && width !== void 0 ? width : 0);
3692
- var diffWidth = (width !== null && width !== void 0 ? width : 0) - nextWidth;
3698
+ var diffWidth = parentWidth - childWidth;
3693
3699
 
3694
- if (enabled && diffWidth > 0 && widthCollectionRef.current.length > 0) {
3700
+ if (diffWidth > 0 && widthCollectionRef.current.length > 0) {
3695
3701
  var total = widthCollectionRef.current.length;
3696
3702
 
3697
3703
  var collection = _toConsumableArray(widthCollectionRef.current);
@@ -3714,30 +3720,23 @@
3714
3720
 
3715
3721
  var totalToDecrease = total - collection.length;
3716
3722
  setMenuBreadcrumbs(function (oldVal) {
3717
- return oldVal - totalToDecrease;
3723
+ var newValue = oldVal - totalToDecrease;
3724
+ return newValue > 0 ? newValue : 0;
3718
3725
  });
3719
3726
  var end = total - totalToDecrease;
3720
3727
  widthCollectionRef.current = end > 0 ? widthCollectionRef.current.slice(0, end) : [];
3721
3728
  }
3722
- }, [width]);
3723
- React.useEffect(function () {
3724
- var _dimensions$width;
3725
-
3726
- var debounceWidth = debounce__default["default"](function (width) {
3727
- setWidth(function (prevState) {
3728
- prevWidth.current = prevState !== null && prevState !== void 0 ? prevState : width + 1;
3729
- return width;
3730
- });
3731
- }, timeout);
3732
- debounceWidth((_dimensions$width = dimensions === null || dimensions === void 0 ? void 0 : dimensions.width) !== null && _dimensions$width !== void 0 ? _dimensions$width : 0);
3733
- return function () {
3734
- debounceWidth.cancel();
3735
- };
3736
- }, [timeout, dimensions === null || dimensions === void 0 ? void 0 : dimensions.width]);
3729
+ }, [parentWidth, childWidth]);
3737
3730
  return /*#__PURE__*/React__default["default"].createElement(StyledNavElement, _extends({
3738
3731
  className: className,
3739
3732
  ref: handleRef
3740
- }, rest), /*#__PURE__*/React__default["default"].createElement(StyledOList, null, menuCollection.length > 0 ? /*#__PURE__*/React__default["default"].createElement(StyledBreadcrumbListItem, null, /*#__PURE__*/React__default["default"].createElement(Menu, {
3733
+ }, rest), /*#__PURE__*/React__default["default"].createElement(StyledListWrapper, {
3734
+ ref: listWrapperRef
3735
+ }, /*#__PURE__*/React__default["default"].createElement(StyledOList, {
3736
+ ref: olRef
3737
+ }, menuCollection.length > 0 ? /*#__PURE__*/React__default["default"].createElement(StyledBreadcrumbListItem, {
3738
+ "data-role": "menu"
3739
+ }, /*#__PURE__*/React__default["default"].createElement(Menu, {
3741
3740
  target: /*#__PURE__*/React__default["default"].createElement(Button, {
3742
3741
  variant: "text gray"
3743
3742
  }, /*#__PURE__*/React__default["default"].createElement(TreeDotsIcon$1, null))
@@ -3748,8 +3747,12 @@
3748
3747
  })))) : null, listCollection.map(function (child, index) {
3749
3748
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
3750
3749
  key: index
3751
- }, index > 0 || menuCollection.length > 0 ? /*#__PURE__*/React__default["default"].createElement(StyledBreadcrumbListItem, null, separator) : null, /*#__PURE__*/React__default["default"].createElement(StyledBreadcrumbListItem, null, child));
3752
- })));
3750
+ }, index > 0 || menuCollection.length > 0 ? /*#__PURE__*/React__default["default"].createElement(StyledBreadcrumbListItem, {
3751
+ "data-role": "separator"
3752
+ }, separator) : null, /*#__PURE__*/React__default["default"].createElement(StyledBreadcrumbListItem, {
3753
+ "data-role": "item"
3754
+ }, child));
3755
+ }))));
3753
3756
  });
3754
3757
  Breadcrumbs.displayName = "Breadcrumbs";
3755
3758