carbon-react 154.11.3 → 154.12.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.
@@ -11,6 +11,8 @@ export interface BadgeProps extends TagProps {
11
11
  color?: string;
12
12
  /** Callback fired when badge is clicked */
13
13
  onClick?: (ev: React.MouseEvent<HTMLElement>) => void;
14
+ /** Unique identifier for the component. */
15
+ id?: string;
14
16
  }
15
- export declare const Badge: ({ "aria-label": ariaLabel, children, counter, color, onClick, "data-element": dataElement, "data-role": dataRole, }: BadgeProps) => React.JSX.Element;
17
+ export declare const Badge: ({ "aria-label": ariaLabel, children, counter, color, onClick, id, "data-element": dataElement, "data-role": dataRole, }: BadgeProps) => React.JSX.Element;
16
18
  export default Badge;
@@ -1 +1 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as r}from"react";import{StyledBadgeWrapper as o,StyledBadge as n,StyledCrossIcon as c,StyledCounter as a}from"./badge.style.js";function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const i=({"aria-label":i,children:s,counter:u=0,color:b="--colorsActionMajor500",onClick:p,"data-element":d,"data-role":y})=>{const O=+u>0,f=+u>99?99:u,[m,j]=r(!1),[g,P]=r(!1);return e(o,{children:[s,O?e(n,(w=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){l(e,t,r[t])}))}return e}({"data-component":"badge","data-element":d,"data-role":y,color:b},p?{buttonType:"secondary",onClick:p}:{"aria-label":i}),h={onFocus:()=>{j(!0)},onBlur:()=>{j(!1)},onMouseEnter:()=>{P(!0)},onMouseLeave:()=>{P(!1)},isFocused:m,isHovered:g,children:[p&&t(c,{"data-element":"badge-cross-icon",type:"cross"}),t(a,{"data-element":"badge-counter",children:f})]},h=null!=h?h:{},Object.getOwnPropertyDescriptors?Object.defineProperties(w,Object.getOwnPropertyDescriptors(h)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(h)).forEach((function(e){Object.defineProperty(w,e,Object.getOwnPropertyDescriptor(h,e))})),w)):null]});var w,h};export{i as Badge,i as default};
1
+ import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useState as t,useRef as o}from"react";import{StyledBadgeWrapper as n,StyledBadge as c,StyledCrossIcon as a,StyledCounter as i}from"./badge.style.js";import l from"../../__internal__/utils/helpers/guid/index.js";function s(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}const u=({"aria-label":u,children:b,counter:p=0,color:d="--colorsActionMajor500",onClick:f,id:y,"data-element":O,"data-role":m})=>{const j=+p>0,g=+p>99?99:p,[P,h]=t(!1),[w,v]=t(!1),{current:k}=o(y||l());return e(n,{children:[b,j?e(c,(D=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){s(e,r,t[r])}))}return e}({"data-component":"badge","data-element":O,"data-role":m,color:d,id:k,"aria-label":u,onFocus:()=>{h(!0)},onBlur:()=>{h(!1)},onMouseEnter:()=>{v(!0)},onMouseLeave:()=>{v(!1)},isFocused:P,isHovered:w},f&&{buttonType:"secondary",onClick:f}),S={children:[f&&r(a,{"data-element":"badge-cross-icon",type:"cross"}),r(i,{"data-element":"badge-counter",children:g})]},S=null!=S?S:{},Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(S)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(S)).forEach((function(e){Object.defineProperty(D,e,Object.getOwnPropertyDescriptor(S,e))})),D)):null]});var D,S};export{u as Badge,u as default};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import"react";import e from"./tile-content.style.js";import{useTileContext as r}from"../__internal__/tile.context.js";import n from"../../../__internal__/utils/helpers/tags/tags.js";import o from"../../../style/utils/filter-styled-system-padding-props.js";import i from"../../../style/utils/filter-styled-system-margin-props.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function c(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),n.forEach((function(e){l(t,e,r[e])}))}return t}const s=l=>{var{children:s,width:p,height:f}=l,u=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(l,["children","width","height"]);const{isHorizontal:a,paddingPropsFromTile:y}=r();if(!s)return null;const O=c({},o(u),i(u));return t(e,(b=c({width:p,height:f,isHorizontal:a,isVertical:!a},y,O,n("tile-content",u)),m=null!=(m={children:s})?m:{},Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(m)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(m)).forEach((function(t){Object.defineProperty(b,t,Object.getOwnPropertyDescriptor(m,t))})),b));var b,m};export{s as default};
1
+ import{jsx as t}from"react/jsx-runtime";import"react";import e from"./tile-content.style.js";import{useTileContext as r}from"../__internal__/tile.context.js";import n from"../../../__internal__/utils/helpers/tags/tags.js";import o from"../../../style/utils/filter-styled-system-padding-props.js";import i from"../../../style/utils/filter-styled-system-margin-props.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function c(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),n.forEach((function(e){l(t,e,r[e])}))}return t}const s=l=>{var{children:s,width:p,height:f}=l,u=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(l,["children","width","height"]);const{isHorizontal:a,paddingPropsFromTile:y}=r();if(!s)return null;const O=c({},o(u),i(u));return t(e,(b=c({width:p,height:f,isHorizontal:a},y,O,n("tile-content",u)),m=null!=(m={children:s})?m:{},Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(m)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(m)).forEach((function(t){Object.defineProperty(b,t,Object.getOwnPropertyDescriptor(m,t))})),b));var b,m};export{s as default};
@@ -1,7 +1,6 @@
1
1
  import { TileContentProps } from "./tile-content.component";
