@flamingo-stack/openframe-frontend-core 0.0.761 → 0.0.763

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 (91) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-7Z4EQOIX.cjs → chunk-22XAPV6N.cjs} +35 -35
  3. package/dist/{chunk-AXBVN5SW.cjs → chunk-2IFCRPNP.cjs} +38 -38
  4. package/dist/{chunk-TIV74DVS.cjs → chunk-3JUIDOHB.cjs} +43 -43
  5. package/dist/{chunk-CSJO7ZGN.cjs → chunk-3RYIF4OW.cjs} +3 -3
  6. package/dist/{chunk-35BJY5RR.cjs → chunk-47GZ33ND.cjs} +44 -44
  7. package/dist/{chunk-HQYWVNQL.cjs → chunk-4NGXJA3V.cjs} +4 -4
  8. package/dist/{chunk-GLQBCQOF.cjs → chunk-66FQUWKF.cjs} +59 -59
  9. package/dist/{chunk-LOM3S64Z.cjs → chunk-6XCE2VLH.cjs} +8 -8
  10. package/dist/{chunk-B7AOUPBV.cjs → chunk-AXGTRPF6.cjs} +20 -20
  11. package/dist/{chunk-6T6O36LT.cjs → chunk-CEJDHCFZ.cjs} +89 -89
  12. package/dist/{chunk-2ANICXS7.cjs → chunk-E4LA4BEH.cjs} +21 -21
  13. package/dist/{chunk-JHQNUWFM.cjs → chunk-EQZXJUYV.cjs} +3 -3
  14. package/dist/{chunk-LU7TD6QS.cjs → chunk-FQSXZC2K.cjs} +3 -3
  15. package/dist/{chunk-GKRHGVB4.cjs → chunk-G5NCY5IE.cjs} +100 -100
  16. package/dist/{chunk-QU5K52OP.cjs → chunk-GY2JESOC.cjs} +2 -2
  17. package/dist/{chunk-LOFDIDSD.cjs → chunk-GZKWF6NH.cjs} +9 -9
  18. package/dist/{chunk-NOFJH7MA.cjs → chunk-IJMPXTGV.cjs} +14 -14
  19. package/dist/{chunk-4EM7HIIM.cjs → chunk-IUIDZS6W.cjs} +574 -567
  20. package/dist/{chunk-VAZTFCVY.cjs → chunk-J4P47JHM.cjs} +20 -20
  21. package/dist/{chunk-G6IK3HC5.cjs → chunk-LUNXHJ53.cjs} +32 -32
  22. package/dist/{chunk-WBOHLXFC.cjs → chunk-LVKUMVUJ.cjs} +2 -2
  23. package/dist/{chunk-L2IQESTQ.cjs → chunk-M7YZGRAV.cjs} +2 -2
  24. package/dist/{chunk-R34JD6NP.cjs → chunk-MWLD6NXV.cjs} +3 -3
  25. package/dist/{chunk-W2RM764D.cjs → chunk-NET74KSQ.cjs} +5 -4
  26. package/dist/{chunk-B27XV2TC.cjs → chunk-NS64LMVE.cjs} +10 -10
  27. package/dist/{chunk-OBXZDUC3.cjs → chunk-O2VRIGDI.cjs} +83 -83
  28. package/dist/{chunk-QYLIHZKZ.cjs → chunk-OJJ4RL2T.cjs} +4 -4
  29. package/dist/{chunk-F64VMOIB.cjs → chunk-PE26VSWT.cjs} +19 -19
  30. package/dist/{chunk-D252ICCO.cjs → chunk-QCO32MEE.cjs} +17 -17
  31. package/dist/{chunk-KTPR66EE.cjs → chunk-R3TWQ3ZJ.cjs} +10 -0
  32. package/dist/{chunk-VUSXDMCE.cjs → chunk-RM6AHNM4.cjs} +7 -7
  33. package/dist/{chunk-T4BBZ5ST.cjs → chunk-RO72PRQI.cjs} +2 -2
  34. package/dist/{chunk-H45OTVYI.cjs → chunk-SU3EXXVC.cjs} +22 -22
  35. package/dist/{chunk-WI2OTGKC.cjs → chunk-SVP6DJFL.cjs} +2 -2
  36. package/dist/{chunk-SUHPBFNU.cjs → chunk-TQPQKBBL.cjs} +242 -240
  37. package/dist/{chunk-5E6JHOGX.cjs → chunk-TSJUL6IH.cjs} +3 -3
  38. package/dist/{chunk-EMSOBT6R.cjs → chunk-UUBHKQOH.cjs} +6 -6
  39. package/dist/{chunk-VUWPLQBY.cjs → chunk-XCH7SPGI.cjs} +44 -44
  40. package/dist/{chunk-6M54EVOA.cjs → chunk-ZUF5WDGE.cjs} +28 -28
  41. package/dist/{cloud-tenants-BDGV4N2T.cjs → cloud-tenants-4AGSRBJ2.cjs} +22 -22
  42. package/dist/components/case-studies/index.cjs +36 -36
  43. package/dist/components/chat/index.cjs +15 -15
  44. package/dist/components/contact/index.cjs +23 -23
  45. package/dist/components/docs/index.cjs +26 -26
  46. package/dist/components/embeds/index.cjs +23 -23
  47. package/dist/components/faq/index.cjs +24 -24
  48. package/dist/components/features/index.cjs +24 -22
  49. package/dist/components/features/walkthrough-video.d.ts +7 -0
  50. package/dist/components/features/walkthrough-video.d.ts.map +1 -1
  51. package/dist/components/features/walkthrough-video.js +9 -1
  52. package/dist/components/help-center-pages/index.cjs +125 -125
  53. package/dist/components/index.cjs +85 -83
  54. package/dist/components/meeting-scheduler/index.cjs +77 -77
  55. package/dist/components/navigation/index.cjs +25 -25
  56. package/dist/components/onboarding-guides/index.cjs +25 -25
  57. package/dist/components/product-demo/index.cjs +9 -9
  58. package/dist/components/related-content/index.cjs +10 -10
  59. package/dist/components/tickets/index.cjs +28 -28
  60. package/dist/components/ui/index.cjs +22 -22
  61. package/dist/{devices-Q5YHMXGV.cjs → devices-FKRZIBJP.cjs} +23 -23
  62. package/dist/{embeddable-chat-ST5IR6VN.cjs → embeddable-chat-HWQSP3DY.cjs} +93 -93
  63. package/dist/hooks/index.cjs +8 -8
  64. package/dist/index.cjs +30 -28
  65. package/dist/{knowledge-UJTJT36J.cjs → knowledge-25CBYZ7E.cjs} +23 -23
  66. package/dist/{logs-WMNITBLM.cjs → logs-HQ7NDBVV.cjs} +30 -30
  67. package/dist/platform-domains.cjs +2 -0
  68. package/dist/platform-domains.d.ts.map +1 -1
  69. package/dist/platform-domains.js +2 -0
  70. package/dist/{policies-TRXVBOH7.cjs → policies-2RV2CQD3.cjs} +26 -26
  71. package/dist/{remote-session-SKNXYG6K.cjs → remote-session-F72S6I7J.cjs} +9 -9
  72. package/dist/{scripts-HECY7XDL.cjs → scripts-32EM4WDI.cjs} +29 -29
  73. package/dist/{software-update-NNFLEMYD.cjs → software-update-WVIARIUG.cjs} +26 -26
  74. package/dist/{tickets-board-B2FH7Z4B.cjs → tickets-board-4PBXPSGJ.cjs} +12 -12
  75. package/dist/types/platform.d.ts +1 -1
  76. package/dist/types/platform.d.ts.map +1 -1
  77. package/dist/utils/index.cjs +13 -0
  78. package/dist/utils/platform-config.d.ts.map +1 -1
  79. package/dist/utils/platform-config.js +1 -0
  80. package/dist/utils/platform-identity.cjs +10 -0
  81. package/dist/utils/platform-identity.d.ts +3 -2
  82. package/dist/utils/platform-identity.d.ts.map +1 -1
  83. package/dist/utils/platform-identity.js +10 -0
  84. package/package.json +1 -1
  85. package/src/components/features/walkthrough-video.tsx +17 -0
  86. package/src/platform-domains.ts +2 -0
  87. package/src/styles/README.md +1 -0
  88. package/src/styles/ods-colors.css +16 -0
  89. package/src/types/platform.ts +1 -0
  90. package/src/utils/platform-config.tsx +1 -0
  91. package/src/utils/platform-identity.ts +19 -2
