@flamingo-stack/openframe-frontend-core 0.0.770 → 0.0.772

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 (168) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-C66DWLCR.cjs → chunk-2MAENZL3.cjs} +37 -37
  3. package/dist/{chunk-2MND64QJ.cjs → chunk-5HBGBLJT.cjs} +50 -63
  4. package/dist/{chunk-4EJU462O.cjs → chunk-5V7BIUGA.cjs} +2 -2
  5. package/dist/{chunk-HK6UQVOI.cjs → chunk-7FYOVKQD.cjs} +12 -12
  6. package/dist/{chunk-MYA6NR2C.cjs → chunk-CTRJNTYU.cjs} +2 -2
  7. package/dist/{chunk-S5EUREOB.cjs → chunk-E25TJPWV.cjs} +3 -3
  8. package/dist/{chunk-HQF62LAU.cjs → chunk-FPCGKH5K.cjs} +28 -28
  9. package/dist/{chunk-VATCQOVC.cjs → chunk-FT5NPAZY.cjs} +17 -17
  10. package/dist/{chunk-I2TSCJT2.cjs → chunk-HFNWBNLE.cjs} +4 -4
  11. package/dist/{chunk-MFRIFVDV.cjs → chunk-IHCHU355.cjs} +41 -41
  12. package/dist/{chunk-NZELWPKO.cjs → chunk-ILZEXCJH.cjs} +98 -98
  13. package/dist/{chunk-DCBZMWLY.cjs → chunk-J5ZNEAGY.cjs} +24 -24
  14. package/dist/{chunk-BLTNKLAX.cjs → chunk-JJNOAYD4.cjs} +4 -4
  15. package/dist/{chunk-QS4G7CHU.cjs → chunk-KSCEAIBS.cjs} +2 -2
  16. package/dist/{chunk-Q575DR36.cjs → chunk-QOEOY7BJ.cjs} +33 -33
  17. package/dist/{chunk-SL7KFZWJ.cjs → chunk-QPK2433W.cjs} +24 -24
  18. package/dist/{chunk-VL44GB2I.cjs → chunk-REFL3YNE.cjs} +13 -13
  19. package/dist/{chunk-37XVY2RE.cjs → chunk-S3NEBAKD.cjs} +6 -6
  20. package/dist/{chunk-TBKXXMBU.cjs → chunk-UR3I3J5K.cjs} +90 -86
  21. package/dist/{chunk-MZLWB5AH.cjs → chunk-V3W56L2D.cjs} +18 -9
  22. package/dist/{chunk-4BRO3RZ6.cjs → chunk-VZAOLKKF.cjs} +72 -80
  23. package/dist/{chunk-QMUKTHWM.cjs → chunk-W5LX7DFB.cjs} +3 -3
  24. package/dist/{chunk-ZVNL5OK6.cjs → chunk-X5Z4HRH7.cjs} +2 -2
  25. package/dist/{chunk-WUYL4BMD.cjs → chunk-YI3CDGKM.cjs} +70 -70
  26. package/dist/{chunk-BZLHU4EK.cjs → chunk-ZVKJKWAB.cjs} +713 -695
  27. package/dist/{chunk-QSLKTDZ4.cjs → chunk-ZYGC2A7G.cjs} +4 -4
  28. package/dist/{cloud-tenants-IAZQL2JF.cjs → cloud-tenants-CUNC5KBD.cjs} +8 -8
  29. package/dist/components/case-studies/index.cjs +32 -30
  30. package/dist/components/case-studies/quote-cards-strip.d.ts +7 -2
  31. package/dist/components/case-studies/quote-cards-strip.d.ts.map +1 -1
  32. package/dist/components/case-studies/quote-cards-strip.js +7 -5
  33. package/dist/components/categories-cart.d.ts +9 -2
  34. package/dist/components/categories-cart.d.ts.map +1 -1
  35. package/dist/components/categories-cart.js +9 -4
  36. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts +5 -1
  37. package/dist/components/chat/entity-cards/admin-content-card-grid.d.ts.map +1 -1
  38. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  39. package/dist/components/chat/entity-cards/program-card.js +2 -2
  40. package/dist/components/chat/index.cjs +5 -5
  41. package/dist/components/contact/index.cjs +9 -9
  42. package/dist/components/docs/index.cjs +12 -12
  43. package/dist/components/embeds/index.cjs +9 -9
  44. package/dist/components/faq/faq-section.d.ts +7 -4
  45. package/dist/components/faq/faq-section.d.ts.map +1 -1
  46. package/dist/components/faq/index.cjs +10 -10
  47. package/dist/components/faq-accordion.d.ts +2 -4
  48. package/dist/components/faq-accordion.d.ts.map +1 -1
  49. package/dist/components/features/capability-explorer.d.ts +8 -2
  50. package/dist/components/features/capability-explorer.d.ts.map +1 -1
  51. package/dist/components/features/capability-explorer.js +7 -3
  52. package/dist/components/features/cards-strip.d.ts +2 -2
  53. package/dist/components/features/index.cjs +8 -8
  54. package/dist/components/features/model-token-rates.js +2 -2
  55. package/dist/components/features/remote-session/remote-desktop-chat-panel.js +2 -2
  56. package/dist/components/help-center-pages/index.cjs +94 -103
  57. package/dist/components/help-center-pages/trust-center-page.d.ts +1 -1
  58. package/dist/components/help-center-pages/trust-center-sections.d.ts +7 -4
  59. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  60. package/dist/components/help-center-pages/trust-center-sections.js +5 -14
  61. package/dist/components/index.cjs +66 -61
  62. package/dist/components/logs-list.d.ts.map +1 -1
  63. package/dist/components/logs-list.js +3 -2
  64. package/dist/components/meeting-scheduler/index.cjs +47 -47
  65. package/dist/components/navigation/index.cjs +11 -11
  66. package/dist/components/navigation/multi-level-navigation.d.ts +6 -7
  67. package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
  68. package/dist/components/onboarding-guides/index.cjs +11 -11
  69. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts +5 -5
  70. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.d.ts.map +1 -1
  71. package/dist/components/onboarding-guides/onboarding-guides-catalog-skeleton.js +3 -3
  72. package/dist/components/product-demo/index.cjs +18 -18
  73. package/dist/components/related-content/index.cjs +5 -5
  74. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  75. package/dist/components/related-content/related-content-section.js +4 -17
  76. package/dist/components/shared/dev-section/dev-card-row.d.ts +3 -3
  77. package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
  78. package/dist/components/shared/product-release/release-detail-page.js +2 -2
  79. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +6 -1
  80. package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -1
  81. package/dist/components/shared/roadmap/roadmap-grid-skeleton.js +3 -1
  82. package/dist/components/shared/roadmap/roadmap-grid.d.ts +10 -3
  83. package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -1
  84. package/dist/components/shared/roadmap/roadmap-grid.js +6 -3
  85. package/dist/components/tickets/help-center-list.js +4 -4
  86. package/dist/components/tickets/hooks/use-tickets-list.d.ts +2 -0
  87. package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
  88. package/dist/components/tickets/hooks/use-tickets-list.js +3 -2
  89. package/dist/components/tickets/index.cjs +14 -14
  90. package/dist/components/tickets/ticket-center.d.ts.map +1 -1
  91. package/dist/components/tickets/ticket-center.js +3 -9
  92. package/dist/components/ui/autocomplete.d.ts +5 -0
  93. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  94. package/dist/components/ui/autocomplete.js +3 -2
  95. package/dist/components/ui/data-table/data-table-body.d.ts +5 -2
  96. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  97. package/dist/components/ui/data-table/data-table-body.js +3 -1
  98. package/dist/components/ui/data-table/data-table-infinite-footer.d.ts +5 -2
  99. package/dist/components/ui/data-table/data-table-infinite-footer.d.ts.map +1 -1
  100. package/dist/components/ui/data-table/data-table-infinite-footer.js +5 -2
  101. package/dist/components/ui/data-table/utils.d.ts +21 -0
  102. package/dist/components/ui/data-table/utils.d.ts.map +1 -1
  103. package/dist/components/ui/data-table/utils.js +7 -0
  104. package/dist/components/ui/index.cjs +8 -8
  105. package/dist/components/ui/search-input.d.ts +3 -1
  106. package/dist/components/ui/search-input.d.ts.map +1 -1
  107. package/dist/components/ui/search-input.js +3 -2
  108. package/dist/components/ui/searchable-select.d.ts +2 -0
  109. package/dist/components/ui/searchable-select.d.ts.map +1 -1
  110. package/dist/components/ui/searchable-select.js +10 -6
  111. package/dist/components/ui/select.d.ts +11 -1
  112. package/dist/components/ui/select.d.ts.map +1 -1
  113. package/dist/components/ui/select.js +13 -5
  114. package/dist/components/ui/table/table-skeleton.d.ts +2 -2
  115. package/dist/components/ui/table/table.d.ts +1 -1
  116. package/dist/components/ui/table/table.d.ts.map +1 -1
  117. package/dist/components/ui/table/table.js +2 -1
  118. package/dist/components/ui/table/types.d.ts +1 -0
  119. package/dist/components/ui/table/types.d.ts.map +1 -1
  120. package/dist/{devices-7FDK2CGV.cjs → devices-TO4VUO7F.cjs} +9 -9
  121. package/dist/{embeddable-chat-3FR2RCHM.cjs → embeddable-chat-CEAP424I.cjs} +73 -73
  122. package/dist/index.cjs +15 -14
  123. package/dist/{knowledge-ZLHYBG4L.cjs → knowledge-CYJP4XYY.cjs} +9 -9
  124. package/dist/{logs-G6AFN7A6.cjs → logs-NL3ZBQKC.cjs} +16 -16
  125. package/dist/{policies-SEOK4IQO.cjs → policies-WTUV4EIT.cjs} +12 -12
  126. package/dist/{remote-session-WVORQV7V.cjs → remote-session-TC3BZDBZ.cjs} +4 -4
  127. package/dist/{scripts-HH4YVUBO.cjs → scripts-EE6MLBQP.cjs} +15 -15
  128. package/dist/{software-update-4A3XJZQB.cjs → software-update-HX6PN4SB.cjs} +12 -12
  129. package/dist/types/category.d.ts +5 -0
  130. package/dist/types/category.d.ts.map +1 -1
  131. package/dist/types/logs.types.d.ts +2 -0
  132. package/dist/types/logs.types.d.ts.map +1 -1
  133. package/package.json +1 -1
  134. package/src/components/case-studies/quote-cards-strip.tsx +16 -7
  135. package/src/components/categories-cart.tsx +16 -5
  136. package/src/components/chat/entity-cards/admin-content-card-grid.tsx +5 -1
  137. package/src/components/chat/entity-cards/program-card.tsx +6 -3
  138. package/src/components/faq/faq-section.tsx +7 -4
  139. package/src/components/faq-accordion.tsx +2 -4
  140. package/src/components/features/capability-explorer.tsx +16 -4
  141. package/src/components/features/cards-strip.tsx +3 -3
  142. package/src/components/features/model-token-rates.tsx +4 -4
  143. package/src/components/features/remote-session/remote-desktop-chat-panel.tsx +4 -4
  144. package/src/components/help-center-pages/trust-center-page.tsx +1 -1
  145. package/src/components/help-center-pages/trust-center-sections.tsx +15 -22
  146. package/src/components/logs-list.tsx +6 -5
  147. package/src/components/navigation/multi-level-navigation.tsx +6 -7
  148. package/src/components/onboarding-guides/onboarding-guides-catalog-skeleton.tsx +6 -6
  149. package/src/components/related-content/related-content-section.tsx +6 -27
  150. package/src/components/shared/dev-section/dev-card-row.tsx +3 -3
  151. package/src/components/shared/product-release/release-detail-page.tsx +2 -2
  152. package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +8 -2
  153. package/src/components/shared/roadmap/roadmap-grid.tsx +14 -4
  154. package/src/components/tickets/help-center-list.tsx +4 -4
  155. package/src/components/tickets/hooks/use-tickets-list.ts +3 -2
  156. package/src/components/tickets/ticket-center.tsx +4 -13
  157. package/src/components/ui/autocomplete.tsx +12 -3
  158. package/src/components/ui/data-table/data-table-body.tsx +8 -2
  159. package/src/components/ui/data-table/data-table-infinite-footer.tsx +10 -3
  160. package/src/components/ui/data-table/utils.ts +18 -0
  161. package/src/components/ui/search-input.tsx +9 -3
  162. package/src/components/ui/searchable-select.tsx +18 -9
  163. package/src/components/ui/select.tsx +28 -7
  164. package/src/components/ui/table/table-skeleton.tsx +2 -2
  165. package/src/components/ui/table/table.tsx +4 -1
  166. package/src/components/ui/table/types.ts +2 -1
  167. package/src/types/category.ts +5 -0
  168. package/src/types/logs.types.ts +2 -0