2
2
  interface StyledTileContentProps extends TileContentProps {
3
3
  isHorizontal?: boolean;
4
- isVertical?: boolean;
5
4
  width?: string | number;
6
5
  height?: string | number;
7
6
  }
@@ -1 +1 @@
1
- import t,{css as o}from"styled-components";import{space as i}from"styled-system";import e from"../../../style/themes/apply-base-theme.js";import r from"../../../style/utils/element-sizing.js";const s=t.div.attrs(e).withConfig({displayName:"tile-content.style__StyledTileContent",componentId:"sc-409b638d-0"})(["",""],(({isHorizontal:t,isVertical:e,width:s,height:l})=>o([""," box-sizing:border-box;position:relative;flex-grow:1;"," "," ",""],i,t&&o(["display:inline;:last-of-type{padding-right:0;}:first-of-type{padding-left:0;}& + &{margin-top:0;border-left:solid 1px var(--colorsUtilityMajor050);}"]),e&&o(["width:auto;:last-of-type{padding-bottom:0;}:first-of-type{padding-top:0;}& + &{margin-top:0;border-top:solid 1px var(--colorsUtilityMajor050);}"]),(s||l)&&o(["flex-grow:0;",""],r({width:s||void 0,height:l||void 0})))));export{s as default};
1
+ import t,{css as o}from"styled-components";import{space as i}from"styled-system";import e from"../../../style/themes/apply-base-theme.js";import s from"../../../style/utils/element-sizing.js";const r=t.div.attrs(e).withConfig({displayName:"tile-content.style__StyledTileContent",componentId:"sc-a8bdaa22-0"})(["",""],(({isHorizontal:t,width:e,height:r})=>o([""," box-sizing:border-box;position:relative;flex-grow:1;"," ",""],i,o(t?["display:inline;:last-of-type{padding-right:0;}:first-of-type{padding-left:0;}:not(:last-of-type){margin-top:0;border-right:solid 1px var(--colorsUtilityMajor050);}"]:["width:auto;:last-of-type{padding-bottom:0;}:first-of-type{padding-top:0;}:not(:last-of-type){margin-top:0;border-bottom:solid 1px var(--colorsUtilityMajor050);}"]),(e||r)&&o(["flex-grow:0;",""],s({width:e||void 0,height:r||void 0})))));export{r as default};
@@ -11,6 +11,8 @@ export interface BadgeProps extends TagProps {
11
11
  color?: string;
12
12
  /** Callback fired when badge is clicked */
13
13
  onClick?: (ev: React.MouseEvent<HTMLElement>) => void;
14
+ /** Unique identifier for the component. */
15
+ id?: string;
14
16
  }