@@ -15,26 +15,26 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
15
15
 
16
16
 
17
17
 
18
- var _chunk4EM7HIIMcjs = require('./chunk-4EM7HIIM.cjs');
19
- require('./chunk-2ANICXS7.cjs');
20
- require('./chunk-QU5K52OP.cjs');
18
+ var _chunkIUIDZS6Wcjs = require('./chunk-IUIDZS6W.cjs');
19
+ require('./chunk-E4LA4BEH.cjs');
20
+ require('./chunk-GY2JESOC.cjs');
21
21
 
22
22
 
23
- var _chunkAXBVN5SWcjs = require('./chunk-AXBVN5SW.cjs');
23
+ var _chunk2IFCRPNPcjs = require('./chunk-2IFCRPNP.cjs');
24
24
  require('./chunk-HQQE74RO.cjs');
25
25
  require('./chunk-DEY6XXGO.cjs');
26
- require('./chunk-VUWPLQBY.cjs');
27
- require('./chunk-LU7TD6QS.cjs');
26
+ require('./chunk-XCH7SPGI.cjs');
27
+ require('./chunk-FQSXZC2K.cjs');
28
28
  require('./chunk-24I6RFVU.cjs');
29
29
  require('./chunk-A6P6DHEZ.cjs');
30
30
  require('./chunk-MZ4KBSH7.cjs');
31
- require('./chunk-T4BBZ5ST.cjs');
31
+ require('./chunk-RO72PRQI.cjs');
32
32
  require('./chunk-YUMFVQIN.cjs');
33
- require('./chunk-6T6O36LT.cjs');
34
- require('./chunk-SUHPBFNU.cjs');
35
- require('./chunk-F64VMOIB.cjs');
33
+ require('./chunk-CEJDHCFZ.cjs');
34
+ require('./chunk-TQPQKBBL.cjs');
35
+ require('./chunk-PE26VSWT.cjs');
36
36
  require('./chunk-3RFQPQ7Z.cjs');
37
- require('./chunk-LOFDIDSD.cjs');
37
+ require('./chunk-GZKWF6NH.cjs');
38
38
  require('./chunk-EFTUFJS2.cjs');
39
39
  require('./chunk-ZOZR3QI2.cjs');
40
40
  require('./chunk-OMV5S5PI.cjs');
@@ -1824,20 +1824,20 @@ require('./chunk-LMBYZITR.cjs');
1824
1824
  require('./chunk-TMVC7S2R.cjs');
1825
1825
  require('./chunk-IYHH5EIO.cjs');
1826
1826
  require('./chunk-XIBCMGBW.cjs');
1827
- require('./chunk-W2RM764D.cjs');
1828
- require('./chunk-CSJO7ZGN.cjs');
1829
- require('./chunk-WI2OTGKC.cjs');
1827
+ require('./chunk-NET74KSQ.cjs');
1828
+ require('./chunk-3RYIF4OW.cjs');
1829
+ require('./chunk-SVP6DJFL.cjs');
1830
1830
  require('./chunk-JKX2C3I2.cjs');
1831
1831
  require('./chunk-7DNL734S.cjs');
1832
1832
  require('./chunk-WWUSFOJ7.cjs');
1833
1833
  require('./chunk-SKI6NKOE.cjs');
1834
1834
  require('./chunk-EWPR7662.cjs');
1835
- require('./chunk-B27XV2TC.cjs');
1836
- require('./chunk-7Z4EQOIX.cjs');
1837
- require('./chunk-QYLIHZKZ.cjs');
1835
+ require('./chunk-NS64LMVE.cjs');
1836
+ require('./chunk-22XAPV6N.cjs');
1837
+ require('./chunk-OJJ4RL2T.cjs');
1838
1838
  require('./chunk-63N4FN5V.cjs');