@@ -8,10 +8,10 @@ var _chunkSTEJZPIOcjs = require('./chunk-STEJZPIO.cjs');
8
8
  var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
9
9
 
10
10
 
11
- var _chunkBZLHU4EKcjs = require('./chunk-BZLHU4EK.cjs');
11
+ var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
12
12
  require('./chunk-LJT2KRE2.cjs');
13
13
  require('./chunk-RB7VLVMD.cjs');
14
- require('./chunk-MZLWB5AH.cjs');
14
+ require('./chunk-V3W56L2D.cjs');
15
15
  require('./chunk-HQQE74RO.cjs');
16
16
  require('./chunk-DEY6XXGO.cjs');
17
17
  require('./chunk-XVFM6SJA.cjs');
@@ -19,12 +19,12 @@ require('./chunk-2JRSYWFP.cjs');
19
19
  require('./chunk-24I6RFVU.cjs');
20
20
  require('./chunk-A6P6DHEZ.cjs');
21
21
  require('./chunk-MZ4KBSH7.cjs');
22
- require('./chunk-QS4G7CHU.cjs');
22
+ require('./chunk-KSCEAIBS.cjs');
23
23
  require('./chunk-C42WIUH6.cjs');
24
- require('./chunk-WUYL4BMD.cjs');
24
+ require('./chunk-YI3CDGKM.cjs');
25
25
 
