@twentyfirstmedia/ui-core 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/ICONS-LICENSE +24 -2
  2. package/dist/components/connected-data.d.ts +25 -0
  3. package/dist/components/connected-data.d.ts.map +1 -0
  4. package/dist/components/connected-data.js +264 -0
  5. package/dist/components/connected-data.js.map +1 -0
  6. package/dist/components/connectors.d.ts +22 -0
  7. package/dist/components/connectors.d.ts.map +1 -0
  8. package/dist/components/connectors.js +135 -0
  9. package/dist/components/connectors.js.map +1 -0
  10. package/dist/components/index.d.ts +2 -0
  11. package/dist/components/index.d.ts.map +1 -1
  12. package/dist/components/index.js +2 -0
  13. package/dist/components/index.js.map +1 -1
  14. package/dist/components/life.d.ts.map +1 -1
  15. package/dist/components/life.js +3 -2
  16. package/dist/components/life.js.map +1 -1
  17. package/dist/components/types.d.ts +290 -0
  18. package/dist/components/types.d.ts.map +1 -1
  19. package/dist/context.d.ts +1 -0
  20. package/dist/context.d.ts.map +1 -1
  21. package/dist/context.js +2 -1
  22. package/dist/context.js.map +1 -1
  23. package/dist/format.d.ts +5 -0
  24. package/dist/format.d.ts.map +1 -1
  25. package/dist/format.js +31 -0
  26. package/dist/format.js.map +1 -1
  27. package/dist/icon-library.d.ts +235 -4
  28. package/dist/icon-library.d.ts.map +1 -1
  29. package/dist/icon-library.js +467 -15
  30. package/dist/icon-library.js.map +1 -1
  31. package/dist/icons.d.ts +2 -0
  32. package/dist/icons.d.ts.map +1 -1
  33. package/dist/icons.js.map +1 -1
  34. package/dist/index.d.ts +2 -2
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/strings.d.ts +89 -1
  39. package/dist/strings.d.ts.map +1 -1
  40. package/dist/strings.js +110 -1
  41. package/dist/strings.js.map +1 -1
  42. package/dist/themes.css +14447 -12207
  43. package/package.json +1 -1
  44. package/src/components/connected-data.tsx +783 -0
  45. package/src/components/connectors.tsx +426 -0
  46. package/src/components/index.ts +17 -0
  47. package/src/components/life.tsx +8 -1
  48. package/src/components/types.ts +280 -0
  49. package/src/context.ts +10 -1
  50. package/src/format.ts +33 -0
  51. package/src/icon-library.ts +476 -19
  52. package/src/icons.ts +2 -0
  53. package/src/index.ts +3 -0
  54. package/src/strings.ts +277 -0
package/src/icons.ts CHANGED
@@ -128,6 +128,8 @@ export type IconName = KitIconName | LibraryIconName | Extract<keyof CustomIcons
128
128
  export interface FilledIcon {
129
129
  d: string;
130
130
  filled: true;
131
+ /** A wordmark at least twice as wide as tall: marks such as `ServiceMark` draw it larger. */
132
+ wide?: true;
131
133
  }
132
134
 