1839
- require('./chunk-L2IQESTQ.cjs');
1840
- require('./chunk-JHQNUWFM.cjs');
1839
+ require('./chunk-M7YZGRAV.cjs');
1840
+ require('./chunk-EQZXJUYV.cjs');
1841
1841
  require('./chunk-S5C3OZCO.cjs');
1842
1842
  require('./chunk-32ASZMTV.cjs');
1843
1843
  require('./chunk-OOYBIS7D.cjs');
@@ -1849,8 +1849,8 @@ require('./chunk-BLH2SFOO.cjs');
1849
1849
  require('./chunk-I5MSCD57.cjs');
1850
1850
  require('./chunk-ASMNNSUQ.cjs');
1851
1851
  require('./chunk-CW3ML76U.cjs');
1852
- require('./chunk-R34JD6NP.cjs');
1853
- require('./chunk-KTPR66EE.cjs');
1852
+ require('./chunk-MWLD6NXV.cjs');
1853
+ require('./chunk-R3TWQ3ZJ.cjs');
1854
1854
  require('./chunk-DGFDBPO7.cjs');
1855
1855
  require('./chunk-HOTM4UM6.cjs');
1856
1856
  require('./chunk-UJ7AXHRZ.cjs');
@@ -1922,14 +1922,14 @@ var noop = () => {
1922
1922
  var HIDDEN_WHEN_COMPACT = ["organization"];
1923
1923
  function StaticPackageField({ value }) {
1924
1924
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1925
- _chunkAXBVN5SWcjs.Autocomplete,
1925
+ _chunk2IFCRPNPcjs.Autocomplete,
1926
1926
  {
1927
- label: _chunk4EM7HIIMcjs.PACKAGE_SEARCH_LABEL,
1927
+ label: _chunkIUIDZS6Wcjs.PACKAGE_SEARCH_LABEL,
1928
1928
  labelVariant: "large",
1929
1929
  options: value ? [{ value: value.id, label: value.name, description: _nullishCoalesce(value.description, () => ( void 0)) }] : [],
1930
1930
  value: _nullishCoalesce(_optionalChain([value, 'optionalAccess', _ => _.id]), () => ( null)),
1931
1931
  onChange: noop,
1932
- placeholder: _chunk4EM7HIIMcjs.PACKAGE_SEARCH_PLACEHOLDER
1932
+ placeholder: _chunkIUIDZS6Wcjs.PACKAGE_SEARCH_PLACEHOLDER
1933
1933
  }
1934
1934
  );
1935
1935
  }
@@ -1943,7 +1943,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1943
1943
  [fixture.devices, fixture.selectedIds]
1944
1944
  );