26
26
 
27
- var _chunkNZELWPKOcjs = require('./chunk-NZELWPKO.cjs');
27
+ var _chunkILZEXCJHcjs = require('./chunk-ILZEXCJH.cjs');
28
28
  require('./chunk-EHJE3UWZ.cjs');
29
29
  require('./chunk-RNLRS4ID.cjs');
30
30
  require('./chunk-5QP3K2CE.cjs');
@@ -1825,8 +1825,8 @@ require('./chunk-7DNL734S.cjs');
1825
1825
  require('./chunk-WWUSFOJ7.cjs');
1826
1826
  require('./chunk-SKI6NKOE.cjs');
1827
1827
  require('./chunk-EWPR7662.cjs');
1828
- require('./chunk-HQF62LAU.cjs');
1829
- require('./chunk-4EJU462O.cjs');
1828
+ require('./chunk-FPCGKH5K.cjs');
1829
+ require('./chunk-5V7BIUGA.cjs');
1830
1830
  require('./chunk-R3JX4MXD.cjs');
1831
1831
  require('./chunk-SETFUCZA.cjs');
1832
1832
  require('./chunk-VFUMM6JC.cjs');
@@ -1903,10 +1903,10 @@ function KnowledgeScreen(_props) {
1903
1903
  const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1904
1904
  const fixture = _react.useMemo.call(void 0, () => buildKnowledgeFixture(cast), [cast]);
1905
1905
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1906
- _chunkBZLHU4EKcjs.KnowledgeBaseArticleView,
1906
+ _chunkZVKJKWABcjs.KnowledgeBaseArticleView,
1907
1907
  {
1908
1908
  ...fixture.article,
1909
- content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNZELWPKOcjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
1909
+ content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
1910
1910
  }
1911
1911
  ) });
1912
1912
  }
@@ -16,10 +16,10 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkBZLHU4EKcjs = require('./chunk-BZLHU4EK.cjs');
19
+ var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
20
20
  require('./chunk-LJT2KRE2.cjs');
21
21
  require('./chunk-RB7VLVMD.cjs');
22
- require('./chunk-MZLWB5AH.cjs');
22
+ require('./chunk-V3W56L2D.cjs');
23
23
  require('./chunk-HQQE74RO.cjs');
24
24
  require('./chunk-DEY6XXGO.cjs');
25
25
  require('./chunk-XVFM6SJA.cjs');
@@ -27,12 +27,12 @@ require('./chunk-2JRSYWFP.cjs');
27
27
  require('./chunk-24I6RFVU.cjs');
28
28
  require('./chunk-A6P6DHEZ.cjs');
29
29
  require('./chunk-MZ4KBSH7.cjs');
30
- require('./chunk-QS4G7CHU.cjs');
30
+ require('./chunk-KSCEAIBS.cjs');
31
31
  require('./chunk-C42WIUH6.cjs');
32
32
 
33
33
 
34
- var _chunkWUYL4BMDcjs = require('./chunk-WUYL4BMD.cjs');
35
- require('./chunk-NZELWPKO.cjs');
34
+ var _chunkYI3CDGKMcjs = require('./chunk-YI3CDGKM.cjs');
35
+ require('./chunk-ILZEXCJH.cjs');
36
36
  require('./chunk-EHJE3UWZ.cjs');
37
37
  require('./chunk-RNLRS4ID.cjs');
38
38
  require('./chunk-5QP3K2CE.cjs');
@@ -1833,8 +1833,8 @@ require('./chunk-7DNL734S.cjs');
1833
1833
  require('./chunk-WWUSFOJ7.cjs');
1834
1834
  require('./chunk-SKI6NKOE.cjs');
1835
1835
  require('./chunk-EWPR7662.cjs');
1836
- require('./chunk-HQF62LAU.cjs');
1837
- require('./chunk-4EJU462O.cjs');
1836
+ require('./chunk-FPCGKH5K.cjs');
1837
+ require('./chunk-5V7BIUGA.cjs');
1838
1838
  require('./chunk-R3JX4MXD.cjs');
1839
1839
  require('./chunk-SETFUCZA.cjs');
1840
1840
  require('./chunk-VFUMM6JC.cjs');