15
- export declare const Badge: ({ "aria-label": ariaLabel, children, counter, color, onClick, "data-element": dataElement, "data-role": dataRole, }: BadgeProps) => React.JSX.Element;
17
+ export declare const Badge: ({ "aria-label": ariaLabel, children, counter, color, onClick, id, "data-element": dataElement, "data-role": dataRole, }: BadgeProps) => React.JSX.Element;
16
18
  export default Badge;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("./badge.style.js");function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const n=({"aria-label":n,children:c,counter:a=0,color:s="--colorsActionMajor500",onClick:l,"data-element":u,"data-role":i})=>{const d=+a>0,b=+a>99?99:a,[p,y]=t.useState(!1),[O,j]=t.useState(!1);return e.jsxs(r.StyledBadgeWrapper,{children:[c,(()=>{const t=l?{buttonType:"secondary",onClick:l}:{"aria-label":n};return d?e.jsxs(r.StyledBadge,(c=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){o(e,t,r[t])}))}return e}({"data-component":"badge","data-element":u,"data-role":i,color:s},t),a=null!=(a={onFocus:()=>{y(!0)},onBlur:()=>{y(!1)},onMouseEnter:()=>{j(!0)},onMouseLeave:()=>{j(!1)},isFocused:p,isHovered:O,children:[l&&e.jsx(r.StyledCrossIcon,{"data-element":"badge-cross-icon",type:"cross"}),e.jsx(r.StyledCounter,{"data-element":"badge-counter",children:b})]})?a:{},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(a)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(a)).forEach((function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(a,e))})),c)):null;var c,a})()]})};exports.Badge=n,exports.default=n;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("./badge.style.js"),n=require("../../__internal__/utils/helpers/guid/index.js");function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const c=({"aria-label":c,children:a,counter:s=0,color:l="--colorsActionMajor500",onClick:u,id:i,"data-element":d,"data-role":b})=>{const p=+s>0,y=+s>99?99:s,[j,O]=t.useState(!1),[f,g]=t.useState(!1),{current:m}=t.useRef(i||n.default());return e.jsxs(r.StyledBadgeWrapper,{children:[a,(()=>{const t={buttonType:"secondary",onClick:u};return p?e.jsxs(r.StyledBadge,(n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){o(e,t,r[t])}))}return e}({"data-component":"badge","data-element":d,"data-role":b,color:l,id:m,"aria-label":c,onFocus:()=>{O(!0)},onBlur:()=>{O(!1)},onMouseEnter:()=>{g(!0)},onMouseLeave:()=>{g(!1)},isFocused:j,isHovered:f},u&&t),a=null!=(a={children:[u&&e.jsx(r.StyledCrossIcon,{"data-element":"badge-cross-icon",type:"cross"}),e.jsx(r.StyledCounter,{"data-element":"badge-counter",children:y})]})?a:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(a)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))})),n)):null;var n,a})()]})};exports.Badge=c,exports.default=c;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react");var t=require("./tile-content.style.js"),r=require("../__internal__/tile.context.js"),n=require("../../../__internal__/utils/helpers/tags/tags.js"),i=require("../../../style/utils/filter-styled-system-padding-props.js"),o=require("../../../style/utils/filter-styled-system-margin-props.js");function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){l(e,t,r[t])}))}return e}exports.default=l=>{var{children:c,width:u,height:a}=l,p=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(l,["children","width","height"]);const{isHorizontal:f,paddingPropsFromTile:y}=r.useTileContext();if(!c)return null;const O=s({},i.default(p),o.default(p));return e.jsx(t.default,(b=s({width:u,height:a,isHorizontal:f,isVertical:!f},y,O,n.default("tile-content",p)),j=null!=(j={children:c})?j:{},Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(j)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(j)).forEach((function(e){Object.defineProperty(b,e,Object.getOwnPropertyDescriptor(j,e))})),b));var b,j};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react");var t=require("./tile-content.style.js"),r=require("../__internal__/tile.context.js"),n=require("../../../__internal__/utils/helpers/tags/tags.js"),i=require("../../../style/utils/filter-styled-system-padding-props.js"),o=require("../../../style/utils/filter-styled-system-margin-props.js");function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){l(e,t,r[t])}))}return e}exports.default=l=>{var{children:u,width:c,height:a}=l,p=function(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}(l,["children","width","height"]);const{isHorizontal:f,paddingPropsFromTile:y}=r.useTileContext();if(!u)return null;const O=s({},i.default(p),o.default(p));return e.jsx(t.default,(b=s({width:c,height:a,isHorizontal:f},y,O,n.default("tile-content",p)),j=null!=(j={children:u})?j:{},Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(j)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(j)).forEach((function(e){Object.defineProperty(b,e,Object.getOwnPropertyDescriptor(j,e))})),b));var b,j};
