@drivy/cobalt 0.16.0 → 0.16.1

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 (49) hide show
  1. package/_virtual/_tslib.js +1 -1
  2. package/cjs/tokens/icons.js +3 -0
  3. package/cjs/tokens/icons.js.map +1 -1
  4. package/components/Helper/index.js.map +1 -1
  5. package/components/Icon/__generated__/CableIcon.js +23 -0
  6. package/components/Icon/__generated__/CableIcon.js.map +1 -0
  7. package/components/Icon/__generated__/EvBatteryIcon.js +23 -0
  8. package/components/Icon/__generated__/EvBatteryIcon.js.map +1 -0
  9. package/components/Icon/__generated__/ShareAndroidIcon.js +23 -0
  10. package/components/Icon/__generated__/ShareAndroidIcon.js.map +1 -0
  11. package/components/Rating/RatingIcons.js +98 -0
  12. package/components/Rating/RatingIcons.js.map +1 -0
  13. package/icons/cable.js +4 -0
  14. package/icons/cable.js.map +1 -0
  15. package/icons/cable.svg +1 -0
  16. package/icons/ev-battery.js +4 -0
  17. package/icons/ev-battery.js.map +1 -0
  18. package/icons/ev-battery.svg +1 -0
  19. package/icons/index.js +3 -0
  20. package/icons/index.js.map +1 -1
  21. package/icons/share-android.js +4 -0
  22. package/icons/share-android.js.map +1 -0
  23. package/icons/share-android.svg +1 -0
  24. package/index.js +5 -1
  25. package/index.js.map +1 -1
  26. package/package.json +5 -5
  27. package/styles/components/Rating/index.scss +134 -0
  28. package/styles/components.scss +1 -0
  29. package/tokens/icons.js +3 -0
  30. package/tokens/icons.js.map +1 -1
  31. package/types/components/Button/index.d.ts +8 -8
  32. package/types/components/Buttons/BrandButton/index.d.ts +2 -2
  33. package/types/components/Buttons/DefaultButton/index.d.ts +2 -2
  34. package/types/components/Buttons/GhostButton/index.d.ts +2 -2
  35. package/types/components/Form/Autocomplete/index.d.ts +2 -2
  36. package/types/components/Form/TextInput.d.ts +3 -3
  37. package/types/components/Helper/index.d.ts +1 -1
  38. package/types/components/Icon/__generated__/CableIcon.d.ts +10 -0
  39. package/types/components/Icon/__generated__/EvBatteryIcon.d.ts +10 -0
  40. package/types/components/Icon/__generated__/ShareAndroidIcon.d.ts +10 -0
  41. package/types/components/Icon/__generated__/index.d.ts +3 -0
  42. package/types/components/Icon/index.d.ts +1 -1
  43. package/types/components/Rating/RatingCompact.d.ts +7 -0
  44. package/types/components/Rating/RatingIcons.d.ts +22 -0
  45. package/types/components/Rating/RatingInput.d.ts +5 -0
  46. package/types/components/Rating/index.d.ts +11 -0
  47. package/types/icons/index.d.ts +3 -0
  48. package/types/index.d.ts +2 -1
  49. package/types/tokens/index.d.ts +3 -0