@@ -1884,7 +1884,7 @@ function entry(logId, minutesAgo, severity, toolType, device2, summary) {
1884
1884
  id: logId,
1885
1885
  logId,
1886
1886
  timestamp: displayTime(_chunkDKOLQPE7cjs.demoMinutesAgo.call(void 0, minutesAgo)),
1887
- status: { label: severity, variant: _chunkBZLHU4EKcjs.logSeverityVariant.call(void 0, severity) },
1887
+ status: { label: severity, variant: _chunkZVKJKWABcjs.logSeverityVariant.call(void 0, severity) },
1888
1888
  source: { name: toolType, toolType },
1889
1889
  device: device2,
1890
1890
  description: { title: summary }
@@ -1956,13 +1956,13 @@ var NO_FILTERS = {};
1956
1956
  var ACTION_COLUMNS = ["copy", "quickView", "open"];
1957
1957
  var BESIDE_DRAWER_HIDDEN = [...ACTION_COLUMNS, "tool", "source"];
1958
1958
  var logHref = () => "#";
1959
- var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBZLHU4EKcjs.LogCopyIconButton, {});
1959
+ var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.LogCopyIconButton, {});
1960
1960
  function LogsScreen({ compact = false }) {
1961
1961
  const [dock, setDock] = _react.useState.call(void 0, null);
1962
1962
  const selected = LOGS_FIXTURE_SELECTED;
1963
1963
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full bg-ods-bg", children: [
1964
1964
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1965
- _chunkBZLHU4EKcjs.LogsPageView,
1965
+ _chunkZVKJKWABcjs.LogsPageView,
1966
1966
  {
1967
1967
  showHeader: false,
1968
1968
  className: "p-[var(--spacing-system-l)]",
@@ -1970,7 +1970,7 @@ function LogsScreen({ compact = false }) {
1970
1970
  onSearchChange: noop,
1971
1971
  onOpenFilters: noop,
1972
1972
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1973
- _chunkBZLHU4EKcjs.LogsTableView,
1973
+ _chunkZVKJKWABcjs.LogsTableView,
1974
1974
  {
1975
1975
  logs: LOGS_FIXTURE_ENTRIES,
1976
1976
  facets: LOGS_FIXTURE_FACETS,
@@ -1984,8 +1984,8 @@ function LogsScreen({ compact = false }) {
1984
1984
  )
1985
1985
  }
1986
1986
  ) }),