1945
1945
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1946
- _chunk4EM7HIIMcjs.SoftwareActionForm,
1946
+ _chunkIUIDZS6Wcjs.SoftwareActionForm,
1947
1947
  {
1948
1948
  action: fixture.action,
1949
1949
  showHeader: false,
@@ -1955,7 +1955,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1955
1955
  initialValues: fixture.initialValues,
1956
1956
  renderPackageSearch,
1957
1957
  renderDevicePicker: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1958
- _chunk4EM7HIIMcjs.DeviceSelector,
1958
+ _chunkIUIDZS6Wcjs.DeviceSelector,
1959
1959
  {
1960
1960
  devices: selected,
1961
1961
  loading: false,
@@ -10,9 +10,9 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunk2ANICXS7cjs = require('./chunk-2ANICXS7.cjs');
14
- require('./chunk-LU7TD6QS.cjs');
15
- require('./chunk-F64VMOIB.cjs');
13
+ var _chunkE4LA4BEHcjs = require('./chunk-E4LA4BEH.cjs');
14
+ require('./chunk-FQSXZC2K.cjs');
15
+ require('./chunk-PE26VSWT.cjs');
16
16
  require('./chunk-EFTUFJS2.cjs');
17
17
  require('./chunk-ZOZR3QI2.cjs');
18
18
  require('./chunk-OMV5S5PI.cjs');
@@ -1802,11 +1802,11 @@ require('./chunk-LMBYZITR.cjs');
1802
1802
  require('./chunk-TMVC7S2R.cjs');
1803
1803
  require('./chunk-IYHH5EIO.cjs');
1804
1804
  require('./chunk-XIBCMGBW.cjs');
1805
- require('./chunk-WI2OTGKC.cjs');
1805
+ require('./chunk-SVP6DJFL.cjs');
1806
1806
  require('./chunk-WWUSFOJ7.cjs');
1807
1807
  require('./chunk-SKI6NKOE.cjs');
1808
- require('./chunk-QYLIHZKZ.cjs');
1809
- require('./chunk-JHQNUWFM.cjs');
1808
+ require('./chunk-OJJ4RL2T.cjs');
1809
+ require('./chunk-EQZXJUYV.cjs');
1810
1810
  require('./chunk-S5C3OZCO.cjs');
1811
1811
  require('./chunk-32ASZMTV.cjs');
1812
1812
  require('./chunk-OOYBIS7D.cjs');
@@ -1815,7 +1815,7 @@ require('./chunk-6VOOPMP5.cjs');
1815
1815
  require('./chunk-ORO54HDF.cjs');
1816
1816
  require('./chunk-RUHKTWGB.cjs');
1817
1817
  require('./chunk-ASMNNSUQ.cjs');
1818
- require('./chunk-KTPR66EE.cjs');
1818
+ require('./chunk-R3TWQ3ZJ.cjs');
1819
1819
  require('./chunk-DGFDBPO7.cjs');
1820
1820
  require('./chunk-HOTM4UM6.cjs');
1821
1821
  require('./chunk-AKK3EO37.cjs');
@@ -1840,7 +1840,7 @@ function buildTicketsBoardFixture(cast) {
1840
1840
  const dana = assignee(cast.person("dana"));
1841
1841
  const alex = assignee(cast.person("alex"));
1842
1842
  return [
1843
- _chunk2ANICXS7cjs.columnFromTicketStatus.call(void 0, "ACTIVE", [
1843
+ _chunkE4LA4BEHcjs.columnFromTicketStatus.call(void 0, "ACTIVE", [
1844
1844
  ticket("tk-1051", "Printer offline at the front desk", "ACTIVE", {
1845
1845
  ticketNumber: "1051",
1846
1846
  agent: "fae",
@@ -1858,7 +1858,7 @@ function buildTicketsBoardFixture(cast) {
1858
1858
  tags: ["onboarding"]
1859
1859
  })
1860
1860
  ]),
1861
- _chunk2ANICXS7cjs.columnFromTicketStatus.call(void 0, "TECH_REQUIRED", [
1861
+ _chunkE4LA4BEHcjs.columnFromTicketStatus.call(void 0, "TECH_REQUIRED", [
1862
1862
  ticket("tk-1049", "Acrobat Pro for Maya", "TECH_REQUIRED", {
1863
1863
  ticketNumber: "1049",
1864
1864
  agent: "fae",
@@ -1882,7 +1882,7 @@ function buildTicketsBoardFixture(cast) {
1882
1882
  escalatedByUser: true
1883
1883
  })
1884
1884
  ]),
1885
- _chunk2ANICXS7cjs.columnFromTicketStatus.call(void 0, "ON_HOLD", [
1885
+ _chunkE4LA4BEHcjs.columnFromTicketStatus.call(void 0, "ON_HOLD", [
1886
1886
  ticket("tk-1046", "Replace the conference room display", "ON_HOLD", {
1887
1887
  ticketNumber: "1046",
1888
1888
  organizationName: _chunkDKOLQPE7cjs.DEMO_ORGANIZATIONS.acme.name,
@@ -1891,7 +1891,7 @@ function buildTicketsBoardFixture(cast) {
1891
1891
  activity: { kind: "waiting-external" }
1892
1892
  })
1893
1893
  ]),
1894
- _chunk2ANICXS7cjs.columnFromTicketStatus.call(void 0,
1894
+ _chunkE4LA4BEHcjs.columnFromTicketStatus.call(void 0,
1895
1895
  "RESOLVED",
1896
1896
  [
1897
1897
  ticket("tk-1048", "Slow laptop", "RESOLVED", {
@@ -1927,7 +1927,7 @@ function TicketsBoardScreen({ compact = false }) {
1927
1927
  const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1928
1928
  const board = _react.useMemo.call(void 0, () => buildTicketsBoardFixture(cast), [cast]);
1929
1929
  const columns = compact ? board.filter((column) => column.id !== "ON_HOLD") : board;
1930
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2ANICXS7cjs.Board, { columns, onChange: noop, initialCollapsed: compact ? void 0 : FOLDED }) });
1930
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg p-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE4LA4BEHcjs.Board, { columns, onChange: noop, initialCollapsed: compact ? void 0 : FOLDED }) });
1931
1931
  }
1932
1932
 
1933
1933
 
@@ -1,4 +1,4 @@
1
- export type PlatformName = 'openmsp' | 'tmcg' | 'flamingo' | 'universal' | 'marketing-hub' | 'product-hub' | 'revenue-hub' | 'people-hub' | 'openframe' | 'company-hub' | 'mlg';
1
+ export type PlatformName = 'openmsp' | 'tmcg' | 'flamingo' | 'universal' | 'marketing-hub' | 'product-hub' | 'revenue-hub' | 'people-hub' | 'coding-hub' | 'openframe' | 'company-hub' | 'mlg';
2
2
  /**
3
3
  * Every platform that is a deployable app type (i.e. a `NEXT_PUBLIC_APP_TYPE` value).
4
4
  * `universal` is a content scope, never a deployment, so it is excluded.
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/types/platform.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,eAAe,GACf,aAAa,GACb,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,GACb,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAGjE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IAGrB,kBAAkB,EAAE,OAAO,CAAC;IAG5B,eAAe,EAAE,OAAO,CAAC;IAOzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,KAAK,CAAC;AAGlD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/types/platform.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,eAAe,GACf,aAAa,GACb,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,aAAa,GACb,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAGjE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IAGrB,kBAAkB,EAAE,OAAO,CAAC;IAG5B,eAAe,EAAE,OAAO,CAAC;IAOzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8BAA8B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,KAAK,CAAC;AAGlD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -79975,6 +79975,7 @@ var PLATFORM_DOMAINS = [
79975
79975
  { key: "product-hub", defaultUrl: "https://product-hub.flamingo.so", envVar: "NEXT_PUBLIC_PRODUCT_HUB_URL" },
79976
79976
  { key: "revenue-hub", defaultUrl: "https://revenue-hub.flamingo.so", envVar: "NEXT_PUBLIC_REVENUE_HUB_URL" },
79977
79977
  { key: "people-hub", defaultUrl: "https://people-hub.flamingo.so", envVar: "NEXT_PUBLIC_PEOPLE_HUB_URL" },
79978
+ { key: "coding-hub", defaultUrl: "https://coding-hub.flamingo.so", envVar: "NEXT_PUBLIC_CODING_HUB_URL" },
79978
79979
  { key: "openmsp", defaultUrl: "https://www.openmsp.ai", envVar: "NEXT_PUBLIC_OPENMSP_URL" },
79979
79980
  // ORDERING INVARIANT (first-wins, load-bearing): `flamingo` MUST precede `universal`.
79980
79981
  // Both resolve to www.flamingo.run; the reverse index is first-wins → flamingo claims the shared host,
@@ -80008,6 +80009,7 @@ var ENV_OVERRIDES = {
80008
80009
  NEXT_PUBLIC_PRODUCT_HUB_URL: process.env.NEXT_PUBLIC_PRODUCT_HUB_URL,
80009
80010
  NEXT_PUBLIC_REVENUE_HUB_URL: process.env.NEXT_PUBLIC_REVENUE_HUB_URL,
80010
80011
  NEXT_PUBLIC_PEOPLE_HUB_URL: process.env.NEXT_PUBLIC_PEOPLE_HUB_URL,
80012
+ NEXT_PUBLIC_CODING_HUB_URL: process.env.NEXT_PUBLIC_CODING_HUB_URL,
80011
80013
  NEXT_PUBLIC_OPENMSP_URL: process.env.NEXT_PUBLIC_OPENMSP_URL,
80012
80014
  NEXT_PUBLIC_FLAMINGO_URL: process.env.NEXT_PUBLIC_FLAMINGO_URL,
80013
80015
  NEXT_PUBLIC_TMCG_URL: process.env.NEXT_PUBLIC_TMCG_URL,
@@ -80975,6 +80977,7 @@ var platformDisplayNames = {
80975
80977
  "product-hub": "Flamingo Product Hub",
80976
80978
  "revenue-hub": "Flamingo Revenue Hub",
80977
80979
  "people-hub": "Flamingo People Hub",
80980
+ "coding-hub": "Flamingo Coding Hub",
80978
80981
  "company-hub": "Flamingo Company Hub",
80979
80982
  tmcg: "TMCG",
80980
80983
  mlg: "Major League GitHub",
@@ -81018,6 +81021,7 @@ var ODS_STEM_TOKENS = {
81018
81021
  success: "attention-green-success",
81019
81022
  warning: "attention-yellow-warning",
81020
81023
  error: "attention-red-error",
81024
+ "text-primary": "system-greys-white",
81021
81025
  "text-secondary": "system-greys-grey"
81022
81026
  };
81023
81027
  var ODS_STEM_CLASSES = {
@@ -81057,6 +81061,12 @@ var ODS_STEM_CLASSES = {
81057
81061
  bgSoft: "bg-ods-error/10",
81058
81062
  borderSoft: "border-ods-error/30"
81059
81063
  },
81064
+ "text-primary": {
81065
+ text: "text-ods-text-primary",
81066
+ bg: "bg-ods-text-primary",
81067
+ bgSoft: "bg-ods-text-primary/10",
81068
+ borderSoft: "border-ods-text-primary/30"
81069
+ },
81060
81070
  "text-secondary": {
81061
81071
  text: "text-ods-text-secondary",
81062
81072
  bg: "bg-ods-text-secondary",
@@ -81080,6 +81090,7 @@ var PLATFORM_BRAND = {
81080
81090
  "product-hub": { accentStem: "success", secondaryStem: "success" },
81081
81091
  "revenue-hub": { accentStem: "warning", secondaryStem: "warning" },
81082
81092
  "people-hub": { accentStem: "flamingo-cyan", secondaryStem: "flamingo-cyan" },
81093
+ "coding-hub": { accentStem: "text-primary", secondaryStem: "text-primary" },
81083
81094
  "company-hub": { accentStem: "error", secondaryStem: "error" },
81084
81095
  mlg: { accentStem: "flamingo-pink", secondaryStem: "flamingo-cyan" },
81085
81096
  universal: { accentStem: "text-secondary", secondaryStem: "text-secondary" }
@@ -81132,6 +81143,7 @@ var platformHexColors = {
81132
81143
  "product-hub": "#5ea62e",
81133
81144
  "revenue-hub": "#e1b32f",
81134
81145
  "people-hub": "#5efaf0",
81146
+ "coding-hub": "#fafafa",
81135
81147
  "company-hub": "#f36666",
81136
81148
  tmcg: "#f357bb",
81137
81149
  mlg: "#f357bb"
@@ -81496,6 +81508,7 @@ var platformIcons = {
81496
81508
  "product-hub": renderPlatformIcon("product-hub", "h-5 w-5"),
81497
81509
  "revenue-hub": renderPlatformIcon("revenue-hub", "h-5 w-5"),
81498
81510
  "people-hub": renderPlatformIcon("people-hub", "h-5 w-5"),
81511
+ "coding-hub": renderPlatformIcon("coding-hub", "h-5 w-5"),
81499
81512
  "company-hub": renderPlatformIcon("company-hub", "h-5 w-5"),
81500
81513
  tmcg: renderPlatformIcon("tmcg", "h-5 w-5"),
81501
81514
  mlg: renderPlatformIcon("mlg", "h-5 w-5"),
@@ -1 +1 @@
1
- {"version":3,"file":"platform-config.d.ts","sourceRoot":"","sources":["../../src/utils/platform-config.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgBtE,4EAA4E;AAC5E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAY/D,CAAC;AAIF,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,iCAAiC,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE,CASvG;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAErE;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAE1E;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,KAAK,CAAC,SAAS,CAE7G"}
1
+ {"version":3,"file":"platform-config.d.ts","sourceRoot":"","sources":["../../src/utils/platform-config.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgBtE,4EAA4E;AAC5E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAa/D,CAAC;AAIF,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,iCAAiC,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE,CASvG;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAErE;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAE1E;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,KAAK,CAAC,SAAS,CAE7G"}
@@ -16,6 +16,7 @@ const platformIcons = {
16
16
  "product-hub": renderPlatformIcon("product-hub", "h-5 w-5"),
17
17
  "revenue-hub": renderPlatformIcon("revenue-hub", "h-5 w-5"),
18
18
  "people-hub": renderPlatformIcon("people-hub", "h-5 w-5"),
19
+ "coding-hub": renderPlatformIcon("coding-hub", "h-5 w-5"),
19
20
  "company-hub": renderPlatformIcon("company-hub", "h-5 w-5"),
20
21
  tmcg: renderPlatformIcon("tmcg", "h-5 w-5"),
21
22
  mlg: renderPlatformIcon("mlg", "h-5 w-5"),
@@ -9,6 +9,7 @@ var platformDisplayNames = {
9
9
  "product-hub": "Flamingo Product Hub",
10
10
  "revenue-hub": "Flamingo Revenue Hub",
11
11
  "people-hub": "Flamingo People Hub",
12
+ "coding-hub": "Flamingo Coding Hub",
12
13
  "company-hub": "Flamingo Company Hub",
13
14
  tmcg: "TMCG",
14
15
  mlg: "Major League GitHub",
@@ -52,6 +53,7 @@ var ODS_STEM_TOKENS = {
52
53
  success: "attention-green-success",
53
54
  warning: "attention-yellow-warning",
54
55
  error: "attention-red-error",
56
+ "text-primary": "system-greys-white",
55
57
  "text-secondary": "system-greys-grey"
56
58
  };
57
59
  var ODS_STEM_CLASSES = {
@@ -91,6 +93,12 @@ var ODS_STEM_CLASSES = {
91
93
  bgSoft: "bg-ods-error/10",
92
94
  borderSoft: "border-ods-error/30"
93
95
  },
96
+ "text-primary": {
97
+ text: "text-ods-text-primary",
98
+ bg: "bg-ods-text-primary",
99
+ bgSoft: "bg-ods-text-primary/10",
100
+ borderSoft: "border-ods-text-primary/30"
101
+ },
94
102
  "text-secondary": {
95
103
  text: "text-ods-text-secondary",
96
104
  bg: "bg-ods-text-secondary",
@@ -114,6 +122,7 @@ var PLATFORM_BRAND = {
114
122
  "product-hub": { accentStem: "success", secondaryStem: "success" },
115
123
  "revenue-hub": { accentStem: "warning", secondaryStem: "warning" },
116
124
  "people-hub": { accentStem: "flamingo-cyan", secondaryStem: "flamingo-cyan" },
125
+ "coding-hub": { accentStem: "text-primary", secondaryStem: "text-primary" },
117
126
  "company-hub": { accentStem: "error", secondaryStem: "error" },
118
127
  mlg: { accentStem: "flamingo-pink", secondaryStem: "flamingo-cyan" },
119
128
  universal: { accentStem: "text-secondary", secondaryStem: "text-secondary" }
@@ -166,6 +175,7 @@ var platformHexColors = {
166
175
  "product-hub": "#5ea62e",
167
176
  "revenue-hub": "#e1b32f",
168
177
  "people-hub": "#5efaf0",
178
+ "coding-hub": "#fafafa",
169
179
  "company-hub": "#f36666",
170
180
  tmcg: "#f357bb",
171
181
  mlg: "#f357bb"
@@ -27,6 +27,7 @@ export declare const platformDisplayNames: {
27
27
  'product-hub': string;
28
28
  'revenue-hub': string;
29
29
  'people-hub': string;
30
+ 'coding-hub': string;
30
31
  'company-hub': string;
31
32
  tmcg: string;
32
33
  mlg: string;
@@ -59,10 +60,10 @@ export declare function getPlatformShortName(platformName: string): string;
59
60
  export declare function getPlatformDescription(platformName: string): string;
60
61
  export declare function getPlatformSlogan(platformName: string): string;
61
62
  /**
62
- * The six brand/attention colours (plus the neutral) a platform may adopt, named
63
+ * The six brand/attention colours (plus the two neutrals) a platform may adopt, named
63
64
  * by STEM rather than by token so the token spelling has exactly one home below.
64
65
  */
65
- export type OdsColorStem = 'flamingo-pink' | 'flamingo-cyan' | 'open-yellow' | 'success' | 'warning' | 'error' | 'text-secondary';
66
+ export type OdsColorStem = 'flamingo-pink' | 'flamingo-cyan' | 'open-yellow' | 'success' | 'warning' | 'error' | 'text-primary' | 'text-secondary';
66
67
  /** Stem → ODS token name (without the `--ods-` prefix). THE token spelling. */
67
68
  export declare const ODS_STEM_TOKENS: Record<OdsColorStem, string>;
68
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"platform-identity.d.ts","sourceRoot":"","sources":["../../src/utils/platform-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-identity.d.ts","sourceRoot":"","sources":["../../src/utils/platform-identity.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const platformDisplayNames = {
6
6
  "product-hub": "Flamingo Product Hub",
7
7
  "revenue-hub": "Flamingo Revenue Hub",
8
8
  "people-hub": "Flamingo People Hub",
9
+ "coding-hub": "Flamingo Coding Hub",
9
10
  "company-hub": "Flamingo Company Hub",
10
11
  tmcg: "TMCG",
11
12
  mlg: "Major League GitHub",
@@ -49,6 +50,7 @@ const ODS_STEM_TOKENS = {
49
50
  success: "attention-green-success",
50
51
  warning: "attention-yellow-warning",
51
52
  error: "attention-red-error",
53
+ "text-primary": "system-greys-white",
52
54
  "text-secondary": "system-greys-grey"
53
55
  };
54
56
  const ODS_STEM_CLASSES = {
@@ -88,6 +90,12 @@ const ODS_STEM_CLASSES = {
88
90
  bgSoft: "bg-ods-error/10",
89
91
  borderSoft: "border-ods-error/30"
90
92
  },
93
+ "text-primary": {
94
+ text: "text-ods-text-primary",
95
+ bg: "bg-ods-text-primary",
96
+ bgSoft: "bg-ods-text-primary/10",
97
+ borderSoft: "border-ods-text-primary/30"
98
+ },
91
99
  "text-secondary": {
92
100
  text: "text-ods-text-secondary",
93
101
  bg: "bg-ods-text-secondary",
@@ -111,6 +119,7 @@ const PLATFORM_BRAND = {
111
119
  "product-hub": { accentStem: "success", secondaryStem: "success" },
112
120
  "revenue-hub": { accentStem: "warning", secondaryStem: "warning" },
113
121
  "people-hub": { accentStem: "flamingo-cyan", secondaryStem: "flamingo-cyan" },
122
+ "coding-hub": { accentStem: "text-primary", secondaryStem: "text-primary" },
114
123
  "company-hub": { accentStem: "error", secondaryStem: "error" },
115
124
  mlg: { accentStem: "flamingo-pink", secondaryStem: "flamingo-cyan" },
116
125
  universal: { accentStem: "text-secondary", secondaryStem: "text-secondary" }
@@ -163,6 +172,7 @@ const platformHexColors = {
163
172
  "product-hub": "#5ea62e",
164
173
  "revenue-hub": "#e1b32f",
165
174
  "people-hub": "#5efaf0",
175
+ "coding-hub": "#fafafa",
166
176
  "company-hub": "#f36666",
167
177
  tmcg: "#f357bb",
168
178
  mlg: "#f357bb"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flamingo-stack/openframe-frontend-core",
3
- "version": "0.0.761",
3
+ "version": "0.0.763",
4
4
  "description": "Shared design system and components for all Flamingo platforms",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -79,6 +79,7 @@ import { VolumeXmarkIcon } from '../icons-v2-generated/audio-and-visual/volume-x
79
79
  import { PauseIcon } from '../icons-v2-generated/media-playback/pause-icon';
80
80
  import { PlayIcon } from '../icons-v2-generated/media-playback/play-icon';
81
81
  import { XmarkIcon } from '../icons-v2-generated/signs-and-symbols/xmark-icon';
82
+ import { UnifiedSkeleton } from '../loading/unified-skeleton';
82
83
  import { Button } from '../ui/button';
83
84
  import { DialogPortal, DialogOverlay } from '../ui/dialog';
84
85
  import { SquareAvatar } from '../ui/square-avatar';
@@ -87,6 +88,10 @@ import { Video, type VideoPlayerHandle, type VideoMutedFallbackState } from './v
87
88
  import { VideoPlayBadge, VideoUnmuteGlyph } from './video-center-badge';
88
89
  import { VideoHoverPreviewSurface } from './video-hover-preview';
89
90
 
91
+ /** The inline card's box: 16:9 across the host's width, rounded and bordered. ONE string, read by the card and
92
+ * its skeleton, so the page keeps the same height before and after the player mounts. */
93
+ const INLINE_CARD_BOX_CLASS = 'aspect-video w-full rounded-md border border-ods-border';
94
+
90
95
  /** Wire-shape data for the widget. Kept as the shared contract the hub DAL
91
96
  * re-exports as `PublicWalkthroughVideo & { id }`. `mainVideoUrl`/`youtubeUrl`
92
97
  * stay SEPARATE — YouTube wins when both are set (card matches theater). */
@@ -967,6 +972,7 @@ function WalkthroughVideo({
967
972
  // receives pointer events — the media layer is pointer-events-none, so
968
973
  // a group inside it can never match :hover.
969
974
  'group/card pointer-events-auto relative overflow-hidden rounded-md border border-ods-border bg-ods-card',
975
+ inline && INLINE_CARD_BOX_CLASS,
970
976
  // The lift is what separates a FLOATING card from the page beneath it;
971
977
  // an in-flow block sitting inside a host card needs no shadow at all.
972
978
  !inline && 'shadow-2xl',
@@ -1195,6 +1201,9 @@ function WalkthroughVideo({
1195
1201
 
1196
1202
  return (
1197
1203
  <>
1204
+ {/* Inline, the card mounts after hydration: until then its skeleton holds the same box, so the page below
1205
+ does not jump when the player appears. A floating card is an overlay and takes no space. */}
1206
+ {inline && !showCard && !dismissed && <InlineWalkthroughVideoSkeleton className={className} />}
1198
1207
  {showCard &&
1199
1208
  (inline ? (
1200
1209
  // No wrapper: a positioning / z-index / safe-area shell around an
@@ -1314,3 +1323,11 @@ export function FloatingWalkthroughVideo(props: FloatingWalkthroughVideoProps):
1314
1323
  export function InlineWalkthroughVideo(props: InlineWalkthroughVideoProps): React.ReactElement {
1315
1324
  return <WalkthroughVideo {...props} placement="inline" appearDelayMs={0} dismissal={false} />;
1316
1325
  }
1326
+
1327
+ /**
1328
+ * The inline video's loading state: the shared skeleton in the card's own box. The inline card draws it itself
1329
+ * until its player mounts; a host whose video data is still loading draws it in the same slot.
1330
+ */
1331
+ export function InlineWalkthroughVideoSkeleton({ className }: { className?: string }): React.ReactElement {
1332
+ return <UnifiedSkeleton className={cn(INLINE_CARD_BOX_CLASS, className)} />;
1333
+ }
@@ -38,6 +38,7 @@ export const PLATFORM_DOMAINS: readonly PlatformDomainEntry[] = [
38
38
  { key: 'product-hub', defaultUrl: 'https://product-hub.flamingo.so', envVar: 'NEXT_PUBLIC_PRODUCT_HUB_URL' },
39
39
  { key: 'revenue-hub', defaultUrl: 'https://revenue-hub.flamingo.so', envVar: 'NEXT_PUBLIC_REVENUE_HUB_URL' },
40
40
  { key: 'people-hub', defaultUrl: 'https://people-hub.flamingo.so', envVar: 'NEXT_PUBLIC_PEOPLE_HUB_URL' },
41
+ { key: 'coding-hub', defaultUrl: 'https://coding-hub.flamingo.so', envVar: 'NEXT_PUBLIC_CODING_HUB_URL' },
41
42
  { key: 'openmsp', defaultUrl: 'https://www.openmsp.ai', envVar: 'NEXT_PUBLIC_OPENMSP_URL' },
42
43
  // ORDERING INVARIANT (first-wins, load-bearing): `flamingo` MUST precede `universal`.
43
44
  // Both resolve to www.flamingo.run; the reverse index is first-wins → flamingo claims the shared host,
@@ -86,6 +87,7 @@ const ENV_OVERRIDES = {
86
87
  NEXT_PUBLIC_PRODUCT_HUB_URL: process.env.NEXT_PUBLIC_PRODUCT_HUB_URL,
87
88
  NEXT_PUBLIC_REVENUE_HUB_URL: process.env.NEXT_PUBLIC_REVENUE_HUB_URL,
88
89
  NEXT_PUBLIC_PEOPLE_HUB_URL: process.env.NEXT_PUBLIC_PEOPLE_HUB_URL,
90
+ NEXT_PUBLIC_CODING_HUB_URL: process.env.NEXT_PUBLIC_CODING_HUB_URL,
89
91
  NEXT_PUBLIC_OPENMSP_URL: process.env.NEXT_PUBLIC_OPENMSP_URL,
90
92
  NEXT_PUBLIC_FLAMINGO_URL: process.env.NEXT_PUBLIC_FLAMINGO_URL,
91
93
  NEXT_PUBLIC_TMCG_URL: process.env.NEXT_PUBLIC_TMCG_URL,
@@ -167,6 +167,7 @@ Platforms set **brand accent + link colors only** (and a couple of intentional b
167
167
  | `product-hub` | Green `--ods-attention-green-success` | |
168
168
  | `revenue-hub` | Yellow-warning `--ods-attention-yellow-warning` | |
169
169
  | `people-hub` | Cyan `--ods-flamingo-cyan-base` | |
170
+ | `coding-hub` | White `--ods-system-greys-white` | Black secondary; mark is white on black |
170
171
  | `company-hub` | Red `--ods-attention-red-error` | |
171
172
 
172
173
  Adding a new platform = add one `[data-app-type="…"]` block in `ods-colors.css`. Because the block references `--ods-*` primitives (not raw hex), the new platform inherits dark/light flipping for free.
@@ -600,6 +600,22 @@
600
600
  --ods-accent: var(--ods-flamingo-cyan-base);
601
601
  }
602
602
 
603
+ [data-app-type='coding-hub'] {
604
+ --color-accent-primary: var(--ods-system-greys-white);
605
+ --color-accent-hover: var(--ods-system-greys-white-hover);
606
+ --color-accent-active: var(--ods-system-greys-white-action);
607
+ --color-accent-secondary: var(--ods-system-greys-black);
608
+ --color-accent-secondary-hover: var(--ods-system-greys-black-hover);
609
+ --color-accent-secondary-active: var(--ods-system-greys-black-action);
610
+ --color-accent-focus: var(--ods-system-greys-white);
611
+ --color-focus-ring: var(--ods-system-greys-white);
612
+ --color-focus-visible: var(--ods-system-greys-white);
613
+ --color-link: var(--ods-system-greys-white);
614
+ --color-link-hover: var(--ods-system-greys-white-hover);
615
+ --ods-current: var(--ods-system-greys-white);
616
+ --ods-accent: var(--ods-system-greys-white);
617
+ }
618
+
603
619
  [data-app-type='company-hub'] {
604
620
  --color-accent-primary: var(--ods-attention-red-error);
605
621
  --color-accent-hover: var(--ods-attention-red-error-hover);
@@ -10,6 +10,7 @@ export type PlatformName =
10
10
  | 'product-hub'
11
11
  | 'revenue-hub'
12
12
  | 'people-hub'
13
+ | 'coding-hub'
13
14
  | 'openframe'
14
15
  | 'company-hub'
15
16
  | 'mlg';
@@ -27,6 +27,7 @@ export const platformIcons: Record<PlatformName, React.ReactNode> = {
27
27
  'product-hub': renderPlatformIcon('product-hub', 'h-5 w-5'),
28
28
  'revenue-hub': renderPlatformIcon('revenue-hub', 'h-5 w-5'),
29
29
  'people-hub': renderPlatformIcon('people-hub', 'h-5 w-5'),
30
+ 'coding-hub': renderPlatformIcon('coding-hub', 'h-5 w-5'),
30
31
  'company-hub': renderPlatformIcon('company-hub', 'h-5 w-5'),
31
32
  tmcg: renderPlatformIcon('tmcg', 'h-5 w-5'),
32
33
  mlg: renderPlatformIcon('mlg', 'h-5 w-5'),
@@ -31,6 +31,7 @@ export const platformDisplayNames = {
31
31
  'product-hub': 'Flamingo Product Hub',
32
32
  'revenue-hub': 'Flamingo Revenue Hub',
33
33
  'people-hub': 'Flamingo People Hub',
34
+ 'coding-hub': 'Flamingo Coding Hub',
34
35
  'company-hub': 'Flamingo Company Hub',
35
36
  tmcg: 'TMCG',
36
37
  mlg: 'Major League GitHub',
@@ -85,11 +86,18 @@ export function getPlatformSlogan(platformName: string): string {
85
86
  // ── Colour stems ────────────────────────────────────────────────────────────
86
87
 
87
88
  /**
88
- * The six brand/attention colours (plus the neutral) a platform may adopt, named
89
+ * The six brand/attention colours (plus the two neutrals) a platform may adopt, named
89
90
  * by STEM rather than by token so the token spelling has exactly one home below.
90
91
  */
91
92
  export type OdsColorStem =
92
- 'flamingo-pink' | 'flamingo-cyan' | 'open-yellow' | 'success' | 'warning' | 'error' | 'text-secondary';
93
+ | 'flamingo-pink'
94
+ | 'flamingo-cyan'
95
+ | 'open-yellow'
96
+ | 'success'
97
+ | 'warning'
98
+ | 'error'
99
+ | 'text-primary'
100
+ | 'text-secondary';
93
101
 
94
102
  /** Stem → ODS token name (without the `--ods-` prefix). THE token spelling. */
95
103
  export const ODS_STEM_TOKENS: Record<OdsColorStem, string> = {
@@ -99,6 +107,7 @@ export const ODS_STEM_TOKENS: Record<OdsColorStem, string> = {
99
107
  success: 'attention-green-success',
100
108
  warning: 'attention-yellow-warning',
101
109
  error: 'attention-red-error',
110
+ 'text-primary': 'system-greys-white',
102
111
  'text-secondary': 'system-greys-grey',
103
112
  };
104
113
 
@@ -145,6 +154,12 @@ export const ODS_STEM_CLASSES: Record<OdsColorStem, { text: string; bg: string;
145
154
  bgSoft: 'bg-ods-error/10',
146
155
  borderSoft: 'border-ods-error/30',
147
156
  },
157
+ 'text-primary': {
158
+ text: 'text-ods-text-primary',
159
+ bg: 'bg-ods-text-primary',
160
+ bgSoft: 'bg-ods-text-primary/10',
161
+ borderSoft: 'border-ods-text-primary/30',
162
+ },
148
163
  'text-secondary': {
149
164
  text: 'text-ods-text-secondary',
150
165
  bg: 'bg-ods-text-secondary',
@@ -194,6 +209,7 @@ export const PLATFORM_BRAND: Record<PlatformName, PlatformBrand> = {
194
209
  'product-hub': { accentStem: 'success', secondaryStem: 'success' },
195
210
  'revenue-hub': { accentStem: 'warning', secondaryStem: 'warning' },
196
211
  'people-hub': { accentStem: 'flamingo-cyan', secondaryStem: 'flamingo-cyan' },
212
+ 'coding-hub': { accentStem: 'text-primary', secondaryStem: 'text-primary' },
197
213
  'company-hub': { accentStem: 'error', secondaryStem: 'error' },
198
214
  mlg: { accentStem: 'flamingo-pink', secondaryStem: 'flamingo-cyan' },
199
215
  universal: { accentStem: 'text-secondary', secondaryStem: 'text-secondary' },
@@ -276,6 +292,7 @@ export const platformHexColors: Record<PlatformName, string> = {
276
292
  'product-hub': '#5ea62e',
277
293
  'revenue-hub': '#e1b32f',
278
294
  'people-hub': '#5efaf0',
295
+ 'coding-hub': '#fafafa',
279
296
  'company-hub': '#f36666',
280
297
  tmcg: '#f357bb',
281
298
  mlg: '#f357bb',