@@ -1,4 +1,4 @@
1
- /*! *****************************************************************************
1
+ /******************************************************************************
2
2
  Copyright (c) Microsoft Corporation.
3
3
 
4
4
  Permission to use, copy, modify, and/or distribute this software for any
@@ -23,6 +23,7 @@ const icons = {
23
23
  bluetooth: "bluetooth.svg",
24
24
  briefcase: "briefcase.svg",
25
25
  bulb: "bulb.svg",
26
+ cable: "cable.svg",
26
27
  cabriolet: "cabriolet.svg",
27
28
  calendarCheck: "calendar-check.svg",
28
29
  calendarClock: "calendar-clock.svg",
@@ -100,6 +101,7 @@ const icons = {
100
101
  earth: "earth.svg",
101
102
  edit: "edit.svg",
102
103
  electric: "electric.svg",
104
+ evBattery: "ev-battery.svg",
103
105
  externalLink: "external-link.svg",
104
106
  eyeClosed: "eye-closed.svg",
105
107
  eyeOpened: "eye-opened.svg",
@@ -227,6 +229,7 @@ const icons = {
227
229
  serviceTolls: "service-tolls.svg",
228
230
  serviceUnlocked: "service-unlocked.svg",
229
231
  settings: "settings.svg",
232
+ shareAndroid: "share-android.svg",
230
233
  shareIos: "share-ios.svg",
231
234
  share: "share.svg",
232
235
  shieldCheck: "shield-check.svg",
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"icons.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Helper/index.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\"\nimport cx from \"classnames\"\n\nimport DefaultButton from \"../Buttons/DefaultButton\"\n\ntype HelperPropsType = PropsWithChildren<{\n className?: string\n title: string\n titleClassName?: string\n contentClassName?: string\n cta: ReturnType<typeof DefaultButton | typeof DefaultButton.Link>\n}>\n\nconst Helper = ({\n className,\n titleClassName,\n contentClassName,\n title,\n children,\n cta,\n}: HelperPropsType) => (\n <div className={cx(\"cobalt-helper\", className)}>\n <strong className={cx(\"cobalt-helper__title\", titleClassName)}>\n {title}\n </strong>\n <div className={cx(\"cobalt-helper__content\", contentClassName)}>\n {children}\n </div>\n {cta}\n </div>\n)\n\nexport default Helper\n"],"names":[],"mappings":";;;AAaM,IAAA,MAAM,GAAG,UAAC,EAOE,EAAA;AANhB,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,KAAK,WAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,GAAG,GAAA,EAAA,CAAA,GAAA,CAAA;IACkB,QACrB,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAA;QAC5C,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC,EAC1D,EAAA,KAAK,CACC;QACT,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,EAC3D,EAAA,QAAQ,CACL;AACL,QAAA,GAAG,CACA,EACP;AAVsB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Helper/index.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\"\nimport cx from \"classnames\"\n\nimport DefaultButton from \"../Buttons/DefaultButton\"\n\ntype HelperPropsType = PropsWithChildren<{\n className?: string\n title: string\n titleClassName?: string\n contentClassName?: string\n cta?: ReturnType<typeof DefaultButton | typeof DefaultButton.Link>\n}>\n\nconst Helper = ({\n className,\n titleClassName,\n contentClassName,\n title,\n children,\n cta,\n}: HelperPropsType) => (\n <div className={cx(\"cobalt-helper\", className)}>\n <strong className={cx(\"cobalt-helper__title\", titleClassName)}>\n {title}\n </strong>\n <div className={cx(\"cobalt-helper__content\", contentClassName)}>\n {children}\n </div>\n {cta}\n </div>\n)\n\nexport default Helper\n"],"names":[],"mappings":";;;AAaM,IAAA,MAAM,GAAG,UAAC,EAOE,EAAA;AANhB,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,gBAAgB,GAAA,EAAA,CAAA,gBAAA,EAChB,KAAK,WAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,GAAG,GAAA,EAAA,CAAA,GAAA,CAAA;IACkB,QACrB,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAA;QAC5C,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC,EAC1D,EAAA,KAAK,CACC;QACT,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,EAC3D,EAAA,QAAQ,CACL;AACL,QAAA,GAAG,CACA,EACP;AAVsB;;;;"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import capitalize from '../../utils/capitalize.js';
3
+ import 'lodash.throttle';
4
+ import cx from 'classnames';
5
+
6
+ var iconSource = "cable";
7
+ var CableIcon = function (_a) {
8
+ var _b;
9
+ var color = _a.color, _c = _a.size, size = _c === void 0 ? 24 : _c, _d = _a.contained, contained = _d === void 0 ? false : _d, className = _a.className;
10
+ var computedClassName = cx(className, "cobalt-Icon cobalt-Icon--".concat(iconSource), (_b = {},
11
+ _b["cobalt-Icon--color".concat(capitalize(color))] = color,
12
+ _b["cobalt-Icon--size16"] = size === 16,
13
+ _b["cobalt-Icon--size20"] = size === 20,
14
+ _b["cobalt-Icon--size32"] = size === 32,
15
+ _b["cobalt-Icon--contained"] = contained,
16
+ _b));
17
+ var wrap = function (content) { return (React.createElement("span", { className: computedClassName }, content)); };
18
+ return wrap(React.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
19
+ React.createElement("path", { d: "M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1Z" })));
20
+ };
21
+
22
+ export { CableIcon as default };
23
+ //# sourceMappingURL=CableIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CableIcon.js","sources":["../../../../src/components/Icon/__generated__/CableIcon.tsx"],"sourcesContent":["import React from \"react\"\nimport { IconColors } from \"../\"\nimport { capitalize } from \"../../utils\"\nimport cx from \"classnames\"\nexport type IconProps = {\n color?: IconColors\n size?: 16 | 20 | 24 | 32\n contained?: boolean\n className?: string\n}\nconst iconSource = \"cable\"\n\nconst CableIcon = ({\n color,\n size = 24,\n contained = false,\n className,\n}: IconProps) => {\n const computedClassName = cx(\n className,\n `cobalt-Icon cobalt-Icon--${iconSource}`,\n {\n [`cobalt-Icon--color${capitalize(color)}`]: color,\n \"cobalt-Icon--size16\": size === 16,\n \"cobalt-Icon--size20\": size === 20,\n \"cobalt-Icon--size32\": size === 32,\n \"cobalt-Icon--contained\": contained,\n }\n )\n\n const wrap = (content: React.ReactNode) => (\n <span className={computedClassName}>{content}</span>\n )\n\n return wrap(\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1Z\" />\n </svg>\n )\n}\n\nexport default CableIcon\n"],"names":[],"mappings":";;;;;AAUA,IAAM,UAAU,GAAG,OAAO,CAAA;AAEpB,IAAA,SAAS,GAAG,UAAC,EAKP,EAAA;;AAJV,IAAA,IAAA,KAAK,WAAA,EACL,EAAA,GAAA,EAAA,CAAA,IAAS,EAAT,IAAI,mBAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,SAAiB,EAAjB,SAAS,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EACjB,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;IAET,IAAM,iBAAiB,GAAG,EAAE,CAC1B,SAAS,EACT,2BAAA,CAAA,MAAA,CAA4B,UAAU,CAAE,GAAA,EAAA,GAAA,EAAA;AAEtC,QAAA,EAAA,CAAC,4BAAqB,UAAU,CAAC,KAAK,CAAC,CAAE,IAAG,KAAK;QACjD,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;QAClC,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;QAClC,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;AAClC,QAAA,EAAA,CAAA,wBAAA,CAAwB,GAAE,SAAS;YAEtC,CAAA;AAED,IAAA,IAAM,IAAI,GAAG,UAAC,OAAwB,EAAA,EAAK,QACzC,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,iBAAiB,EAAG,EAAA,OAAO,CAAQ,EACrD,EAAA,CAAA;IAED,OAAO,IAAI,CACT,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,EAAA;AACzD,QAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,ySAAyS,EAAG,CAAA,CAChT,CACP,CAAA;AACH;;;;"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import capitalize from '../../utils/capitalize.js';
3
+ import 'lodash.throttle';
4
+ import cx from 'classnames';
5
+
6
+ var iconSource = "evBattery";
7
+ var EvBatteryIcon = function (_a) {
8
+ var _b;
9
+ var color = _a.color, _c = _a.size, size = _c === void 0 ? 24 : _c, _d = _a.contained, contained = _d === void 0 ? false : _d, className = _a.className;
10
+ var computedClassName = cx(className, "cobalt-Icon cobalt-Icon--".concat(iconSource), (_b = {},
11
+ _b["cobalt-Icon--color".concat(capitalize(color))] = color,
12
+ _b["cobalt-Icon--size16"] = size === 16,
13
+ _b["cobalt-Icon--size20"] = size === 20,
14
+ _b["cobalt-Icon--size32"] = size === 32,
15
+ _b["cobalt-Icon--contained"] = contained,
16
+ _b));
17
+ var wrap = function (content) { return (React.createElement("span", { className: computedClassName }, content)); };
18
+ return wrap(React.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
19
+ React.createElement("path", { d: "M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4ZM11 20v-5.5H9L13 7v5.5h2L11 20Z" })));
20
+ };
21
+
22
+ export { EvBatteryIcon as default };
23
+ //# sourceMappingURL=EvBatteryIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvBatteryIcon.js","sources":["../../../../src/components/Icon/__generated__/EvBatteryIcon.tsx"],"sourcesContent":["import React from \"react\"\nimport { IconColors } from \"../\"\nimport { capitalize } from \"../../utils\"\nimport cx from \"classnames\"\nexport type IconProps = {\n color?: IconColors\n size?: 16 | 20 | 24 | 32\n contained?: boolean\n className?: string\n}\nconst iconSource = \"evBattery\"\n\nconst EvBatteryIcon = ({\n color,\n size = 24,\n contained = false,\n className,\n}: IconProps) => {\n const computedClassName = cx(\n className,\n `cobalt-Icon cobalt-Icon--${iconSource}`,\n {\n [`cobalt-Icon--color${capitalize(color)}`]: color,\n \"cobalt-Icon--size16\": size === 16,\n \"cobalt-Icon--size20\": size === 20,\n \"cobalt-Icon--size32\": size === 32,\n \"cobalt-Icon--contained\": contained,\n }\n )\n\n const wrap = (content: React.ReactNode) => (\n <span className={computedClassName}>{content}</span>\n )\n\n return wrap(\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4ZM11 20v-5.5H9L13 7v5.5h2L11 20Z\" />\n </svg>\n )\n}\n\nexport default EvBatteryIcon\n"],"names":[],"mappings":";;;;;AAUA,IAAM,UAAU,GAAG,WAAW,CAAA;AAExB,IAAA,aAAa,GAAG,UAAC,EAKX,EAAA;;AAJV,IAAA,IAAA,KAAK,WAAA,EACL,EAAA,GAAA,EAAA,CAAA,IAAS,EAAT,IAAI,mBAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,SAAiB,EAAjB,SAAS,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EACjB,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;IAET,IAAM,iBAAiB,GAAG,EAAE,CAC1B,SAAS,EACT,2BAAA,CAAA,MAAA,CAA4B,UAAU,CAAE,GAAA,EAAA,GAAA,EAAA;AAEtC,QAAA,EAAA,CAAC,4BAAqB,UAAU,CAAC,KAAK,CAAC,CAAE,IAAG,KAAK;QACjD,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;QAClC,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;QAClC,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;AAClC,QAAA,EAAA,CAAA,wBAAA,CAAwB,GAAE,SAAS;YAEtC,CAAA;AAED,IAAA,IAAM,IAAI,GAAG,UAAC,OAAwB,EAAA,EAAK,QACzC,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,iBAAiB,EAAG,EAAA,OAAO,CAAQ,EACrD,EAAA,CAAA;IAED,OAAO,IAAI,CACT,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,EAAA;AACzD,QAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gKAAgK,EAAG,CAAA,CACvK,CACP,CAAA;AACH;;;;"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import capitalize from '../../utils/capitalize.js';
3
+ import 'lodash.throttle';
4
+ import cx from 'classnames';
5
+
6
+ var iconSource = "shareAndroid";
7
+ var ShareAndroidIcon = function (_a) {
8
+ var _b;
9
+ var color = _a.color, _c = _a.size, size = _c === void 0 ? 24 : _c, _d = _a.contained, contained = _d === void 0 ? false : _d, className = _a.className;
10
+ var computedClassName = cx(className, "cobalt-Icon cobalt-Icon--".concat(iconSource), (_b = {},
11
+ _b["cobalt-Icon--color".concat(capitalize(color))] = color,
12
+ _b["cobalt-Icon--size16"] = size === 16,
13
+ _b["cobalt-Icon--size20"] = size === 20,
14
+ _b["cobalt-Icon--size32"] = size === 32,
15
+ _b["cobalt-Icon--contained"] = contained,
16
+ _b));
17
+ var wrap = function (content) { return (React.createElement("span", { className: computedClassName }, content)); };
18
+ return wrap(React.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
19
+ React.createElement("path", { d: "M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92 0-1.61-1.31-2.92-2.92-2.92Z" })));
20
+ };
21
+
22
+ export { ShareAndroidIcon as default };
23
+ //# sourceMappingURL=ShareAndroidIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareAndroidIcon.js","sources":["../../../../src/components/Icon/__generated__/ShareAndroidIcon.tsx"],"sourcesContent":["import React from \"react\"\nimport { IconColors } from \"../\"\nimport { capitalize } from \"../../utils\"\nimport cx from \"classnames\"\nexport type IconProps = {\n color?: IconColors\n size?: 16 | 20 | 24 | 32\n contained?: boolean\n className?: string\n}\nconst iconSource = \"shareAndroid\"\n\nconst ShareAndroidIcon = ({\n color,\n size = 24,\n contained = false,\n className,\n}: IconProps) => {\n const computedClassName = cx(\n className,\n `cobalt-Icon cobalt-Icon--${iconSource}`,\n {\n [`cobalt-Icon--color${capitalize(color)}`]: color,\n \"cobalt-Icon--size16\": size === 16,\n \"cobalt-Icon--size20\": size === 20,\n \"cobalt-Icon--size32\": size === 32,\n \"cobalt-Icon--contained\": contained,\n }\n )\n\n const wrap = (content: React.ReactNode) => (\n <span className={computedClassName}>{content}</span>\n )\n\n return wrap(\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92 0-1.61-1.31-2.92-2.92-2.92Z\" />\n </svg>\n )\n}\n\nexport default ShareAndroidIcon\n"],"names":[],"mappings":";;;;;AAUA,IAAM,UAAU,GAAG,cAAc,CAAA;AAE3B,IAAA,gBAAgB,GAAG,UAAC,EAKd,EAAA;;AAJV,IAAA,IAAA,KAAK,WAAA,EACL,EAAA,GAAA,EAAA,CAAA,IAAS,EAAT,IAAI,mBAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,SAAiB,EAAjB,SAAS,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EACjB,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;IAET,IAAM,iBAAiB,GAAG,EAAE,CAC1B,SAAS,EACT,2BAAA,CAAA,MAAA,CAA4B,UAAU,CAAE,GAAA,EAAA,GAAA,EAAA;AAEtC,QAAA,EAAA,CAAC,4BAAqB,UAAU,CAAC,KAAK,CAAC,CAAE,IAAG,KAAK;QACjD,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;QAClC,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;QAClC,EAAqB,CAAA,qBAAA,CAAA,GAAE,IAAI,KAAK,EAAE;AAClC,QAAA,EAAA,CAAA,wBAAA,CAAwB,GAAE,SAAS;YAEtC,CAAA;AAED,IAAA,IAAM,IAAI,GAAG,UAAC,OAAwB,EAAA,EAAK,QACzC,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,iBAAiB,EAAG,EAAA,OAAO,CAAQ,EACrD,EAAA,CAAA;IAED,OAAO,IAAI,CACT,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,EAAA;AACzD,QAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oXAAoX,EAAG,CAAA,CAC3X,CACP,CAAA;AACH;;;;"}
@@ -0,0 +1,98 @@
1
+ import { __read } from '../../_virtual/_tslib.js';
2
+ import React, { useRef, useState, useCallback } from 'react';
3
+ import { nanoid } from 'nanoid';
4
+ import cx from 'classnames';
5
+ import '../Icon/index.js';
6
+ import StarIcon from '../Icon/__generated__/StarIcon.js';
7
+
8
+ var defaultRatingIcon = React.createElement(StarIcon, { color: "turquoise" });
9
+ var itemEmptyColor = "grey";
10
+ function roundHalf(num) {
11
+ var temp = num * 2;
12
+ return temp % 1 === 0.5 ? Math.floor(temp) / 2 : Math.round(temp) / 2;
13
+ }
14
+ function computeItemStatus(ratingValue, itemValue, icon) {
15
+ var itemStatus = "empty";
16
+ if (!Array.isArray(icon)) {
17
+ // gauge
18
+ var isHalfItem = itemValue > ratingValue && ratingValue > itemValue - 1;
19
+ if (isHalfItem) {
20
+ itemStatus = "half";
21
+ }
22
+ else if (itemValue <= ratingValue) {
23
+ itemStatus = "full";
24
+ }
25
+ }
26
+ else if (itemValue === ratingValue) {
27
+ // radio
28
+ itemStatus = "full";
29
+ }
30
+ return itemStatus;
31
+ }
32
+ var RatingIcon = function (_a) {
33
+ var icon = _a.icon, _b = _a.status, status = _b === void 0 ? "full" : _b, _c = _a.size, size = _c === void 0 ? 24 : _c;
34
+ if (status === "half") {
35
+ return (React.createElement(React.Fragment, null,
36
+ React.cloneElement(icon, {
37
+ color: itemEmptyColor,
38
+ size: size,
39
+ }),
40
+ React.createElement("div", { className: "cobalt-rating-icons__icon-half-container" }, React.cloneElement(icon, { size: size }))));
41
+ }
42
+ else {
43
+ var iconColor = status === "empty" ? itemEmptyColor : icon.props.color;
44
+ return React.cloneElement(icon, {
45
+ color: iconColor,
46
+ size: size,
47
+ });
48
+ }
49
+ };
50
+ var RatingIcons = function (_a) {
51
+ var className = _a.className, _b = _a.max, max = _b === void 0 ? 5 : _b, value = _a.value, _c = _a.size, size = _c === void 0 ? 24 : _c, _d = _a.editable, editable = _d === void 0 ? false : _d, onChange = _a.onChange, _e = _a.icon, icon = _e === void 0 ? defaultRatingIcon : _e;
52
+ var name = useRef(nanoid());
53
+ var items = useRef(Array.from(new Array(Array.isArray(icon) ? icon.length : max)));
54
+ var _f = __read(useState(function () {
55
+ return editable ? Math.floor(value) : roundHalf(value);
56
+ }), 2), ratingValue = _f[0], setRatingValue = _f[1];
57
+ var _g = __read(useState(-1), 2), selectedIndex = _g[0], setSelectedIndex = _g[1]; // used to enforce selection effect (icon scale reset)
58
+ var resetSelection = useCallback(function () {
59
+ setSelectedIndex(-1);
60
+ }, []);
61
+ var itemSize = size === 48 ? 16 : size;
62
+ // input element is used for a11y purpose ( focus feedback and keyboard selection )
63
+ return (React.createElement("div", { className: cx("cobalt-rating-icons", className, {
64
+ "cobalt-rating-icons--input": !editable,
65
+ "cobalt-rating-icons--icon-size-48": size === 48,
66
+ }), onPointerLeave: function () {
67
+ if (editable) {
68
+ document.activeElement.blur();
69
+ }
70
+ } }, items.current.map(function (_value, idx) {
71
+ var itemValue = idx + 1;
72
+ var itemStatus = computeItemStatus(ratingValue, itemValue, icon);
73
+ return (React.createElement("label", { className: cx("cobalt-rating-icons__icon-wrapper", {
74
+ "cobalt-rating-icons__icon-wrapper--selected": selectedIndex === idx,
75
+ }), key: idx, onClick: function () {
76
+ if (editable) {
77
+ setRatingValue(itemValue);
78
+ setSelectedIndex(idx);
79
+ }
80
+ }, onMouseEnter: function (e) {
81
+ if (editable) {
82
+ e.target.focus();
83
+ resetSelection();
84
+ }
85
+ } },
86
+ React.createElement("input", { tabIndex: editable &&
87
+ (ratingValue === itemValue ||
88
+ (ratingValue === 0 && itemValue === 1))
89
+ ? 0
90
+ : -1, name: name.current, type: "radio", value: itemValue, onChange: function () {
91
+ onChange && onChange(itemValue);
92
+ }, disabled: !editable }),
93
+ React.createElement(RatingIcon, { icon: Array.isArray(icon) ? icon[idx] : icon, status: itemStatus, size: itemSize })));
94
+ })));
95
+ };
96
+
97
+ export { RatingIcon, RatingIcons, computeItemStatus, defaultRatingIcon, roundHalf };
98
+ //# sourceMappingURL=RatingIcons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingIcons.js","sources":["../../../src/components/Rating/RatingIcons.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from \"react\"\nimport { nanoid } from \"nanoid\"\nimport cx from \"classnames\"\nimport { IconProps, StarIcon } from \"../Icon\"\n\nexport type RatingIconsPropsType = {\n className?: string\n max?: 5 | 10\n value: number\n size?: IconProps[\"size\"] | 48\n editable?: boolean\n disabled?: boolean\n onChange?: (newValue: number) => void\n icon?: JSX.Element | JSX.Element[]\n}\n\nexport type RatingIconPropsType = {\n icon: JSX.Element\n status?: \"full\" | \"half\" | \"empty\"\n size?: RatingIconsPropsType[\"size\"]\n}\n\nexport const defaultRatingIcon = <StarIcon color={\"turquoise\"} />\nconst itemEmptyColor: IconProps[\"color\"] = \"grey\"\n\nexport function roundHalf(num: number) {\n const temp = num * 2\n return temp % 1 === 0.5 ? Math.floor(temp) / 2 : Math.round(temp) / 2\n}\n\nexport function computeItemStatus(\n ratingValue: number,\n itemValue: number,\n icon: RatingIconsPropsType[\"icon\"]\n): RatingIconPropsType[\"status\"] {\n let itemStatus: RatingIconPropsType[\"status\"] = \"empty\"\n if (!Array.isArray(icon)) {\n // gauge\n const isHalfItem = itemValue > ratingValue && ratingValue > itemValue - 1\n if (isHalfItem) {\n itemStatus = \"half\"\n } else if (itemValue <= ratingValue) {\n itemStatus = \"full\"\n }\n } else if (itemValue === ratingValue) {\n // radio\n itemStatus = \"full\"\n }\n\n return itemStatus\n}\n\nexport const RatingIcon = ({\n icon,\n status = \"full\",\n size = 24,\n}: RatingIconPropsType) => {\n if (status === \"half\") {\n return (\n <>\n {React.cloneElement(icon, {\n color: itemEmptyColor,\n size,\n })}\n <div className=\"cobalt-rating-icons__icon-half-container\">\n {React.cloneElement(icon, { size })}\n </div>\n </>\n )\n } else {\n const iconColor: IconProps[\"color\"] =\n status === \"empty\" ? itemEmptyColor : icon.props.color\n\n return React.cloneElement(icon, {\n color: iconColor,\n size,\n })\n }\n}\n\nexport const RatingIcons = ({\n className,\n max = 5,\n value,\n size = 24,\n editable = false,\n onChange,\n icon = defaultRatingIcon,\n}: RatingIconsPropsType) => {\n const name = useRef(nanoid())\n\n const items = useRef(\n Array.from(new Array(Array.isArray(icon) ? icon.length : max))\n )\n\n const [ratingValue, setRatingValue] = useState(() =>\n editable ? Math.floor(value) : roundHalf(value)\n )\n const [selectedIndex, setSelectedIndex] = useState(-1) // used to enforce selection effect (icon scale reset)\n\n const resetSelection = useCallback(() => {\n setSelectedIndex(-1)\n }, [])\n\n const itemSize = size === 48 ? 16 : size\n\n // input element is used for a11y purpose ( focus feedback and keyboard selection )\n return (\n <div\n className={cx(\"cobalt-rating-icons\", className, {\n \"cobalt-rating-icons--input\": !editable,\n \"cobalt-rating-icons--icon-size-48\": size === 48,\n })}\n onPointerLeave={() => {\n if (editable) {\n ;(document.activeElement as HTMLInputElement).blur()\n }\n }}\n >\n {items.current.map((_value, idx) => {\n const itemValue = idx + 1\n\n const itemStatus = computeItemStatus(ratingValue, itemValue, icon)\n\n return (\n <label\n className={cx(\"cobalt-rating-icons__icon-wrapper\", {\n \"cobalt-rating-icons__icon-wrapper--selected\":\n selectedIndex === idx,\n })}\n key={idx}\n onClick={() => {\n if (editable) {\n setRatingValue(itemValue)\n setSelectedIndex(idx)\n }\n }}\n onMouseEnter={(e) => {\n if (editable) {\n ;(e.target as HTMLElement).focus()\n\n resetSelection()\n }\n }}\n >\n <input\n tabIndex={\n editable &&\n (ratingValue === itemValue ||\n (ratingValue === 0 && itemValue === 1))\n ? 0\n : -1\n }\n name={name.current}\n type=\"radio\"\n value={itemValue}\n onChange={() => {\n onChange && onChange(itemValue)\n }}\n disabled={!editable}\n />\n {\n <RatingIcon\n icon={Array.isArray(icon) ? icon[idx] : icon}\n status={itemStatus}\n size={itemSize}\n />\n }\n </label>\n )\n })}\n </div>\n )\n}\n"],"names":[],"mappings":";;;;;;;AAsBa,IAAA,iBAAiB,GAAG,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,WAAW,EAAA,EAAI;AACjE,IAAM,cAAc,GAAuB,MAAM,CAAA;AAE3C,SAAU,SAAS,CAAC,GAAW,EAAA;AACnC,IAAA,IAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;IACpB,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvE,CAAC;SAEe,iBAAiB,CAC/B,WAAmB,EACnB,SAAiB,EACjB,IAAkC,EAAA;IAElC,IAAI,UAAU,GAAkC,OAAO,CAAA;AACvD,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;QAExB,IAAM,UAAU,GAAG,SAAS,GAAG,WAAW,IAAI,WAAW,GAAG,SAAS,GAAG,CAAC,CAAA;AACzE,QAAA,IAAI,UAAU,EAAE;YACd,UAAU,GAAG,MAAM,CAAA;AACpB,SAAA;aAAM,IAAI,SAAS,IAAI,WAAW,EAAE;YACnC,UAAU,GAAG,MAAM,CAAA;AACpB,SAAA;AACF,KAAA;SAAM,IAAI,SAAS,KAAK,WAAW,EAAE;;QAEpC,UAAU,GAAG,MAAM,CAAA;AACpB,KAAA;AAED,IAAA,OAAO,UAAU,CAAA;AACnB,CAAC;AAEM,IAAM,UAAU,GAAG,UAAC,EAIL,EAAA;AAHpB,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,EAAe,GAAA,EAAA,CAAA,MAAA,EAAf,MAAM,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,MAAM,GAAA,EAAA,EACf,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAA,EAAA,CAAA;IAET,IAAI,MAAM,KAAK,MAAM,EAAE;AACrB,QAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACG,YAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,IAAI,EAAA,IAAA;aACL,CAAC;AACF,YAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,IACtD,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC,CAC/B,CACL,EACJ;AACF,KAAA;AAAM,SAAA;AACL,QAAA,IAAM,SAAS,GACb,MAAM,KAAK,OAAO,GAAG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;AAExD,QAAA,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;AAC9B,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAA,IAAA;AACL,SAAA,CAAC,CAAA;AACH,KAAA;AACH,EAAC;AAEM,IAAM,WAAW,GAAG,UAAC,EAQL,EAAA;AAPrB,IAAA,IAAA,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,EAAO,GAAA,EAAA,CAAA,GAAA,EAAP,GAAG,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,CAAC,GAAA,EAAA,EACP,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,EAAE,GAAA,EAAA,EACT,EAAgB,GAAA,EAAA,CAAA,QAAA,EAAhB,QAAQ,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EAChB,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAAwB,GAAA,EAAA,CAAA,IAAA,EAAxB,IAAI,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,iBAAiB,GAAA,EAAA,CAAA;AAExB,IAAA,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;AAE7B,IAAA,IAAM,KAAK,GAAG,MAAM,CAClB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAC/D,CAAA;IAEK,IAAA,EAAA,GAAA,MAAgC,CAAA,QAAQ,CAAC,YAAA;AAC7C,QAAA,OAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;KAAA,CAChD,IAAA,EAFM,WAAW,QAAA,EAAE,cAAc,QAEjC,CAAA;AACK,IAAA,IAAA,KAAA,MAAoC,CAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAA,CAAA,CAAA,EAA/C,aAAa,QAAA,EAAE,gBAAgB,GAAgB,EAAA,CAAA,CAAA,CAAA,CAAA;IAEtD,IAAM,cAAc,GAAG,WAAW,CAAC,YAAA;AACjC,QAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;KACrB,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,IAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;;IAGxC,QACE,6BACE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,EAAE;YAC9C,4BAA4B,EAAE,CAAC,QAAQ;YACvC,mCAAmC,EAAE,IAAI,KAAK,EAAE;SACjD,CAAC,EACF,cAAc,EAAE,YAAA;AACd,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,QAAQ,CAAC,aAAkC,CAAC,IAAI,EAAE,CAAA;AACrD,aAAA;SACF,EAAA,EAEA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG,EAAA;AAC7B,QAAA,IAAM,SAAS,GAAG,GAAG,GAAG,CAAC,CAAA;QAEzB,IAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;AAElE,QAAA,QACE,KACE,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE;gBACjD,6CAA6C,EAC3C,aAAa,KAAK,GAAG;AACxB,aAAA,CAAC,EACF,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,YAAA;AACP,gBAAA,IAAI,QAAQ,EAAE;oBACZ,cAAc,CAAC,SAAS,CAAC,CAAA;oBACzB,gBAAgB,CAAC,GAAG,CAAC,CAAA;AACtB,iBAAA;AACH,aAAC,EACD,YAAY,EAAE,UAAC,CAAC,EAAA;AACd,gBAAA,IAAI,QAAQ,EAAE;AACV,oBAAA,CAAC,CAAC,MAAsB,CAAC,KAAK,EAAE,CAAA;AAElC,oBAAA,cAAc,EAAE,CAAA;AACjB,iBAAA;aACF,EAAA;YAED,KACE,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,QAAQ,EACN,QAAQ;qBACP,WAAW,KAAK,SAAS;yBACvB,WAAW,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC;AACvC,sBAAE,CAAC;AACH,sBAAE,CAAC,CAAC,EAER,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAA;AACR,oBAAA,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAA;AACjC,iBAAC,EACD,QAAQ,EAAE,CAAC,QAAQ,EACnB,CAAA;AAEA,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACT,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAC5C,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,EACd,CAAA,CAEE,EACT;KACF,CAAC,CACE,EACP;AACH;;;;"}
package/icons/cable.js ADDED
@@ -0,0 +1,4 @@
1
+ var cable = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z\"/></svg>";
2
+
3
+ export { cable as default };
4
+ //# sourceMappingURL=cable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cable.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1Z"/></svg>
@@ -0,0 +1,4 @@
1
+ var evBattery = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z\"/></svg>";
2
+
3
+ export { evBattery as default };
4
+ //# sourceMappingURL=ev-battery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ev-battery.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4ZM11 20v-5.5H9L13 7v5.5h2L11 20Z"/></svg>
package/icons/index.js CHANGED
@@ -18,6 +18,7 @@ export { default as bin } from './bin.js';
18
18
  export { default as bluetooth } from './bluetooth.js';
19
19
  export { default as briefcase } from './briefcase.js';
20
20
  export { default as bulb } from './bulb.js';
21
+ export { default as cable } from './cable.js';
21
22
  export { default as cabriolet } from './cabriolet.js';
22
23
  export { default as calendarCheck } from './calendar-check.js';
23
24
  export { default as calendarClock } from './calendar-clock.js';
@@ -95,6 +96,7 @@ export { default as earning } from './earning.js';
95
96
  export { default as earth } from './earth.js';
96
97
  export { default as edit } from './edit.js';
97
98
  export { default as electric } from './electric.js';
99
+ export { default as evBattery } from './ev-battery.js';
98
100
  export { default as externalLink } from './external-link.js';
99
101
  export { default as eyeClosed } from './eye-closed.js';
100
102
  export { default as eyeOpened } from './eye-opened.js';
@@ -222,6 +224,7 @@ export { default as serviceLocked } from './service-locked.js';
222
224
  export { default as serviceTolls } from './service-tolls.js';
223
225
  export { default as serviceUnlocked } from './service-unlocked.js';
224
226
  export { default as settings } from './settings.js';
227
+ export { default as shareAndroid } from './share-android.js';
225
228
  export { default as shareIos } from './share-ios.js';
226
229
  export { default as share } from './share.js';
227
230
  export { default as shieldCheck } from './shield-check.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ var shareAndroid = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92 0-1.61-1.31-2.92-2.92-2.92z\"/></svg>";
2
+
3
+ export { shareAndroid as default };
4
+ //# sourceMappingURL=share-android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-android.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92 0-1.61-1.31-2.92-2.92-2.92Z"/></svg>
package/index.js CHANGED
@@ -36,6 +36,7 @@ export { ComposedField } from './components/Form/ComposedField.js';
36
36
  export { withFieldLabelAndHint } from './components/Form/field.js';
37
37
  export { Fieldset } from './components/Form/Fieldset.js';
38
38
  export { Hint } from './components/Form/Hint.js';
39
+ export { RatingIcons } from './components/Rating/RatingIcons.js';
39
40
  export { Select } from './components/Form/Select.js';
40
41
  export { default as Slider, SliderValueMeta } from './components/Form/Slider.js';
41
42
  export { Stepper, StepperMeta } from './components/Form/Stepper.js';
@@ -66,6 +67,7 @@ export { default as BinIcon } from './components/Icon/__generated__/BinIcon.js';
66
67
  export { default as BluetoothIcon } from './components/Icon/__generated__/BluetoothIcon.js';
67
68
  export { default as BriefcaseIcon } from './components/Icon/__generated__/BriefcaseIcon.js';
68
69
  export { default as BulbIcon } from './components/Icon/__generated__/BulbIcon.js';
70
+ export { default as CableIcon } from './components/Icon/__generated__/CableIcon.js';
69
71
  export { default as CabrioletIcon } from './components/Icon/__generated__/CabrioletIcon.js';
70
72
  export { default as CalendarCheckIcon } from './components/Icon/__generated__/CalendarCheckIcon.js';
71
73
  export { default as CalendarClockIcon } from './components/Icon/__generated__/CalendarClockIcon.js';
@@ -143,6 +145,7 @@ export { default as EarningIcon } from './components/Icon/__generated__/EarningI
143
145
  export { default as EarthIcon } from './components/Icon/__generated__/EarthIcon.js';
144
146
  export { default as EditIcon } from './components/Icon/__generated__/EditIcon.js';
145
147
  export { default as ElectricIcon } from './components/Icon/__generated__/ElectricIcon.js';
148
+ export { default as EvBatteryIcon } from './components/Icon/__generated__/EvBatteryIcon.js';
146
149
  export { default as ExternalLinkIcon } from './components/Icon/__generated__/ExternalLinkIcon.js';
147
150
  export { default as EyeClosedIcon } from './components/Icon/__generated__/EyeClosedIcon.js';
148
151
  export { default as EyeIcon } from './components/Icon/__generated__/EyeIcon.js';
@@ -269,6 +272,7 @@ export { default as ServiceLockedIcon } from './components/Icon/__generated__/Se
269
272
  export { default as ServiceTollsIcon } from './components/Icon/__generated__/ServiceTollsIcon.js';
270
273
  export { default as ServiceUnlockedIcon } from './components/Icon/__generated__/ServiceUnlockedIcon.js';
271
274
  export { default as SettingsIcon } from './components/Icon/__generated__/SettingsIcon.js';
275
+ export { default as ShareAndroidIcon } from './components/Icon/__generated__/ShareAndroidIcon.js';
272
276
  export { default as ShareIcon } from './components/Icon/__generated__/ShareIcon.js';
273
277
  export { default as ShareIosIcon } from './components/Icon/__generated__/ShareIosIcon.js';
274
278
  export { default as ShieldCheckIcon } from './components/Icon/__generated__/ShieldCheckIcon.js';
@@ -283,7 +287,6 @@ export { default as SocialLinkedinIcon } from './components/Icon/__generated__/S
283
287
  export { default as SocialTwitterIcon } from './components/Icon/__generated__/SocialTwitterIcon.js';
284
288
  export { default as SocialWhatsappIcon } from './components/Icon/__generated__/SocialWhatsappIcon.js';
285
289
  export { default as StarHalfIcon } from './components/Icon/__generated__/StarHalfIcon.js';
286
- export { default as StarIcon } from './components/Icon/__generated__/StarIcon.js';
287
290
  export { default as StarsIcon } from './components/Icon/__generated__/StarsIcon.js';
288
291
  export { default as SubwayIcon } from './components/Icon/__generated__/SubwayIcon.js';
289
292
  export { default as SuitcaseIcon } from './components/Icon/__generated__/SuitcaseIcon.js';
@@ -325,4 +328,5 @@ export { default as WrenchIcon } from './components/Icon/__generated__/WrenchIco
325
328
  export { default as YingyangIcon } from './components/Icon/__generated__/YingyangIcon.js';
326
329
  export { useAccordionItemContext } from '@reach/accordion';
327
330
  export { default as LoadingIcon } from './components/Icon/__generated__/LoadingIcon.js';
331
+ export { default as StarIcon } from './components/Icon/__generated__/StarIcon.js';
328
332
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drivy/cobalt",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "Opinionated design system for Drivy's projects.",
5
5
  "main": "src/index.js",
6
6
  "types": "types/index.d.ts",
@@ -57,16 +57,16 @@
57
57
  "@svgr/cli": "6.2.1",
58
58
  "@testing-library/jest-dom": "5.16.4",
59
59
  "@testing-library/react": "12.1.5",
60
- "@testing-library/react-hooks": "7.0.2",
60
+ "@testing-library/react-hooks": "8.0.0",
61
61
  "@types/classnames": "2.3.0",
62
62
  "@types/jest": "27.4.1",
63
63
  "@types/lodash.throttle": "4.1.7",
64
64
  "@types/media-typer": "1.1.1",
65
65
  "@types/react": "17.0.44",
66
- "autoprefixer": "10.4.4",
67
- "core-js": "3.22.1",
66
+ "autoprefixer": "10.4.7",
67
+ "core-js": "3.22.2",
68
68
  "css-loader": "6.7.1",
69
- "eslint": "8.13.0",
69
+ "eslint": "8.14.0",
70
70
  "jest": "27.5.1",
71
71
  "np": "7.6.1",
72
72
  "postcss-flexbugs-fixes": "5.0.2",
@@ -0,0 +1,134 @@
1
+ .cobalt-rating,
2
+ .cobalt-rating-input {
3
+ display: flex;
4
+
5
+ align-items: center;
6
+
7
+ pointer-events: none;
8
+
9
+ gap: 4px;
10
+ }
11
+
12
+ .cobalt-rating__label {
13
+ line-height: 14px;
14
+ font-size: 14px;
15
+ color: color(graphite, light);
16
+ }
17
+
18
+ .cobalt-rating-input {
19
+ &--disabled {
20
+ opacity: 0.5;
21
+ }
22
+
23
+ &:not(.cobalt-rating-input--disabled) .cobalt-rating-icons {
24
+ pointer-events: initial;
25
+ }
26
+ }
27
+
28
+ .cobalt-rating-icons {
29
+ display: flex;
30
+ justify-content: flex-start;
31
+ align-items: center;
32
+ pointer-events: none;
33
+
34
+ * {
35
+ -webkit-tap-highlight-color: transparent;
36
+ }
37
+
38
+ &--icon-size-48 .cobalt-Icon {
39
+ height: spacing(xl);
40
+ width: spacing(xl);
41
+ }
42
+
43
+ &__icon-wrapper {
44
+ position: relative;
45
+
46
+ display: inline-block;
47
+
48
+ line-height: 0;
49
+
50
+ cursor: pointer;
51
+ }
52
+
53
+ &__icon-wrapper input {
54
+ width: 0;
55
+ height: 0;
56
+ margin: 0;
57
+ padding: 0;
58
+
59
+ opacity: 0;
60
+ }
61
+
62
+ &__icon-wrapper * {
63
+ pointer-events: none;
64
+ }
65
+
66
+ &__icon-half-container {
67
+ position: absolute;
68
+
69
+ top: 0;
70
+ left: 0;
71
+
72
+ width: calc(50%);
73
+
74
+ overflow: hidden;
75
+ }
76
+
77
+ &__icon-half-container .cobalt-Icon {
78
+ max-width: none;
79
+ }
80
+
81
+ &:not(:hover):not(:focus-visible) input:focus {
82
+ // focus feedback with keyboard navigation only
83
+ & + .cobalt-Icon {
84
+ border-radius: spacing(unit);
85
+ box-shadow: 0 0 0 1px color(turquoise);
86
+ }
87
+ }
88
+
89
+ /* stylelint-disable order/order */
90
+ @media (hover: hover) {
91
+ // desktop animation only
92
+ &__icon-wrapper--selected {
93
+ input:checked:focus + .cobalt-Icon {
94
+ transform: scale(1) !important;
95
+ }
96
+ }
97
+
98
+ &__icon-wrapper:hover {
99
+ .cobalt-Icon {
100
+ transform: scale(1.2);
101
+ }
102
+ }
103
+
104
+ &:not(:hover)
105
+ &__icon-wrapper:not(:hover):not(:focus-visible)
106
+ input:focus:checked {
107
+ // focus feedback with keyboard navigation only
108
+ & + .cobalt-Icon {
109
+ animation: rating-pop--keyboard 0.3s ease 1;
110
+ }
111
+ }
112
+ }
113
+
114
+ @media (hover: none) {
115
+ // mobile selection feedback
116
+ &__icon-wrapper input:checked {
117
+ & + .cobalt-Icon {
118
+ animation: rating-pop--mobile 0.3s ease 1;
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ @keyframes rating-pop--keyboard {
125
+ 0% {
126
+ transform: scale(1.2);
127
+ }
128
+ }
129
+
130
+ @keyframes rating-pop--mobile {
131
+ 0% {
132
+ transform: scale(1.5);
133
+ }
134
+ }
@@ -28,3 +28,4 @@
28
28
  @import "./components/Popover/index";
29
29
  @import "./components/Accordion/index";
30
30
  @import "./components/HorizontalList/index";
31
+ @import "./components/Rating/index";
package/tokens/icons.js CHANGED
@@ -19,6 +19,7 @@ const icons = {
19
19
  bluetooth: "bluetooth.svg",
20
20
  briefcase: "briefcase.svg",
21
21
  bulb: "bulb.svg",
22
+ cable: "cable.svg",
22
23
  cabriolet: "cabriolet.svg",
23
24
  calendarCheck: "calendar-check.svg",
24
25
  calendarClock: "calendar-clock.svg",
@@ -96,6 +97,7 @@ const icons = {
96
97
  earth: "earth.svg",
97
98
  edit: "edit.svg",
98
99
  electric: "electric.svg",
100
+ evBattery: "ev-battery.svg",
99
101
  externalLink: "external-link.svg",
100
102
  eyeClosed: "eye-closed.svg",
101
103
  eyeOpened: "eye-opened.svg",
@@ -223,6 +225,7 @@ const icons = {
223
225
  serviceTolls: "service-tolls.svg",
224
226
  serviceUnlocked: "service-unlocked.svg",
225
227
  settings: "settings.svg",
228
+ shareAndroid: "share-android.svg",
226
229
  shareIos: "share-ios.svg",
227
230
  share: "share.svg",
228
231
  shieldCheck: "shield-check.svg",
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"icons.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}