1987
- !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBZLHU4EKcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1988
- _chunkBZLHU4EKcjs.LogDrawer,
1987
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1988
+ _chunkZVKJKWABcjs.LogDrawer,
1989
1989
  {
1990
1990
  docked: true,
1991
1991
  isOpen: true,
@@ -1997,12 +1997,12 @@ function LogsScreen({ compact = false }) {
1997
1997
  { label: "Log ID", value: selected.logId },
1998
1998
  {
1999
1999
  label: "Source",
2000
- value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBZLHU4EKcjs.ToolBadge, { toolType: _chunkWUYL4BMDcjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
2000
+ value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.ToolBadge, { toolType: _chunkYI3CDGKMcjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
2001
2001
  },
2002
- { label: "Device", value: _chunkBZLHU4EKcjs.logSourceLabels.call(void 0, selected.device).deviceName }
2002
+ { label: "Device", value: _chunkZVKJKWABcjs.logSourceLabels.call(void 0, selected.device).deviceName }
2003
2003
  ],
2004
2004
  deviceCard: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2005
- _chunkBZLHU4EKcjs.DeviceCard,
2005
+ _chunkZVKJKWABcjs.DeviceCard,
2006
2006
  {
2007
2007
  ...LOGS_FIXTURE_DEVICE,
2008
2008
  actions: {
@@ -10,10 +10,10 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkBZLHU4EKcjs = require('./chunk-BZLHU4EK.cjs');
13
+ var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
14
14
  require('./chunk-LJT2KRE2.cjs');
15
15
  require('./chunk-RB7VLVMD.cjs');
16
- require('./chunk-MZLWB5AH.cjs');
16
+ require('./chunk-V3W56L2D.cjs');
17
17
  require('./chunk-HQQE74RO.cjs');
18
18
  require('./chunk-DEY6XXGO.cjs');
19
19
  require('./chunk-XVFM6SJA.cjs');
@@ -21,10 +21,10 @@ require('./chunk-2JRSYWFP.cjs');
21
21
  require('./chunk-24I6RFVU.cjs');
22
22
  require('./chunk-A6P6DHEZ.cjs');
23
23
  require('./chunk-MZ4KBSH7.cjs');
24
- require('./chunk-QS4G7CHU.cjs');
24
+ require('./chunk-KSCEAIBS.cjs');
25
25
  require('./chunk-C42WIUH6.cjs');
26
- require('./chunk-WUYL4BMD.cjs');
27
- require('./chunk-NZELWPKO.cjs');
26
+ require('./chunk-YI3CDGKM.cjs');
27
+ require('./chunk-ILZEXCJH.cjs');
28
28
  require('./chunk-EHJE3UWZ.cjs');
29
29
  require('./chunk-RNLRS4ID.cjs');
30
30
  require('./chunk-5QP3K2CE.cjs');
@@ -1825,8 +1825,8 @@ require('./chunk-7DNL734S.cjs');
1825
1825
  require('./chunk-WWUSFOJ7.cjs');
1826
1826
  require('./chunk-SKI6NKOE.cjs');
1827
1827
  require('./chunk-EWPR7662.cjs');
1828
- require('./chunk-HQF62LAU.cjs');
1829
- require('./chunk-4EJU462O.cjs');
1828
+ require('./chunk-FPCGKH5K.cjs');
1829
+ require('./chunk-5V7BIUGA.cjs');
1830
1830
  require('./chunk-R3JX4MXD.cjs');
1831
1831
  require('./chunk-SETFUCZA.cjs');
1832
1832
  require('./chunk-VFUMM6JC.cjs');
@@ -1889,14 +1889,14 @@ var POLICIES = [
1889
1889
  policy("policy-local-admins", "No local admins", "No everyday account is a local administrator.", false, 0)
1890
1890
  ];
1891
1891
  var POLICIES_FIXTURE = {
1892
- summary: _chunkBZLHU4EKcjs.computePolicySummary.call(void 0, POLICIES),
1892
+ summary: _chunkZVKJKWABcjs.computePolicySummary.call(void 0, POLICIES),
1893
1893
  rows: POLICIES.map((item) => ({
1894
1894
  id: item.id,
1895
1895
  name: item.name,
1896
1896
  description: item.description,
1897
1897
  critical: item.critical,
1898
1898
  severityLabel: item.critical ? "Critical" : "Low",
1899
- status: _chunkBZLHU4EKcjs.getPolicyTableStatus.call(void 0, item),
1899
+ status: _chunkZVKJKWABcjs.getPolicyTableStatus.call(void 0, item),
1900
1900
  actions: [
1901
1901
  { label: "Policy Details", onClick: noop },
1902
1902
  { label: "Delete Policy", onClick: noop }
@@ -1910,16 +1910,16 @@ var POLICIES_FIXTURE = {
1910
1910
  var _jsxruntime = require('react/jsx-runtime');
1911
1911
  function PoliciesScreen({ compact = false }) {
1912
1912
  const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1913
- _chunkBZLHU4EKcjs.PoliciesTable,
1913
+ _chunkZVKJKWABcjs.PoliciesTable,
1914
1914
  {
1915
1915
  rows: POLICIES_FIXTURE.rows,
1916
1916
  rowAsLink: true,
1917
- rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBZLHU4EKcjs.DataTable.RowCount, {}),
1917
+ rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.DataTable.RowCount, {}),
1918
1918
  emptyMessage: "No policies found."
1919
1919
  }
1920
1920
  );
1921
1921
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col gap-[var(--spacing-system-l)] bg-ods-bg p-[var(--spacing-system-l)]", children: [
1922
- !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBZLHU4EKcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
1922
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
1923
1923
  table
1924
1924
  ] });
1925
1925
  }
@@ -11,7 +11,7 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
11
11
 
12
12
 
13
13
 
14
- var _chunkMZLWB5AHcjs = require('./chunk-MZLWB5AH.cjs');
14
+ var _chunkV3W56L2Dcjs = require('./chunk-V3W56L2D.cjs');
15
15
  require('./chunk-A6P6DHEZ.cjs');
16
16
  require('./chunk-5QP3K2CE.cjs');
17
17
  require('./chunk-LELS4XMX.cjs');
@@ -1918,7 +1918,7 @@ function TaskbarApp({ icon, active = false }) {
1918
1918
  );
1919
1919
  }
1920
1920
  function RemoteDesktopPicture({ desktop }) {
1921
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `absolute inset-0 flex flex-col overflow-hidden ${_chunkMZLWB5AHcjs.DEVICE_WALLPAPER_CLASS}`, children: [
1921
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `absolute inset-0 flex flex-col overflow-hidden ${_chunkV3W56L2Dcjs.DEVICE_WALLPAPER_CLASS}`, children: [
1922
1922
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative min-h-0 flex-1", children: [
1923
1923
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute left-[var(--spacing-system-sf)] top-[var(--spacing-system-sf)] hidden flex-col gap-[var(--spacing-system-sf)] content-md:flex", children: [
1924
1924
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopShortcut, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIYHH5EIOcjs.TrashIcon, { className: "h-5 w-5" }), label: "Recycle Bin" }),
@@ -1982,7 +1982,7 @@ function RemoteSessionScreen({ compact = false }) {
1982
1982
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col bg-ods-bg", children: [
1983
1983
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[var(--spacing-system-l)] flex-shrink-0" }),
1984
1984
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1985
- _chunkMZLWB5AHcjs.RemoteDesktopView,
1985
+ _chunkV3W56L2Dcjs.RemoteDesktopView,
1986
1986
  {
1987
1987
  ...fixture.view,
1988
1988
  onEnterFullscreen: noop,
@@ -1993,7 +1993,7 @@ function RemoteSessionScreen({ compact = false }) {
1993
1993
  screen: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RemoteDesktopPicture, { desktop: fixture.desktop }),
1994
1994
  chat: compact ? null : (
1995
1995
  // The side column needs the room of the wide layout; a narrow frame keeps the screen alone.
1996
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-h-0 content-md:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMZLWB5AHcjs.RemoteDesktopChatPanel, { ...fixture.chat, sending: false, onSend: keepDraft, variant: "side" }) })
1996
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-h-0 content-md:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.RemoteDesktopChatPanel, { ...fixture.chat, sending: false, onSend: keepDraft, variant: "side" }) })
1997
1997
  )
1998
1998
  }
1999
1999
  ) })
@@ -13,12 +13,12 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunkBZLHU4EKcjs = require('./chunk-BZLHU4EK.cjs');
16
+ var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
17
17
  require('./chunk-LJT2KRE2.cjs');
18
18
  require('./chunk-RB7VLVMD.cjs');
19
19
 
20
20
 
21
- var _chunkMZLWB5AHcjs = require('./chunk-MZLWB5AH.cjs');
21
+ var _chunkV3W56L2Dcjs = require('./chunk-V3W56L2D.cjs');
22
22
  require('./chunk-HQQE74RO.cjs');
23
23
  require('./chunk-DEY6XXGO.cjs');
24
24
  require('./chunk-XVFM6SJA.cjs');
@@ -26,10 +26,10 @@ require('./chunk-2JRSYWFP.cjs');
26
26
  require('./chunk-24I6RFVU.cjs');
27
27
  require('./chunk-A6P6DHEZ.cjs');
28
28
  require('./chunk-MZ4KBSH7.cjs');
29
- require('./chunk-QS4G7CHU.cjs');
29
+ require('./chunk-KSCEAIBS.cjs');
30
30
  require('./chunk-C42WIUH6.cjs');
31
- require('./chunk-WUYL4BMD.cjs');
32
- require('./chunk-NZELWPKO.cjs');
31
+ require('./chunk-YI3CDGKM.cjs');
32
+ require('./chunk-ILZEXCJH.cjs');
33
33
  require('./chunk-EHJE3UWZ.cjs');
34
34
  require('./chunk-RNLRS4ID.cjs');
35
35
  require('./chunk-5QP3K2CE.cjs');
@@ -1832,8 +1832,8 @@ 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-HQF62LAU.cjs');
1836
- require('./chunk-4EJU462O.cjs');
1835
+ require('./chunk-FPCGKH5K.cjs');
1836
+ require('./chunk-5V7BIUGA.cjs');
1837
1837
  require('./chunk-R3JX4MXD.cjs');
1838
1838
  require('./chunk-SETFUCZA.cjs');