@@ -1,7 +1,6 @@
1
1
  import { TileContentProps } from "./tile-content.component";
2
2
  interface StyledTileContentProps extends TileContentProps {
3
3
  isHorizontal?: boolean;
4
- isVertical?: boolean;
5
4
  width?: string | number;
6
5
  height?: string | number;
7
6
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("styled-components"),t=require("styled-system"),i=require("../../../style/themes/apply-base-theme.js"),o=require("../../../style/utils/element-sizing.js");function s(e){return e&&e.__esModule?e:{default:e}}const r=s(e).default.div.attrs(i.default).withConfig({displayName:"tile-content.style__StyledTileContent",componentId:"sc-409b638d-0"})(["",""],(({isHorizontal:i,isVertical:s,width:r,height:l})=>e.css([""," box-sizing:border-box;position:relative;flex-grow:1;"," "," ",""],t.space,i&&e.css(["display:inline;:last-of-type{padding-right:0;}:first-of-type{padding-left:0;}& + &{margin-top:0;border-left:solid 1px var(--colorsUtilityMajor050);}"]),s&&e.css(["width:auto;:last-of-type{padding-bottom:0;}:first-of-type{padding-top:0;}& + &{margin-top:0;border-top:solid 1px var(--colorsUtilityMajor050);}"]),(r||l)&&e.css(["flex-grow:0;",""],o.default({width:r||void 0,height:l||void 0})))));exports.default=r;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("styled-components"),e=require("styled-system"),o=require("../../../style/themes/apply-base-theme.js"),i=require("../../../style/utils/element-sizing.js");function s(t){return t&&t.__esModule?t:{default:t}}const r=s(t).default.div.attrs(o.default).withConfig({displayName:"tile-content.style__StyledTileContent",componentId:"sc-a8bdaa22-0"})(["",""],(({isHorizontal:o,width:s,height:r})=>t.css([""," box-sizing:border-box;position:relative;flex-grow:1;"," ",""],e.space,o?t.css(["display:inline;:last-of-type{padding-right:0;}:first-of-type{padding-left:0;}:not(:last-of-type){margin-top:0;border-right:solid 1px var(--colorsUtilityMajor050);}"]):t.css(["width:auto;:last-of-type{padding-bottom:0;}:first-of-type{padding-top:0;}:not(:last-of-type){margin-top:0;border-bottom:solid 1px var(--colorsUtilityMajor050);}"]),(s||r)&&t.css(["flex-grow:0;",""],i.default({width:s||void 0,height:r||void 0})))));exports.default=r;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "154.11.3",
3
+ "version": "154.12.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",