133
135
  /** A drawing for `registerIcons`: a path on the 24px grid, stroked like the kit's icons, or filled. */
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export {
4
4
  formatPercent,
5
5
  formatMoney,
6
6
  formatDate,
7
+ formatRelative,
7
8
  formatLike,
8
9
  parseFormatted,
9
10
  numberSeparators,
@@ -23,6 +24,8 @@ export {
23
24
  CHARTS_STRINGS,
24
25
  CHAT_STRINGS,
25
26
  COMMERCE_STRINGS,
27
+ CONNECTED_DATA_STRINGS,
28
+ CONNECTOR_STRINGS,
26
29
  DATA_DISPLAY_STRINGS,
27
30
  DATA_TABLE_STRINGS,
28
31
  DEVELOPER_STRINGS,
package/src/strings.ts CHANGED
@@ -586,6 +586,97 @@ export interface UIStrings {
586
586
  expiresIn: (days: number) => string;
587
587
  /** "Valid until {date}" */
588
588
  expiresOn: (date: string) => string;
589
+ /* connectors */
590
+ /** A connected service's state in words. */
591
+ serviceStates: Record<"connected" | "syncing" | "error" | "paused" | "off", string>;
592
+ connectors: string;
593
+ connectionsLabel: string;
594
+ manageAction: string;
595
+ /** "Manage Gmail" */
596
+ manageService: (name: string) => string;
597
+ searchConnectors: string;
598
+ allCategories: string;
599
+ connect: string;
600
+ /** "Connect Gmail" */
601
+ connectService: (name: string) => string;
602
+ openAction: string;
603
+ /** "Open Gmail" */
604
+ openService: (name: string) => string;
605
+ reconnect: string;
606
+ /** "Reconnect Gmail" */
607
+ reconnectService: (name: string) => string;
608
+ comingSoon: string;
609
+ /** "No connector matches “tesla”" */
610
+ noConnectorMatch: (query: string) => string;
611
+ /** "Synced 5 minutes ago" */
612
+ syncedAgo: (when: string) => string;
613
+ syncingNow: string;
614
+ syncFailed: string;
615
+ syncPaused: string;
616
+ neverSynced: string;
617
+ /** "Next in 1 hour" */
618
+ nextSync: (when: string) => string;
619
+ syncNow: string;
620
+ agentActivity: string;
621
+ actionKinds: Record<"read" | "act" | "money", string>;
622
+ actionStates: Record<"waiting" | "declined" | "undone" | "failed", string>;
623
+ reviewAction: string;
624
+ scopeLevels: Record<"read" | "act" | "money", string>;
625
+ asksFirst: string;
626
+ /* connected data: home, car, media, workouts, calls, bookings, golf, investments */
627
+ deviceOn: string;
628
+ deviceOff: string;
629
+ deviceOffline: string;
630
+ /** "Target 21.5 °C" */
631
+ targetTemp: (value: string) => string;
632
+ lowerTarget: string;
633
+ raiseTarget: string;
634
+ /** "Battery 64%" */
635
+ batteryLevel: (percent: string) => string;
636
+ chargingStates: Record<"charging" | "complete" | "plugged" | "unplugged", string>;
637
+ /** "Limit 80%" */
638
+ chargeLimit: (percent: string) => string;
639
+ /** "Done by 06:30" */
640
+ chargedBy: (time: string) => string;
641
+ /** "412 km range" */
642
+ rangeLeft: (distance: string) => string;
643
+ lockedState: string;
644
+ unlockedState: string;
645
+ lockAction: string;
646
+ climateLabel: string;
647
+ climateOnLabel: string;
648
+ climateOffLabel: string;
649
+ /** "Inside 19 °C" */
650
+ insideTemp: (value: string) => string;
651
+ playAction: string;
652
+ pauseAction: string;
653
+ nextTrack: string;
654
+ previousTrack: string;
655
+ /** "Playing on Living room" */
656
+ playingOn: (device: string) => string;
657
+ heartRateZones: string;
658
+ /** "Zone 3: 18 min" */
659
+ zoneMinutes: (zone: number, minutes: number) => string;
660
+ avgHeartRate: string;
661
+ caloriesLabel: string;
662
+ distanceLabel: string;
663
+ durationLabel: string;
664
+ calls: string;
665
+ callDirections: Record<"incoming" | "outgoing" | "missed", string>;
666
+ /** "Call Lena" */
667
+ callPerson: (name: string) => string;
668
+ reservationStatus: Record<
669
+ "confirmed" | "pending" | "cancelled" | "delayed" | "onTheWay" | "delivered",
670
+ string
671
+ >;
672
+ bookingCode: string;
673
+ scoreLabels: Record<"hole" | "par" | "score" | "putts" | "out" | "in" | "total", string>;
674
+ scoreNames: Record<"eagle" | "birdie" | "par" | "bogey" | "double", string>;
675
+ /** "+7", "Even", "−2" */
676
+ toPar: (strokes: number) => string;
677
+ holdings: string;
678
+ /** "12% of portfolio" */
679
+ portfolioShare: (percent: string) => string;
589
680
  // @@KEYS
590
681
  }
591
682
 
@@ -1621,6 +1712,8 @@ export const LIFE_STRINGS: Pick<
1621
1712
  | "lastUsed"
1622
1713
  | "notUsedYet"
1623
1714
  | "requiredScope"
1715
+ | "scopeLevels"
1716
+ | "asksFirst"
1624
1717
  > = {
1625
1718
  habits: "Habits",
1626
1719
  habitStreak: (days) => `${days}-day streak`,
@@ -1656,6 +1749,8 @@ export const LIFE_STRINGS: Pick<
1656
1749
  lastUsed: (date) => `Last used ${date}`,
1657
1750
  notUsedYet: "Not used yet",
1658
1751
  requiredScope: "Required",
1752
+ scopeLevels: { read: "Read only", act: "Can act", money: "Money" },
1753
+ asksFirst: "asks first",
1659
1754
  };
1660
1755
 
1661
1756
  /** Strings of the components in `household.tsx`. */
@@ -1730,6 +1825,186 @@ export const HOUSEHOLD_STRINGS: Pick<
1730
1825
  expiresOn: (date) => `Valid until ${date}`,
1731
1826
  };
1732
1827
 
1828
+ export const CONNECTOR_STRINGS: Pick<
1829
+ UIStrings,
1830
+ | "serviceStates"
1831
+ | "connectors"
1832
+ | "connectionsLabel"
1833
+ | "manageAction"
1834
+ | "manageService"
1835
+ | "searchConnectors"
1836
+ | "allCategories"
1837
+ | "connect"
1838
+ | "connectService"
1839
+ | "openAction"
1840
+ | "openService"
1841
+ | "reconnect"
1842
+ | "reconnectService"
1843
+ | "comingSoon"
1844
+ | "noConnectorMatch"
1845
+ | "syncedAgo"
1846
+ | "syncingNow"
1847
+ | "syncFailed"
1848
+ | "syncPaused"
1849
+ | "neverSynced"
1850
+ | "nextSync"
1851
+ | "syncNow"
1852
+ | "agentActivity"
1853
+ | "actionKinds"
1854
+ | "actionStates"
1855
+ | "reviewAction"
1856
+ > = {
1857
+ serviceStates: {
1858
+ connected: "Connected",
1859
+ syncing: "Syncing",
1860
+ error: "Needs attention",
1861
+ paused: "Paused",
1862
+ off: "Off",
1863
+ },
1864
+ connectors: "Connectors",
1865
+ connectionsLabel: "Connections",
1866
+ manageAction: "Manage",
1867
+ manageService: (name) => `Manage ${name}`,
1868
+ searchConnectors: "Search connectors",
1869
+ allCategories: "All",
1870
+ connect: "Connect",
1871
+ connectService: (name) => `Connect ${name}`,
1872
+ openAction: "Open",
1873
+ openService: (name) => `Open ${name}`,
1874
+ reconnect: "Reconnect",
1875
+ reconnectService: (name) => `Reconnect ${name}`,
1876
+ comingSoon: "Coming soon",
1877
+ noConnectorMatch: (q) => `No connector matches “${q}”`,
1878
+ syncedAgo: (when) => `Synced ${when}`,
1879
+ syncingNow: "Syncing…",
1880
+ syncFailed: "Sync failed",
1881
+ syncPaused: "Sync paused",
1882
+ neverSynced: "Not synced yet",
1883
+ nextSync: (when) => `Next ${when}`,
1884
+ syncNow: "Sync now",
1885
+ agentActivity: "Agent activity",
1886
+ actionKinds: { read: "Read", act: "Acted", money: "Money" },
1887
+ actionStates: {
1888
+ waiting: "Waiting for you",
1889
+ declined: "Declined",
1890
+ undone: "Undone",
1891
+ failed: "Failed",
1892
+ },
1893
+ reviewAction: "Review",
1894
+ };
1895
+
1896
+ export const CONNECTED_DATA_STRINGS: Pick<
1897
+ UIStrings,
1898
+ | "deviceOn"
1899
+ | "deviceOff"
1900
+ | "deviceOffline"
1901
+ | "targetTemp"
1902
+ | "lowerTarget"
1903
+ | "raiseTarget"
1904
+ | "batteryLevel"
1905
+ | "chargingStates"
1906
+ | "chargeLimit"
1907
+ | "chargedBy"
1908
+ | "rangeLeft"
1909
+ | "lockedState"
1910
+ | "unlockedState"
1911
+ | "lockAction"
1912
+ | "climateLabel"
1913
+ | "climateOnLabel"
1914
+ | "climateOffLabel"
1915
+ | "insideTemp"
1916
+ | "playAction"
1917
+ | "pauseAction"
1918
+ | "nextTrack"
1919
+ | "previousTrack"
1920
+ | "playingOn"
1921
+ | "heartRateZones"
1922
+ | "zoneMinutes"
1923
+ | "avgHeartRate"
1924
+ | "caloriesLabel"
1925
+ | "distanceLabel"
1926
+ | "durationLabel"
1927
+ | "durationHm"
1928
+ | "calls"
1929
+ | "callDirections"
1930
+ | "callPerson"
1931
+ | "reservationStatus"
1932
+ | "bookingCode"
1933
+ | "scoreLabels"
1934
+ | "scoreNames"
1935
+ | "toPar"
1936
+ | "holdings"
1937
+ | "portfolioShare"
1938
+ > = {
1939
+ deviceOn: "On",
1940
+ deviceOff: "Off",
1941
+ deviceOffline: "Offline",
1942
+ targetTemp: (v) => `Target ${v}`,
1943
+ lowerTarget: "Lower target",
1944
+ raiseTarget: "Raise target",
1945
+ batteryLevel: (p) => `Battery ${p}`,
1946
+ chargingStates: {
1947
+ charging: "Charging",
1948
+ complete: "Charged",
1949
+ plugged: "Plugged in",
1950
+ unplugged: "Not plugged in",
1951
+ },
1952
+ chargeLimit: (p) => `Limit ${p}`,
1953
+ chargedBy: (time) => `Done by ${time}`,
1954
+ rangeLeft: (d) => `${d} range`,
1955
+ lockedState: "Locked",
1956
+ unlockedState: "Unlocked",
1957
+ lockAction: "Lock",
1958
+ climateLabel: "Climate",
1959
+ climateOnLabel: "Climate on",
1960
+ climateOffLabel: "Climate off",
1961
+ insideTemp: (v) => `Inside ${v}`,
1962
+ playAction: "Play",
1963
+ pauseAction: "Pause",
1964
+ nextTrack: "Next",
1965
+ previousTrack: "Previous",
1966
+ playingOn: (d) => `Playing on ${d}`,
1967
+ heartRateZones: "Heart-rate zones",
1968
+ zoneMinutes: (zone, minutes) => `Zone ${zone}: ${minutes} min`,
1969
+ avgHeartRate: "Avg heart rate",
1970
+ caloriesLabel: "Calories",
1971
+ distanceLabel: "Distance",
1972
+ durationLabel: "Duration",
1973
+ durationHm: (hours, minutes) =>
1974
+ hours ? (minutes ? `${hours} h ${minutes} min` : `${hours} h`) : `${minutes} min`,
1975
+ calls: "Calls",
1976
+ callDirections: { incoming: "Incoming", outgoing: "Outgoing", missed: "Missed" },
1977
+ callPerson: (name) => `Call ${name}`,
1978
+ reservationStatus: {
1979
+ confirmed: "Confirmed",
1980
+ pending: "Pending",
1981
+ cancelled: "Cancelled",
1982
+ delayed: "Delayed",
1983
+ onTheWay: "On the way",
1984
+ delivered: "Delivered",
1985
+ },
1986
+ bookingCode: "Booking",
1987
+ scoreLabels: {
1988
+ hole: "Hole",
1989
+ par: "Par",
1990
+ score: "Score",
1991
+ putts: "Putts",
1992
+ out: "Out",
1993
+ in: "In",
1994
+ total: "Total",
1995
+ },
1996
+ scoreNames: {
1997
+ eagle: "Eagle or better",
1998
+ birdie: "Birdie",
1999
+ par: "Par",
2000
+ bogey: "Bogey",
2001
+ double: "Double bogey or worse",
2002
+ },
2003
+ toPar: (n) => (n === 0 ? "Even" : n > 0 ? `+${n}` : `−${-n}`),
2004
+ holdings: "Holdings",
2005
+ portfolioShare: (p) => `${p} of portfolio`,
2006
+ };
2007
+
1733
2008
  /** The English defaults: every group together. */
1734
2009
  export const DEFAULT_STRINGS: UIStrings = /* @__PURE__ */ Object.assign(
1735
2010
  {},
@@ -1742,6 +2017,8 @@ export const DEFAULT_STRINGS: UIStrings = /* @__PURE__ */ Object.assign(
1742
2017
  CHARTS_STRINGS,
1743
2018
  CHAT_STRINGS,
1744
2019
  COMMERCE_STRINGS,
2020
+ CONNECTED_DATA_STRINGS,
2021
+ CONNECTOR_STRINGS,
1745
2022
  DATA_DISPLAY_STRINGS,
1746
2023
  DATA_TABLE_STRINGS,
1747
2024
  DEVELOPER_STRINGS,