1839
1839
  require('./chunk-VFUMM6JC.cjs');
@@ -1993,8 +1993,8 @@ function buildScriptsFixture(cast) {
1993
1993
  var _jsxruntime = require('react/jsx-runtime');
1994
1994
  var WIDE_HIDDEN_COLUMNS = ["result", "open"];
1995
1995
  var COMPACT_COLUMNS = [
1996
- { ..._chunkBZLHU4EKcjs.EXECUTION_COLUMNS.machineId, width: "flex-1 min-w-0", hideAt: void 0 },
1997
- _chunkBZLHU4EKcjs.EXECUTION_COLUMNS.status
1996
+ { ..._chunkZVKJKWABcjs.EXECUTION_COLUMNS.machineId, width: "flex-1 min-w-0", hideAt: void 0 },
1997
+ _chunkZVKJKWABcjs.EXECUTION_COLUMNS.status
1998
1998
  ];
1999
1999
  var COMPACT_ROWS = 4;
2000
2000
  var TOKEN_CLASS = {
@@ -2044,16 +2044,16 @@ function ScriptCodePicture({ script }) {
2044
2044
  children: [
2045
2045
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] border-b border-ods-border p-[var(--spacing-system-m)]", children: [
2046
2046
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center justify-between gap-[var(--spacing-system-m)]", children: [
2047
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMZLWB5AHcjs.TruncateText, { variant: "h4", children: script.name }),
2047
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.TruncateText, { variant: "h4", children: script.name }),
2048
2048
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)] text-ods-text-primary text-h6", children: [
2049
2049
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPKKRHUMcjs.TimerIcon, { className: "size-4 text-ods-text-secondary" }),
2050
2050
  `${schedule.repeat} ${schedule.time} \xB7 ${schedule.deviceCount} devices`
2051
2051
  ] })
2052
2052
  ] }),
2053
2053
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center justify-between gap-[var(--spacing-system-m)]", children: [
2054
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMZLWB5AHcjs.TruncateText, { variant: "h6", tone: "secondary", children: `Written by ${provenance.author} \xB7 approved by ${provenance.approver}` }),
2054
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.TruncateText, { variant: "h6", tone: "secondary", children: `Written by ${provenance.author} \xB7 approved by ${provenance.approver}` }),
2055
2055
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2056
- _chunkBZLHU4EKcjs.ScriptShellBadge,
2056
+ _chunkZVKJKWABcjs.ScriptShellBadge,
2057
2057
  {
2058
2058
  value: script.shellType,
2059
2059
  className: "shrink-0 text-ods-text-secondary text-h6",
@@ -2077,7 +2077,7 @@ function ScriptsScreen({ compact = false }) {
2077
2077
  return (
2078
2078
  // Four runs of the card's row height fill the frame; the padding is what is left round them.
2079
2079
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full overflow-hidden bg-ods-bg p-[var(--spacing-system-xsf)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2080
- _chunkBZLHU4EKcjs.ScriptExecutionsTable,
2080
+ _chunkZVKJKWABcjs.ScriptExecutionsTable,
2081
2081
  {
2082
2082
  rows: fixture.executions.slice(0, COMPACT_ROWS),
2083
2083
  columns: COMPACT_COLUMNS,
@@ -2087,13 +2087,13 @@ function ScriptsScreen({ compact = false }) {
2087
2087
  ) })
2088
2088
  );
2089
2089
  }
2090
- const renderOutput = (row) => row.id === fixture.openExecutionId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBZLHU4EKcjs.ScriptExecutionResult, { result: row.result, empty: "\u2014" }) : null;
2090
+ const renderOutput = (row) => row.id === fixture.openExecutionId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZVKJKWABcjs.ScriptExecutionResult, { result: row.result, empty: "\u2014" }) : null;
2091
2091
  return (
2092
2092
  // The frame's tighter padding and no header row: the output opened under a run needs the height.
2093
2093
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full gap-[var(--spacing-system-m)] overflow-hidden bg-ods-bg p-[var(--spacing-system-m)]", children: [
2094
2094
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[39%] shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScriptCodePicture, { script: fixture.script }) }),
2095
2095
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2096
- _chunkBZLHU4EKcjs.ScriptExecutionsTable,
2096
+ _chunkZVKJKWABcjs.ScriptExecutionsTable,
2097
2097
  {
2098
2098
  rows: fixture.executions,
2099
2099
  hideColumns: WIDE_HIDDEN_COLUMNS,
@@ -15,12 +15,12 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
15
15
 
16
16
 
17
17
 
18
- var _chunkBZLHU4EKcjs = require('./chunk-BZLHU4EK.cjs');
18
+ var _chunkZVKJKWABcjs = require('./chunk-ZVKJKWAB.cjs');
19
19
  require('./chunk-LJT2KRE2.cjs');
20
20
  require('./chunk-RB7VLVMD.cjs');
21
21
 
22
22
 
23
- var _chunkMZLWB5AHcjs = require('./chunk-MZLWB5AH.cjs');
23
+ var _chunkV3W56L2Dcjs = require('./chunk-V3W56L2D.cjs');
24
24
  require('./chunk-HQQE74RO.cjs');
25
25
  require('./chunk-DEY6XXGO.cjs');
26
26
  require('./chunk-XVFM6SJA.cjs');
@@ -28,10 +28,10 @@ require('./chunk-2JRSYWFP.cjs');
28
28
  require('./chunk-24I6RFVU.cjs');
29
29
  require('./chunk-A6P6DHEZ.cjs');
30
30
  require('./chunk-MZ4KBSH7.cjs');
31
- require('./chunk-QS4G7CHU.cjs');
31
+ require('./chunk-KSCEAIBS.cjs');
32
32
  require('./chunk-C42WIUH6.cjs');
33
- require('./chunk-WUYL4BMD.cjs');
34
- require('./chunk-NZELWPKO.cjs');
33
+ require('./chunk-YI3CDGKM.cjs');
34
+ require('./chunk-ILZEXCJH.cjs');
35
35
  require('./chunk-EHJE3UWZ.cjs');
36
36
  require('./chunk-RNLRS4ID.cjs');
37
37
  require('./chunk-5QP3K2CE.cjs');
@@ -1832,8 +1832,8 @@ 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-HQF62LAU.cjs');
1836
- require('./chunk-4EJU462O.cjs');
1835
+ require('./chunk-FPCGKH5K.cjs');
1836
+ require('./chunk-5V7BIUGA.cjs');
1837
1837
  require('./chunk-R3JX4MXD.cjs');
1838
1838
  require('./chunk-SETFUCZA.cjs');
1839
1839
  require('./chunk-VFUMM6JC.cjs');
@@ -1918,14 +1918,14 @@ var noop = () => {
1918
1918
  var HIDDEN_WHEN_COMPACT = ["organization"];
1919
1919
  function StaticPackageField({ value }) {
1920
1920
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1921
- _chunkMZLWB5AHcjs.Autocomplete,
1921
+ _chunkV3W56L2Dcjs.Autocomplete,
1922
1922
  {
1923
- label: _chunkBZLHU4EKcjs.PACKAGE_SEARCH_LABEL,
1923
+ label: _chunkZVKJKWABcjs.PACKAGE_SEARCH_LABEL,
1924
1924
  labelVariant: "large",
1925
1925
  options: value ? [{ value: value.id, label: value.name, description: _nullishCoalesce(value.description, () => ( void 0)) }] : [],
1926
1926
  value: _nullishCoalesce(_optionalChain([value, 'optionalAccess', _ => _.id]), () => ( null)),
1927
1927
  onChange: noop,
1928
- placeholder: _chunkBZLHU4EKcjs.PACKAGE_SEARCH_PLACEHOLDER
1928
+ placeholder: _chunkZVKJKWABcjs.PACKAGE_SEARCH_PLACEHOLDER
1929
1929
  }
1930
1930
  );
1931
1931
  }
@@ -1939,7 +1939,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1939
1939
  [fixture.devices, fixture.selectedIds]
1940
1940
  );
