@carbonplan/components 10.1.1 → 10.4.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.
package/dst/index.js CHANGED
@@ -79,6 +79,12 @@ var event = function event(_ref) {
79
79
  category = _ref.category,
80
80
  label = _ref.label,
81
81
  value = _ref.value;
82
+
83
+ if (typeof window.gtag !== 'function') {
84
+ console.warn("Missing window.gtag, skipping analytics action: '" + action + "'.");
85
+ return;
86
+ }
87
+
82
88
  window.gtag('event', action, {
83
89
  event_category: category,
84
90
  event_label: label,
@@ -819,25 +825,25 @@ var Menu = function Menu(_ref) {
819
825
  };
820
826
 
821
827
  var Settings = function Settings(_ref) {
822
- var _extends2;
823
-
824
828
  var value = _ref.value,
825
829
  sx = _ref.sx,
826
830
  props = _objectWithoutPropertiesLoose(_ref, ["value", "sx"]);
827
831
 
828
832
  return /*#__PURE__*/React__default['default'].createElement(themeUi.IconButton, _extends({
829
- sx: _extends((_extends2 = {
833
+ sx: _extends({
830
834
  cursor: 'pointer',
831
835
  fill: 'none',
832
836
  strokeWidth: '2px',
833
- stroke: 'text'
834
- }, _extends2["fill"] = 'background', _extends2['.paren'] = {
835
- opacity: '0'
836
- }, _extends2['@media (hover: hover) and (pointer: fine)'] = {
837
- '&:hover .paren': {
838
- opacity: '1'
837
+ stroke: 'text',
838
+ '.paren': {
839
+ opacity: '0'
840
+ },
841
+ '@media (hover: hover) and (pointer: fine)': {
842
+ '&:hover .paren': {
843
+ opacity: '1'
844
+ }
839
845
  }
840
- }, _extends2), sx),
846
+ }, sx),
841
847
  "aria-label": "Toggle Menu"
842
848
  }, props), !value && /*#__PURE__*/React__default['default'].createElement("svg", {
843
849
  style: {
@@ -852,22 +858,22 @@ var Settings = function Settings(_ref) {
852
858
  x1: "24",
853
859
  y1: "2.1",
854
860
  x2: "24",
861
+ y2: "6.1"
862
+ }), /*#__PURE__*/React__default['default'].createElement("line", {
863
+ x1: "24",
864
+ y1: "24.1",
865
+ x2: "24",
855
866
  y2: "33.9"
856
867
  }), /*#__PURE__*/React__default['default'].createElement("line", {
857
868
  x1: "44",
858
869
  y1: "2.1",
859
870
  x2: "44",
871
+ y2: "12.1"
872
+ }), /*#__PURE__*/React__default['default'].createElement("line", {
873
+ x1: "44",
874
+ y1: "30.1",
875
+ x2: "44",
860
876
  y2: "33.9"
861
- }), /*#__PURE__*/React__default['default'].createElement("circle", {
862
- cx: "24",
863
- cy: "15.1",
864
- r: "9",
865
- stroke: "none"
866
- }), /*#__PURE__*/React__default['default'].createElement("circle", {
867
- cx: "44",
868
- cy: "21.1",
869
- r: "9",
870
- stroke: "none"
871
877
  }), /*#__PURE__*/React__default['default'].createElement("circle", {
872
878
  cx: "24",
873
879
  cy: "15.1",
@@ -1382,6 +1388,77 @@ var Footer = function Footer() {
1382
1388
  }))));
1383
1389
  };
1384
1390
 
1391
+ var GitSha = function GitSha() {
1392
+ var sha = process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA;
1393
+ var owner = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_OWNER;
1394
+ var slug = process.env.NEXT_PUBLIC_VERCEL_GIT_REPO_SLUG;
1395
+
1396
+ var _useThemeUI = themeUi.useThemeUI(),
1397
+ theme = _useThemeUI.theme;
1398
+
1399
+ var color = theme.rawColors.secondary;
1400
+
1401
+ if (sha && owner && slug) {
1402
+ var shortSha = sha.substring(0, 7);
1403
+ var href = 'https://github.com/' + owner + '/' + slug + '/tree/' + sha;
1404
+ return /*#__PURE__*/React__default['default'].createElement(themeUi.Box, {
1405
+ sx: {
1406
+ display: 'inline-block'
1407
+ }
1408
+ }, /*#__PURE__*/React__default['default'].createElement(Separator, {
1409
+ color: color
1410
+ }), /*#__PURE__*/React__default['default'].createElement(themeUi.Link, {
1411
+ href: href,
1412
+ sx: {
1413
+ whiteSpace: 'nowrap',
1414
+ display: 'inline-block',
1415
+ ml: [2],
1416
+ fontFamily: 'mono',
1417
+ letterSpacing: 'body',
1418
+ color: color,
1419
+ fontSize: [1],
1420
+ textTransform: 'uppercase',
1421
+ textDecoration: 'none'
1422
+ }
1423
+ }, shortSha));
1424
+ } else {
1425
+ // fallback
1426
+ return /*#__PURE__*/React__default['default'].createElement(themeUi.Box, {
1427
+ sx: {
1428
+ display: 'inline-block'
1429
+ }
1430
+ }, /*#__PURE__*/React__default['default'].createElement(Separator, {
1431
+ color: color
1432
+ }), /*#__PURE__*/React__default['default'].createElement(themeUi.Text, {
1433
+ sx: {
1434
+ whiteSpace: 'nowrap',
1435
+ display: 'inline-block',
1436
+ ml: [2],
1437
+ fontFamily: 'mono',
1438
+ letterSpacing: 'body',
1439
+ color: color,
1440
+ fontSize: [1],
1441
+ textTransform: 'uppercase'
1442
+ }
1443
+ }, color));
1444
+ }
1445
+ };
1446
+
1447
+ var Separator = function Separator(_ref) {
1448
+ var color = _ref.color;
1449
+ return /*#__PURE__*/React__default['default'].createElement("svg", {
1450
+ fill: color,
1451
+ opacity: "0.8",
1452
+ viewBox: "0 0 24 24",
1453
+ width: "24",
1454
+ height: "24"
1455
+ }, /*#__PURE__*/React__default['default'].createElement("circle", {
1456
+ r: 5,
1457
+ cx: 19,
1458
+ cy: 19
1459
+ }));
1460
+ };
1461
+
1385
1462
  var Value = function Value(_ref) {
1386
1463
  var mode = _ref.mode;
1387
1464
 
@@ -1431,11 +1508,6 @@ var Value = function Value(_ref) {
1431
1508
 
1432
1509
  var Metadata = function Metadata(_ref2) {
1433
1510
  var mode = _ref2.mode;
1434
-
1435
- var _useThemeUI = themeUi.useThemeUI(),
1436
- theme = _useThemeUI.theme;
1437
-
1438
- var color = theme.rawColors.secondary;
1439
1511
  return /*#__PURE__*/React__default['default'].createElement(themeUi.Box, {
1440
1512
  sx: {
1441
1513
  userSelect: 'none',
@@ -1448,28 +1520,7 @@ var Metadata = function Metadata(_ref2) {
1448
1520
  }
1449
1521
  }, /*#__PURE__*/React__default['default'].createElement(Value, {
1450
1522
  mode: mode
1451
- }), /*#__PURE__*/React__default['default'].createElement("svg", {
1452
- fill: color,
1453
- opacity: "0.8",
1454
- viewBox: "0 0 24 24",
1455
- width: "24",
1456
- height: "24"
1457
- }, /*#__PURE__*/React__default['default'].createElement("circle", {
1458
- r: 5,
1459
- cx: 19,
1460
- cy: 19
1461
- })), /*#__PURE__*/React__default['default'].createElement(themeUi.Text, {
1462
- sx: {
1463
- whiteSpace: 'nowrap',
1464
- display: 'inline-block',
1465
- ml: [2],
1466
- fontFamily: 'mono',
1467
- letterSpacing: 'body',
1468
- color: 'secondary',
1469
- fontSize: [1],
1470
- textTransform: 'uppercase'
1471
- }
1472
- }, color));
1523
+ }), /*#__PURE__*/React__default['default'].createElement(GitSha, null));
1473
1524
  };
1474
1525
 
1475
1526
  function init(mode) {
@@ -2429,7 +2480,7 @@ var Tray = function Tray(_ref) {
2429
2480
  ml: [-3, -4, -5, -6],
2430
2481
  pl: [3, 4, 5, 6],
2431
2482
  pr: [3, 4, 5, 6],
2432
- transform: expanded ? 'translateY(0)' : 'translateY(-400px)'
2483
+ transform: expanded ? 'translateY(0)' : 'translateY(-100%)'
2433
2484
  }, sx)
2434
2485
  }, /*#__PURE__*/React__default['default'].createElement(Row, null, /*#__PURE__*/React__default['default'].createElement(Column, {
2435
2486
  start: [1, 1, 1, 1],
@@ -2437,14 +2488,39 @@ var Tray = function Tray(_ref) {
2437
2488
  }, children))));
2438
2489
  };
2439
2490
 
2440
- var formatDate = function formatDate(date) {
2491
+ var defaultOptions = {
2492
+ month: 'short',
2493
+ day: 'numeric',
2494
+ year: 'numeric'
2495
+ };
2496
+
2497
+ var formatDateElement = function formatDateElement(date, element, option) {
2498
+ var _date$toLocaleString;
2499
+
2500
+ if (!option) {
2501
+ return null;
2502
+ }
2503
+
2504
+ var format = typeof option === 'string' ? option : defaultOptions[element];
2505
+ var result = date.toLocaleString('default', (_date$toLocaleString = {}, _date$toLocaleString[element] = format, _date$toLocaleString));
2506
+
2507
+ if (format === 'numeric' && element === 'day') {
2508
+ return result.padStart(2, '0');
2509
+ } else {
2510
+ return result;
2511
+ }
2512
+ };
2513
+
2514
+ var formatDate = function formatDate(date, options) {
2515
+ if (options === void 0) {
2516
+ options = defaultOptions;
2517
+ }
2518
+
2441
2519
  var d = new Date(date.replace(/-/g, '/'));
2442
- var month = d.toLocaleString('default', {
2443
- month: 'short'
2444
- });
2445
- var day = String(d.getDate()).padStart(2, '0');
2446
- var year = d.getFullYear();
2447
- return month + ' ' + day + ' ' + year;
2520
+ var month = formatDateElement(d, 'month', options.month);
2521
+ var day = formatDateElement(d, 'day', options.day);
2522
+ var year = formatDateElement(d, 'year', options.year);
2523
+ return [month, day, year].filter(Boolean).join(' ');
2448
2524
  };
2449
2525
 
2450
2526
  exports.Badge = Badge;
@@ -2470,6 +2546,7 @@ exports.Monogram = Monogram;
2470
2546
  exports.Row = Row;
2471
2547
  exports.Scrollbar = Scrollbar;
2472
2548
  exports.Select = Select;
2549
+ exports.Settings = Settings;
2473
2550
  exports.Slider = Slider;
2474
2551
  exports.Table = Table;
2475
2552
  exports.Tag = Tag;