1941
1941
  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,
1942
- _chunkBZLHU4EKcjs.SoftwareActionForm,
1942
+ _chunkZVKJKWABcjs.SoftwareActionForm,
1943
1943
  {
1944
1944
  action: fixture.action,
1945
1945
  showHeader: false,
@@ -1951,7 +1951,7 @@ function SoftwareUpdateScreen({ compact = false }) {
1951
1951
  initialValues: fixture.initialValues,
1952
1952
  renderPackageSearch,
1953
1953
  renderDevicePicker: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1954
- _chunkBZLHU4EKcjs.DeviceSelector,
1954
+ _chunkZVKJKWABcjs.DeviceSelector,
1955
1955
  {
1956
1956
  devices: selected,
1957
1957
  loading: false,
@@ -29,6 +29,11 @@ export interface RealCategoryCardProps {
29
29
  subcategoryCount?: number;
30
30
  vendors?: Vendor[];
31
31
  isLoading?: boolean;
32
+ /**
33
+ * The vendors the host reads for the card's strip (its fetch limit): the vendor icons the loading card draws.
34
+ * Default `CATEGORIES_CART_SKELETON_VENDORS`.
35
+ */
36
+ vendorLimit?: number;
32
37
  isLoadingVendorCount?: boolean;
33
38
  isLoadingSubcategoryCount?: boolean;
34
39
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../src/types/category.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../src/types/category.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -18,6 +18,8 @@ export interface LogsListProps {
18
18
  showConnector?: boolean;
19
19
  onLogClick?: (log: LogEntry) => void;
20
20
  loading?: boolean;
21
+ /** Rows the loading state draws: the logs the host reads (its page size or limit). Default a typical count. */
22
+ skeletonRows?: number;
21
23
  emptyMessage?: string;
22
24
  className?: string;
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logs.types.d.ts","sourceRoot":"","sources":["../../src/types/logs.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAM3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAM3D,CAAC"}
1
+ {"version":3,"file":"logs.types.d.ts","sourceRoot":"","sources":["../../src/types/logs.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+GAA+G;IAC/G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAM3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAM3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flamingo-stack/openframe-frontend-core",
3
- "version": "0.0.770",
3
+ "version": "0.0.772",
4
4
  "description": "Shared design system and components for all Flamingo platforms",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -63,23 +63,28 @@ export interface QuoteCardsStripProps {
63
63
  quotes: readonly QuoteCard[];
64
64
  /** The quotes are being read (the host's query runs): the strip draws its own skeleton. A page's loading scope does too. */
65
65
  loading?: boolean;
66
- /** The quote cards the skeleton draws: one screen of the host's strip. */
66
+ /**
67
+ * The quote cards the skeleton draws: the number of quotes the host reads (its limit). Default
68
+ * `QUOTE_STRIP_SKELETON_CARDS`, a typical count for a host that states none.
69
+ */
70
+ skeletonCount?: number;
71
+ /** @deprecated Use `skeletonCount`. */
67
72
  fold?: number;
68
73
  className?: string;
69
74
  }
70
75
 
71
- /** The quote cards a strip's skeleton draws when its host names none: a chip is about a third of a wide page's row. */
72
- const QUOTE_STRIP_FOLD = 4;
76
+ /** The quote cards a strip's skeleton draws when its host names no count: a typical count. */
77
+ const QUOTE_STRIP_SKELETON_CARDS = 4;
73
78
 
74
79
  /** The strip while its quotes are read: the same strip engine, still, with the quote card's own skeleton. */
75
- function QuoteCardsStripSkeleton({ fold, className }: { fold: number; className?: string }) {
80
+ function QuoteCardsStripSkeleton({ count, className }: { count: number; className?: string }) {
76
81
  return (
77
82
  <CardsStrip
78
83
  className={className}
79
84
  showTitle={false}
80
85
  showChevrons={false}
81
86
  autoScroll={false}
82
- items={Array.from({ length: fold }, (_, index) => ({ key: `quote-${index}` }))}
87
+ items={Array.from({ length: count }, (_, index) => ({ key: `quote-${index}` }))}
83
88
  itemKey={item => item.key}
84
89
  renderCard={(_item, ctx) => <QuoteCardTileSkeleton key={ctx.cardKey} className="shrink-0" />}
85
90
  />
@@ -93,9 +98,13 @@ function QuoteCardsStripSkeleton({ fold, className }: { fold: number; className?
93
98
  * keeps the click but stays out of the a11y tree. While its quotes are read (a page's loading scope with none handed
94
99
  * over, or `loading`) it is its own skeleton; read and empty, it renders nothing.
95
100
  */
96
- export function QuoteCardsStrip({ quotes, loading = false, fold = QUOTE_STRIP_FOLD, className }: QuoteCardsStripProps) {
101
+ export function QuoteCardsStrip({ quotes, loading = false, skeletonCount, fold, className }: QuoteCardsStripProps) {
97
102
  const scoped = useLoadingScope();
98
- if ((scoped && quotes.length === 0) || loading) return <QuoteCardsStripSkeleton fold={fold} className={className} />;
103
+ if ((scoped && quotes.length === 0) || loading) {
104
+ return (
105
+ <QuoteCardsStripSkeleton count={skeletonCount ?? fold ?? QUOTE_STRIP_SKELETON_CARDS} className={className} />
106
+ );
107
+ }
99
108
  if (quotes.length === 0) return null;
100
109
  return (
101
110
  <CardsStrip
@@ -24,8 +24,11 @@ const FOOT_ROW_CLASS = 'flex items-start justify-between gap-4 md:items-end md:g
24
24
  const ARROW_BOX_CLASS =
25
25
  'flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-md border border-ods-border bg-transparent transition-colors md:h-12 md:w-12';
26
26
  const ARROW_ICON_CLASS = `${ICON_SIZE.step} text-ods-text-primary transition-colors`;
27
- /** As many icon boxes as the widest strip shows (the strip clips the rest). */
28
- const ICON_STRIP_FOLD = 20;
27
+ /**
28
+ * Vendor icons the loading card draws when its host states no `vendorLimit`: a typical read (the OpenMSP home page
29
+ * reads 14 vendors per category). The strip clips what does not fit, loaded and loading alike.
30
+ */
31
+ export const CATEGORIES_CART_SKELETON_VENDORS = 14;
29
32
 
30
33
  /** The strip's fades at both ends, into the card's own surface. */
31
34
  function StripFades() {
@@ -44,9 +47,10 @@ export function CategoriesCart({
44
47
  vendorCount = 0,
45
48
  subcategoryCount = 0,
46
49
  isLoading = false,
50
+ vendorLimit,
47
51
  className = '',
48
52
  }: RealCategoryCardProps) {
49
- if (useLoadingScope() || isLoading) return <CategoriesCartSkeleton className={className} />;
53
+ if (useLoadingScope() || isLoading) return <CategoriesCartSkeleton vendors={vendorLimit} className={className} />;
50
54
  return (
51
55
  <Link
52
56
  href={`/vendors?category=${category.slug}`}
@@ -96,13 +100,20 @@ export function CategoriesCart({
96
100
  * A category card while its category is read: the card's frame, the vendor strip as icon boxes, a bar for the name,
97
101
  * the counts line and two description lines, and the arrow box as it is. Not a link: there is no category yet.
98
102
  */
99
- export function CategoriesCartSkeleton({ className }: { className?: string }) {
103
+ export function CategoriesCartSkeleton({
104
+ vendors = CATEGORIES_CART_SKELETON_VENDORS,
105
+ className,
106
+ }: {
107
+ /** Vendor icons to draw: the vendors the host reads per category. Default `CATEGORIES_CART_SKELETON_VENDORS`. */
108
+ vendors?: number;
109
+ className?: string;
110
+ }) {
100
111
  return (
101
112
  <div className={cn(CARD_SHELL_CLASS, className)} aria-hidden>
102
113
  <div className={CARD_STACK_CLASS}>
103
114
  <div className={ICON_STRIP_CLASS}>
104
115
  <div className={ICON_ROW_CLASS}>
105
- {Array.from({ length: ICON_STRIP_FOLD }, (_, index) => (
116
+ {Array.from({ length: vendors }, (_, index) => (
106
117
  // biome-ignore lint/suspicious/noArrayIndexKey: skeleton icons never reorder
107
118
  <VendorIconSkeleton key={index} size={VENDOR_ICON_SIZE} className="rounded" />
108
119
  ))}
@@ -10,7 +10,11 @@ export const ADMIN_CONTENT_CARD_GRID_CLASS =
10
10
  'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-[var(--spacing-system-lf)]';
11
11
 
12
12
  export interface AdminContentCardGridSkeletonProps {
13
- /** How many placeholder cards: one page. */
13
+ /**
14
+ * How many placeholder cards: ONE FULL PAGE, the host's page size (the `pageSize` the grid it stands in for
15
+ * loads). A host that pages its grid passes it; the default `12` is the typical admin page, for a host that
16
+ * states none.
17
+ */
14
18
  count?: number;
15
19
  /** The placeholder card. Default `AdminContentCardSkeleton`. */
16
20
  Skeleton?: ComponentType<{ className?: string }>;
@@ -100,8 +100,11 @@ const DEFAULT_GALLERY_THUMB =
100
100
  const DEFAULT_FOOTER = 'flex justify-end border-t border-ods-border pt-[var(--spacing-system-lf)]';
101
101
  /** The hosts' avatars (32px each): beside the text from md, their own row under it on a phone. */
102
102
  const DEFAULT_HOSTS_ROW = 'flex flex-wrap gap-2 md:justify-end';
103
- /** The tags a card's skeleton draws when it shows a tag row (a row of read tags: a typical one). */
104
- const DEFAULT_TAGS_FOLD = 2;
103
+ /**
104
+ * The tags a card's skeleton draws when it shows a tag row: a typical count. The loaded row draws every tag the item
105
+ * carries (no cap), so there is no limit to draw.
106
+ */
107
+ const DEFAULT_SKELETON_TAGS = 2;
105
108
  /** The person's avatar in the editorial feature card, read by the card and its skeleton. */
106
109
  const EDITORIAL_PERSON_AVATAR = { variant: 'round', size: 'sm' } as const;
107
110
 
@@ -197,7 +200,7 @@ export function ProgramCardSkeleton({
197
200
  </div>
198
201
  {tags && (
199
202
  <div className={DEFAULT_TAG_ROW}>
200
- {Array.from({ length: DEFAULT_TAGS_FOLD }, (_, i) => (
203
+ {Array.from({ length: DEFAULT_SKELETON_TAGS }, (_, i) => (
201
204
  <TagSkeleton key={i} />
202
205
  ))}
203
206
  </div>