@adminiumjs/widgets 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1324) hide show
  1. package/LICENSE +661 -0
  2. package/dist/binding/StreamTransportContext.d.ts +18 -0
  3. package/dist/binding/StreamTransportContext.d.ts.map +1 -0
  4. package/dist/binding/StreamTransportContext.js +19 -0
  5. package/dist/binding/StreamTransportContext.js.map +1 -0
  6. package/dist/binding/demo-stream.d.ts +59 -0
  7. package/dist/binding/demo-stream.d.ts.map +1 -0
  8. package/dist/binding/demo-stream.js +90 -0
  9. package/dist/binding/demo-stream.js.map +1 -0
  10. package/dist/binding/index.d.ts +14 -0
  11. package/dist/binding/index.d.ts.map +1 -0
  12. package/dist/binding/index.js +13 -0
  13. package/dist/binding/index.js.map +1 -0
  14. package/dist/binding/stream-buffer.d.ts +44 -0
  15. package/dist/binding/stream-buffer.d.ts.map +1 -0
  16. package/dist/binding/stream-buffer.js +65 -0
  17. package/dist/binding/stream-buffer.js.map +1 -0
  18. package/dist/binding/stream-channel.d.ts +24 -0
  19. package/dist/binding/stream-channel.d.ts.map +1 -0
  20. package/dist/binding/stream-channel.js +27 -0
  21. package/dist/binding/stream-channel.js.map +1 -0
  22. package/dist/binding/stream-types.d.ts +67 -0
  23. package/dist/binding/stream-types.d.ts.map +1 -0
  24. package/dist/binding/stream-types.js +19 -0
  25. package/dist/binding/stream-types.js.map +1 -0
  26. package/dist/binding/useWidgetStream.d.ts +56 -0
  27. package/dist/binding/useWidgetStream.d.ts.map +1 -0
  28. package/dist/binding/useWidgetStream.js +144 -0
  29. package/dist/binding/useWidgetStream.js.map +1 -0
  30. package/dist/families/boards/BoardCard.d.ts +48 -0
  31. package/dist/families/boards/BoardCard.d.ts.map +1 -0
  32. package/dist/families/boards/BoardCard.js +58 -0
  33. package/dist/families/boards/BoardCard.js.map +1 -0
  34. package/dist/families/boards/InlineComposeCard.d.ts +35 -0
  35. package/dist/families/boards/InlineComposeCard.d.ts.map +1 -0
  36. package/dist/families/boards/InlineComposeCard.js +65 -0
  37. package/dist/families/boards/InlineComposeCard.js.map +1 -0
  38. package/dist/families/boards/KanbanBoard.d.ts +30 -0
  39. package/dist/families/boards/KanbanBoard.d.ts.map +1 -0
  40. package/dist/families/boards/KanbanBoard.js +141 -0
  41. package/dist/families/boards/KanbanBoard.js.map +1 -0
  42. package/dist/families/boards/KanbanSwimlaneGrid.d.ts +40 -0
  43. package/dist/families/boards/KanbanSwimlaneGrid.d.ts.map +1 -0
  44. package/dist/families/boards/KanbanSwimlaneGrid.js +162 -0
  45. package/dist/families/boards/KanbanSwimlaneGrid.js.map +1 -0
  46. package/dist/families/boards/board-dnd.d.ts +131 -0
  47. package/dist/families/boards/board-dnd.d.ts.map +1 -0
  48. package/dist/families/boards/board-dnd.js +186 -0
  49. package/dist/families/boards/board-dnd.js.map +1 -0
  50. package/dist/families/boards/board-lib.d.ts +124 -0
  51. package/dist/families/boards/board-lib.d.ts.map +1 -0
  52. package/dist/families/boards/board-lib.js +170 -0
  53. package/dist/families/boards/board-lib.js.map +1 -0
  54. package/dist/families/boards/boards-config.d.ts +712 -0
  55. package/dist/families/boards/boards-config.d.ts.map +1 -0
  56. package/dist/families/boards/boards-config.js +220 -0
  57. package/dist/families/boards/boards-config.js.map +1 -0
  58. package/dist/families/boards/boards-track-components.d.ts +13 -0
  59. package/dist/families/boards/boards-track-components.d.ts.map +1 -0
  60. package/dist/families/boards/boards-track-components.js +14 -0
  61. package/dist/families/boards/boards-track-components.js.map +1 -0
  62. package/dist/families/boards/boards-track.definitions.d.ts +20 -0
  63. package/dist/families/boards/boards-track.definitions.d.ts.map +1 -0
  64. package/dist/families/boards/boards-track.definitions.js +80 -0
  65. package/dist/families/boards/boards-track.definitions.js.map +1 -0
  66. package/dist/families/boards/index.d.ts +15 -0
  67. package/dist/families/boards/index.d.ts.map +1 -0
  68. package/dist/families/boards/index.js +15 -0
  69. package/dist/families/boards/index.js.map +1 -0
  70. package/dist/families/calendar/CalendarLegendFilter.d.ts +41 -0
  71. package/dist/families/calendar/CalendarLegendFilter.d.ts.map +1 -0
  72. package/dist/families/calendar/CalendarLegendFilter.js +54 -0
  73. package/dist/families/calendar/CalendarLegendFilter.js.map +1 -0
  74. package/dist/families/calendar/CalendarMonth.d.ts +35 -0
  75. package/dist/families/calendar/CalendarMonth.d.ts.map +1 -0
  76. package/dist/families/calendar/CalendarMonth.js +123 -0
  77. package/dist/families/calendar/CalendarMonth.js.map +1 -0
  78. package/dist/families/calendar/CapacityBoard.d.ts +29 -0
  79. package/dist/families/calendar/CapacityBoard.d.ts.map +1 -0
  80. package/dist/families/calendar/CapacityBoard.js +61 -0
  81. package/dist/families/calendar/CapacityBoard.js.map +1 -0
  82. package/dist/families/calendar/DateRangePicker.d.ts +50 -0
  83. package/dist/families/calendar/DateRangePicker.d.ts.map +1 -0
  84. package/dist/families/calendar/DateRangePicker.js +119 -0
  85. package/dist/families/calendar/DateRangePicker.js.map +1 -0
  86. package/dist/families/calendar/DayAgenda.d.ts +26 -0
  87. package/dist/families/calendar/DayAgenda.d.ts.map +1 -0
  88. package/dist/families/calendar/DayAgenda.js +65 -0
  89. package/dist/families/calendar/DayAgenda.js.map +1 -0
  90. package/dist/families/calendar/ScheduleMatrix.d.ts +37 -0
  91. package/dist/families/calendar/ScheduleMatrix.d.ts.map +1 -0
  92. package/dist/families/calendar/ScheduleMatrix.js +114 -0
  93. package/dist/families/calendar/ScheduleMatrix.js.map +1 -0
  94. package/dist/families/calendar/ScheduledJobsList.d.ts +40 -0
  95. package/dist/families/calendar/ScheduledJobsList.d.ts.map +1 -0
  96. package/dist/families/calendar/ScheduledJobsList.js +72 -0
  97. package/dist/families/calendar/ScheduledJobsList.js.map +1 -0
  98. package/dist/families/calendar/UpcomingEventsList.d.ts +54 -0
  99. package/dist/families/calendar/UpcomingEventsList.d.ts.map +1 -0
  100. package/dist/families/calendar/UpcomingEventsList.js +80 -0
  101. package/dist/families/calendar/UpcomingEventsList.js.map +1 -0
  102. package/dist/families/calendar/calendar-config.d.ts +1267 -0
  103. package/dist/families/calendar/calendar-config.d.ts.map +1 -0
  104. package/dist/families/calendar/calendar-config.js +386 -0
  105. package/dist/families/calendar/calendar-config.js.map +1 -0
  106. package/dist/families/calendar/calendar-lib.d.ts +200 -0
  107. package/dist/families/calendar/calendar-lib.d.ts.map +1 -0
  108. package/dist/families/calendar/calendar-lib.js +365 -0
  109. package/dist/families/calendar/calendar-lib.js.map +1 -0
  110. package/dist/families/calendar/calendar-track-components.d.ts +16 -0
  111. package/dist/families/calendar/calendar-track-components.d.ts.map +1 -0
  112. package/dist/families/calendar/calendar-track-components.js +17 -0
  113. package/dist/families/calendar/calendar-track-components.js.map +1 -0
  114. package/dist/families/calendar/calendar-track.definitions.d.ts +24 -0
  115. package/dist/families/calendar/calendar-track.definitions.d.ts.map +1 -0
  116. package/dist/families/calendar/calendar-track.definitions.js +133 -0
  117. package/dist/families/calendar/calendar-track.definitions.js.map +1 -0
  118. package/dist/families/calendar/calendar-types.d.ts +135 -0
  119. package/dist/families/calendar/calendar-types.d.ts.map +1 -0
  120. package/dist/families/calendar/calendar-types.js +9 -0
  121. package/dist/families/calendar/calendar-types.js.map +1 -0
  122. package/dist/families/calendar/index.d.ts +20 -0
  123. package/dist/families/calendar/index.d.ts.map +1 -0
  124. package/dist/families/calendar/index.js +20 -0
  125. package/dist/families/calendar/index.js.map +1 -0
  126. package/dist/families/charts/BarsRankingWidgets.d.ts +10 -0
  127. package/dist/families/charts/BarsRankingWidgets.d.ts.map +1 -0
  128. package/dist/families/charts/BarsRankingWidgets.js +74 -0
  129. package/dist/families/charts/BarsRankingWidgets.js.map +1 -0
  130. package/dist/families/charts/ChartWidgets.d.ts +23 -0
  131. package/dist/families/charts/ChartWidgets.d.ts.map +1 -0
  132. package/dist/families/charts/ChartWidgets.js +82 -0
  133. package/dist/families/charts/ChartWidgets.js.map +1 -0
  134. package/dist/families/charts/DistributionCorrelationWidgets.d.ts +18 -0
  135. package/dist/families/charts/DistributionCorrelationWidgets.d.ts.map +1 -0
  136. package/dist/families/charts/DistributionCorrelationWidgets.js +132 -0
  137. package/dist/families/charts/DistributionCorrelationWidgets.js.map +1 -0
  138. package/dist/families/charts/MatrixGeoWidgets.d.ts +794 -0
  139. package/dist/families/charts/MatrixGeoWidgets.d.ts.map +1 -0
  140. package/dist/families/charts/MatrixGeoWidgets.js +213 -0
  141. package/dist/families/charts/MatrixGeoWidgets.js.map +1 -0
  142. package/dist/families/charts/PartWholeWidgets.d.ts +10 -0
  143. package/dist/families/charts/PartWholeWidgets.d.ts.map +1 -0
  144. package/dist/families/charts/PartWholeWidgets.js +67 -0
  145. package/dist/families/charts/PartWholeWidgets.js.map +1 -0
  146. package/dist/families/charts/TimeFlowWidgets.d.ts +10 -0
  147. package/dist/families/charts/TimeFlowWidgets.d.ts.map +1 -0
  148. package/dist/families/charts/TimeFlowWidgets.js +73 -0
  149. package/dist/families/charts/TimeFlowWidgets.js.map +1 -0
  150. package/dist/families/charts/bars-ranking-components.d.ts +8 -0
  151. package/dist/families/charts/bars-ranking-components.d.ts.map +1 -0
  152. package/dist/families/charts/bars-ranking-components.js +8 -0
  153. package/dist/families/charts/bars-ranking-components.js.map +1 -0
  154. package/dist/families/charts/bars-ranking-config.d.ts +1035 -0
  155. package/dist/families/charts/bars-ranking-config.d.ts.map +1 -0
  156. package/dist/families/charts/bars-ranking-config.js +72 -0
  157. package/dist/families/charts/bars-ranking-config.js.map +1 -0
  158. package/dist/families/charts/bars-ranking-definitions.d.ts +3 -0
  159. package/dist/families/charts/bars-ranking-definitions.d.ts.map +1 -0
  160. package/dist/families/charts/bars-ranking-definitions.js +107 -0
  161. package/dist/families/charts/bars-ranking-definitions.js.map +1 -0
  162. package/dist/families/charts/bars-ranking-demo.d.ts +41 -0
  163. package/dist/families/charts/bars-ranking-demo.d.ts.map +1 -0
  164. package/dist/families/charts/bars-ranking-demo.js +91 -0
  165. package/dist/families/charts/bars-ranking-demo.js.map +1 -0
  166. package/dist/families/charts/bars-ranking-shapes.d.ts +39 -0
  167. package/dist/families/charts/bars-ranking-shapes.d.ts.map +1 -0
  168. package/dist/families/charts/bars-ranking-shapes.js +115 -0
  169. package/dist/families/charts/bars-ranking-shapes.js.map +1 -0
  170. package/dist/families/charts/charts-config.d.ts +607 -0
  171. package/dist/families/charts/charts-config.d.ts.map +1 -0
  172. package/dist/families/charts/charts-config.js +56 -0
  173. package/dist/families/charts/charts-config.js.map +1 -0
  174. package/dist/families/charts/components.d.ts +6 -0
  175. package/dist/families/charts/components.d.ts.map +1 -0
  176. package/dist/families/charts/components.js +6 -0
  177. package/dist/families/charts/components.js.map +1 -0
  178. package/dist/families/charts/def.part-whole.d.ts +63 -0
  179. package/dist/families/charts/def.part-whole.d.ts.map +1 -0
  180. package/dist/families/charts/def.part-whole.js +203 -0
  181. package/dist/families/charts/def.part-whole.js.map +1 -0
  182. package/dist/families/charts/definitions.d.ts +37 -0
  183. package/dist/families/charts/definitions.d.ts.map +1 -0
  184. package/dist/families/charts/definitions.distribution-correlation.d.ts +3 -0
  185. package/dist/families/charts/definitions.distribution-correlation.d.ts.map +1 -0
  186. package/dist/families/charts/definitions.distribution-correlation.js +124 -0
  187. package/dist/families/charts/definitions.distribution-correlation.js.map +1 -0
  188. package/dist/families/charts/definitions.js +89 -0
  189. package/dist/families/charts/definitions.js.map +1 -0
  190. package/dist/families/charts/defs.matrix-geo.d.ts +63 -0
  191. package/dist/families/charts/defs.matrix-geo.d.ts.map +1 -0
  192. package/dist/families/charts/defs.matrix-geo.js +201 -0
  193. package/dist/families/charts/defs.matrix-geo.js.map +1 -0
  194. package/dist/families/charts/distributionShapes.d.ts +1049 -0
  195. package/dist/families/charts/distributionShapes.d.ts.map +1 -0
  196. package/dist/families/charts/distributionShapes.js +321 -0
  197. package/dist/families/charts/distributionShapes.js.map +1 -0
  198. package/dist/families/charts/index.d.ts +18 -0
  199. package/dist/families/charts/index.d.ts.map +1 -0
  200. package/dist/families/charts/index.js +15 -0
  201. package/dist/families/charts/index.js.map +1 -0
  202. package/dist/families/charts/part-whole-config.d.ts +1058 -0
  203. package/dist/families/charts/part-whole-config.d.ts.map +1 -0
  204. package/dist/families/charts/part-whole-config.js +127 -0
  205. package/dist/families/charts/part-whole-config.js.map +1 -0
  206. package/dist/families/charts/part-whole-shapes.d.ts +40 -0
  207. package/dist/families/charts/part-whole-shapes.d.ts.map +1 -0
  208. package/dist/families/charts/part-whole-shapes.js +89 -0
  209. package/dist/families/charts/part-whole-shapes.js.map +1 -0
  210. package/dist/families/charts/time-flow-adapters.d.ts +73 -0
  211. package/dist/families/charts/time-flow-adapters.d.ts.map +1 -0
  212. package/dist/families/charts/time-flow-adapters.js +196 -0
  213. package/dist/families/charts/time-flow-adapters.js.map +1 -0
  214. package/dist/families/charts/time-flow-components.d.ts +8 -0
  215. package/dist/families/charts/time-flow-components.d.ts.map +1 -0
  216. package/dist/families/charts/time-flow-components.js +8 -0
  217. package/dist/families/charts/time-flow-components.js.map +1 -0
  218. package/dist/families/charts/time-flow-config.d.ts +1014 -0
  219. package/dist/families/charts/time-flow-config.d.ts.map +1 -0
  220. package/dist/families/charts/time-flow-config.js +98 -0
  221. package/dist/families/charts/time-flow-config.js.map +1 -0
  222. package/dist/families/charts/time-flow-definitions.d.ts +3 -0
  223. package/dist/families/charts/time-flow-definitions.d.ts.map +1 -0
  224. package/dist/families/charts/time-flow-definitions.js +107 -0
  225. package/dist/families/charts/time-flow-definitions.js.map +1 -0
  226. package/dist/families/charts/time-flow-demo.d.ts +48 -0
  227. package/dist/families/charts/time-flow-demo.d.ts.map +1 -0
  228. package/dist/families/charts/time-flow-demo.js +179 -0
  229. package/dist/families/charts/time-flow-demo.js.map +1 -0
  230. package/dist/families/chrome/AvatarStackWidget.d.ts +32 -0
  231. package/dist/families/chrome/AvatarStackWidget.d.ts.map +1 -0
  232. package/dist/families/chrome/AvatarStackWidget.js +42 -0
  233. package/dist/families/chrome/AvatarStackWidget.js.map +1 -0
  234. package/dist/families/chrome/Breadcrumb.d.ts +22 -0
  235. package/dist/families/chrome/Breadcrumb.d.ts.map +1 -0
  236. package/dist/families/chrome/Breadcrumb.js +47 -0
  237. package/dist/families/chrome/Breadcrumb.js.map +1 -0
  238. package/dist/families/chrome/CommandPaletteWidget.d.ts +46 -0
  239. package/dist/families/chrome/CommandPaletteWidget.d.ts.map +1 -0
  240. package/dist/families/chrome/CommandPaletteWidget.js +121 -0
  241. package/dist/families/chrome/CommandPaletteWidget.js.map +1 -0
  242. package/dist/families/chrome/GlobalSearch.d.ts +63 -0
  243. package/dist/families/chrome/GlobalSearch.d.ts.map +1 -0
  244. package/dist/families/chrome/GlobalSearch.js +106 -0
  245. package/dist/families/chrome/GlobalSearch.js.map +1 -0
  246. package/dist/families/chrome/NavCard.d.ts +37 -0
  247. package/dist/families/chrome/NavCard.d.ts.map +1 -0
  248. package/dist/families/chrome/NavCard.js +67 -0
  249. package/dist/families/chrome/NavCard.js.map +1 -0
  250. package/dist/families/chrome/ShortcutsPanel.d.ts +42 -0
  251. package/dist/families/chrome/ShortcutsPanel.d.ts.map +1 -0
  252. package/dist/families/chrome/ShortcutsPanel.js +37 -0
  253. package/dist/families/chrome/ShortcutsPanel.js.map +1 -0
  254. package/dist/families/chrome/SidebarNav.d.ts +55 -0
  255. package/dist/families/chrome/SidebarNav.d.ts.map +1 -0
  256. package/dist/families/chrome/SidebarNav.js +90 -0
  257. package/dist/families/chrome/SidebarNav.js.map +1 -0
  258. package/dist/families/chrome/TabBar.d.ts +29 -0
  259. package/dist/families/chrome/TabBar.d.ts.map +1 -0
  260. package/dist/families/chrome/TabBar.js +61 -0
  261. package/dist/families/chrome/TabBar.js.map +1 -0
  262. package/dist/families/chrome/chrome-config.d.ts +1372 -0
  263. package/dist/families/chrome/chrome-config.d.ts.map +1 -0
  264. package/dist/families/chrome/chrome-config.js +356 -0
  265. package/dist/families/chrome/chrome-config.js.map +1 -0
  266. package/dist/families/chrome/chrome-icons.d.ts +6 -0
  267. package/dist/families/chrome/chrome-icons.d.ts.map +1 -0
  268. package/dist/families/chrome/chrome-icons.js +37 -0
  269. package/dist/families/chrome/chrome-icons.js.map +1 -0
  270. package/dist/families/chrome/chrome-lib.d.ts +82 -0
  271. package/dist/families/chrome/chrome-lib.d.ts.map +1 -0
  272. package/dist/families/chrome/chrome-lib.js +202 -0
  273. package/dist/families/chrome/chrome-lib.js.map +1 -0
  274. package/dist/families/chrome/chrome-track-components.d.ts +16 -0
  275. package/dist/families/chrome/chrome-track-components.d.ts.map +1 -0
  276. package/dist/families/chrome/chrome-track-components.js +16 -0
  277. package/dist/families/chrome/chrome-track-components.js.map +1 -0
  278. package/dist/families/chrome/chrome-track.definitions.d.ts +36 -0
  279. package/dist/families/chrome/chrome-track.definitions.d.ts.map +1 -0
  280. package/dist/families/chrome/chrome-track.definitions.js +138 -0
  281. package/dist/families/chrome/chrome-track.definitions.js.map +1 -0
  282. package/dist/families/chrome/index.d.ts +22 -0
  283. package/dist/families/chrome/index.d.ts.map +1 -0
  284. package/dist/families/chrome/index.js +22 -0
  285. package/dist/families/chrome/index.js.map +1 -0
  286. package/dist/families/communication/AiChatPanel.d.ts +51 -0
  287. package/dist/families/communication/AiChatPanel.d.ts.map +1 -0
  288. package/dist/families/communication/AiChatPanel.js +72 -0
  289. package/dist/families/communication/AiChatPanel.js.map +1 -0
  290. package/dist/families/communication/CallWidget.d.ts +45 -0
  291. package/dist/families/communication/CallWidget.d.ts.map +1 -0
  292. package/dist/families/communication/CallWidget.js +64 -0
  293. package/dist/families/communication/CallWidget.js.map +1 -0
  294. package/dist/families/communication/ChatThread.d.ts +49 -0
  295. package/dist/families/communication/ChatThread.d.ts.map +1 -0
  296. package/dist/families/communication/ChatThread.js +71 -0
  297. package/dist/families/communication/ChatThread.js.map +1 -0
  298. package/dist/families/communication/ConversationInbox.d.ts +47 -0
  299. package/dist/families/communication/ConversationInbox.d.ts.map +1 -0
  300. package/dist/families/communication/ConversationInbox.js +74 -0
  301. package/dist/families/communication/ConversationInbox.js.map +1 -0
  302. package/dist/families/communication/TypingIndicator.d.ts +40 -0
  303. package/dist/families/communication/TypingIndicator.d.ts.map +1 -0
  304. package/dist/families/communication/TypingIndicator.js +30 -0
  305. package/dist/families/communication/TypingIndicator.js.map +1 -0
  306. package/dist/families/communication/chat-lib.d.ts +159 -0
  307. package/dist/families/communication/chat-lib.d.ts.map +1 -0
  308. package/dist/families/communication/chat-lib.js +307 -0
  309. package/dist/families/communication/chat-lib.js.map +1 -0
  310. package/dist/families/communication/communication-config.d.ts +849 -0
  311. package/dist/families/communication/communication-config.d.ts.map +1 -0
  312. package/dist/families/communication/communication-config.js +331 -0
  313. package/dist/families/communication/communication-config.js.map +1 -0
  314. package/dist/families/communication/communication-track-components.d.ts +13 -0
  315. package/dist/families/communication/communication-track-components.d.ts.map +1 -0
  316. package/dist/families/communication/communication-track-components.js +13 -0
  317. package/dist/families/communication/communication-track-components.js.map +1 -0
  318. package/dist/families/communication/communication-track.definitions.d.ts +23 -0
  319. package/dist/families/communication/communication-track.definitions.d.ts.map +1 -0
  320. package/dist/families/communication/communication-track.definitions.js +99 -0
  321. package/dist/families/communication/communication-track.definitions.js.map +1 -0
  322. package/dist/families/communication/index.d.ts +16 -0
  323. package/dist/families/communication/index.d.ts.map +1 -0
  324. package/dist/families/communication/index.js +16 -0
  325. package/dist/families/communication/index.js.map +1 -0
  326. package/dist/families/domain/ApiKeysPanel.d.ts +57 -0
  327. package/dist/families/domain/ApiKeysPanel.d.ts.map +1 -0
  328. package/dist/families/domain/ApiKeysPanel.js +121 -0
  329. package/dist/families/domain/ApiKeysPanel.js.map +1 -0
  330. package/dist/families/domain/ApiPlayground.d.ts +51 -0
  331. package/dist/families/domain/ApiPlayground.d.ts.map +1 -0
  332. package/dist/families/domain/ApiPlayground.js +110 -0
  333. package/dist/families/domain/ApiPlayground.js.map +1 -0
  334. package/dist/families/domain/BlockContent.d.ts +11 -0
  335. package/dist/families/domain/BlockContent.d.ts.map +1 -0
  336. package/dist/families/domain/BlockContent.js +42 -0
  337. package/dist/families/domain/BlockContent.js.map +1 -0
  338. package/dist/families/domain/BlockFinancial.d.ts +32 -0
  339. package/dist/families/domain/BlockFinancial.d.ts.map +1 -0
  340. package/dist/families/domain/BlockFinancial.js +205 -0
  341. package/dist/families/domain/BlockFinancial.js.map +1 -0
  342. package/dist/families/domain/BlockReport.d.ts +11 -0
  343. package/dist/families/domain/BlockReport.d.ts.map +1 -0
  344. package/dist/families/domain/BlockReport.js +129 -0
  345. package/dist/families/domain/BlockReport.js.map +1 -0
  346. package/dist/families/domain/BlockShell.d.ts +60 -0
  347. package/dist/families/domain/BlockShell.d.ts.map +1 -0
  348. package/dist/families/domain/BlockShell.js +76 -0
  349. package/dist/families/domain/BlockShell.js.map +1 -0
  350. package/dist/families/domain/BlockStatus.d.ts +30 -0
  351. package/dist/families/domain/BlockStatus.d.ts.map +1 -0
  352. package/dist/families/domain/BlockStatus.js +143 -0
  353. package/dist/families/domain/BlockStatus.js.map +1 -0
  354. package/dist/families/domain/CreditCardTile.d.ts +44 -0
  355. package/dist/families/domain/CreditCardTile.d.ts.map +1 -0
  356. package/dist/families/domain/CreditCardTile.js +105 -0
  357. package/dist/families/domain/CreditCardTile.js.map +1 -0
  358. package/dist/families/domain/DocumentCanvas.d.ts +7 -0
  359. package/dist/families/domain/DocumentCanvas.d.ts.map +1 -0
  360. package/dist/families/domain/DocumentCanvas.js +144 -0
  361. package/dist/families/domain/DocumentCanvas.js.map +1 -0
  362. package/dist/families/domain/ExperimentVariantCompare.d.ts +41 -0
  363. package/dist/families/domain/ExperimentVariantCompare.d.ts.map +1 -0
  364. package/dist/families/domain/ExperimentVariantCompare.js +90 -0
  365. package/dist/families/domain/ExperimentVariantCompare.js.map +1 -0
  366. package/dist/families/domain/GanttChart.d.ts +60 -0
  367. package/dist/families/domain/GanttChart.d.ts.map +1 -0
  368. package/dist/families/domain/GanttChart.js +112 -0
  369. package/dist/families/domain/GanttChart.js.map +1 -0
  370. package/dist/families/domain/OpsApi.d.ts +45 -0
  371. package/dist/families/domain/OpsApi.d.ts.map +1 -0
  372. package/dist/families/domain/OpsApi.js +167 -0
  373. package/dist/families/domain/OpsApi.js.map +1 -0
  374. package/dist/families/domain/OpsEmpty.d.ts +21 -0
  375. package/dist/families/domain/OpsEmpty.d.ts.map +1 -0
  376. package/dist/families/domain/OpsEmpty.js +6 -0
  377. package/dist/families/domain/OpsEmpty.js.map +1 -0
  378. package/dist/families/domain/OpsMonitoring.d.ts +71 -0
  379. package/dist/families/domain/OpsMonitoring.d.ts.map +1 -0
  380. package/dist/families/domain/OpsMonitoring.js +179 -0
  381. package/dist/families/domain/OpsMonitoring.js.map +1 -0
  382. package/dist/families/domain/OpsOnboarding.d.ts +29 -0
  383. package/dist/families/domain/OpsOnboarding.d.ts.map +1 -0
  384. package/dist/families/domain/OpsOnboarding.js +191 -0
  385. package/dist/families/domain/OpsOnboarding.js.map +1 -0
  386. package/dist/families/domain/OpsTrust.d.ts +43 -0
  387. package/dist/families/domain/OpsTrust.d.ts.map +1 -0
  388. package/dist/families/domain/OpsTrust.js +153 -0
  389. package/dist/families/domain/OpsTrust.js.map +1 -0
  390. package/dist/families/domain/OrgChart.d.ts +45 -0
  391. package/dist/families/domain/OrgChart.d.ts.map +1 -0
  392. package/dist/families/domain/OrgChart.js +110 -0
  393. package/dist/families/domain/OrgChart.js.map +1 -0
  394. package/dist/families/domain/PlanPricingCards.d.ts +43 -0
  395. package/dist/families/domain/PlanPricingCards.d.ts.map +1 -0
  396. package/dist/families/domain/PlanPricingCards.js +85 -0
  397. package/dist/families/domain/PlanPricingCards.js.map +1 -0
  398. package/dist/families/domain/SloMonitorCard.d.ts +43 -0
  399. package/dist/families/domain/SloMonitorCard.d.ts.map +1 -0
  400. package/dist/families/domain/SloMonitorCard.js +76 -0
  401. package/dist/families/domain/SloMonitorCard.js.map +1 -0
  402. package/dist/families/domain/UptimeSegmentBar.d.ts +42 -0
  403. package/dist/families/domain/UptimeSegmentBar.d.ts.map +1 -0
  404. package/dist/families/domain/UptimeSegmentBar.js +81 -0
  405. package/dist/families/domain/UptimeSegmentBar.js.map +1 -0
  406. package/dist/families/domain/block-lib.d.ts +159 -0
  407. package/dist/families/domain/block-lib.d.ts.map +1 -0
  408. package/dist/families/domain/block-lib.js +390 -0
  409. package/dist/families/domain/block-lib.js.map +1 -0
  410. package/dist/families/domain/block-types.d.ts +227 -0
  411. package/dist/families/domain/block-types.d.ts.map +1 -0
  412. package/dist/families/domain/block-types.js +23 -0
  413. package/dist/families/domain/block-types.js.map +1 -0
  414. package/dist/families/domain/blocks-config.d.ts +3510 -0
  415. package/dist/families/domain/blocks-config.d.ts.map +1 -0
  416. package/dist/families/domain/blocks-config.js +645 -0
  417. package/dist/families/domain/blocks-config.js.map +1 -0
  418. package/dist/families/domain/blocks-track-components.d.ts +16 -0
  419. package/dist/families/domain/blocks-track-components.d.ts.map +1 -0
  420. package/dist/families/domain/blocks-track-components.js +16 -0
  421. package/dist/families/domain/blocks-track-components.js.map +1 -0
  422. package/dist/families/domain/blocks-track.definitions.d.ts +66 -0
  423. package/dist/families/domain/blocks-track.definitions.d.ts.map +1 -0
  424. package/dist/families/domain/blocks-track.definitions.js +379 -0
  425. package/dist/families/domain/blocks-track.definitions.js.map +1 -0
  426. package/dist/families/domain/domain-config.d.ts +352 -0
  427. package/dist/families/domain/domain-config.d.ts.map +1 -0
  428. package/dist/families/domain/domain-config.js +187 -0
  429. package/dist/families/domain/domain-config.js.map +1 -0
  430. package/dist/families/domain/domain-lib.d.ts +227 -0
  431. package/dist/families/domain/domain-lib.d.ts.map +1 -0
  432. package/dist/families/domain/domain-lib.js +494 -0
  433. package/dist/families/domain/domain-lib.js.map +1 -0
  434. package/dist/families/domain/domain-ops-config.d.ts +2939 -0
  435. package/dist/families/domain/domain-ops-config.d.ts.map +1 -0
  436. package/dist/families/domain/domain-ops-config.js +976 -0
  437. package/dist/families/domain/domain-ops-config.js.map +1 -0
  438. package/dist/families/domain/domain-ops-lib.d.ts +214 -0
  439. package/dist/families/domain/domain-ops-lib.d.ts.map +1 -0
  440. package/dist/families/domain/domain-ops-lib.js +489 -0
  441. package/dist/families/domain/domain-ops-lib.js.map +1 -0
  442. package/dist/families/domain/domain-ops-track-components.d.ts +28 -0
  443. package/dist/families/domain/domain-ops-track-components.d.ts.map +1 -0
  444. package/dist/families/domain/domain-ops-track-components.js +28 -0
  445. package/dist/families/domain/domain-ops-track-components.js.map +1 -0
  446. package/dist/families/domain/domain-ops-track.definitions.d.ts +56 -0
  447. package/dist/families/domain/domain-ops-track.definitions.d.ts.map +1 -0
  448. package/dist/families/domain/domain-ops-track.definitions.js +364 -0
  449. package/dist/families/domain/domain-ops-track.definitions.js.map +1 -0
  450. package/dist/families/domain/domain-ops-types.d.ts +226 -0
  451. package/dist/families/domain/domain-ops-types.d.ts.map +1 -0
  452. package/dist/families/domain/domain-ops-types.js +29 -0
  453. package/dist/families/domain/domain-ops-types.js.map +1 -0
  454. package/dist/families/domain/domain-track-components.d.ts +10 -0
  455. package/dist/families/domain/domain-track-components.d.ts.map +1 -0
  456. package/dist/families/domain/domain-track-components.js +10 -0
  457. package/dist/families/domain/domain-track-components.js.map +1 -0
  458. package/dist/families/domain/domain-track.definitions.d.ts +22 -0
  459. package/dist/families/domain/domain-track.definitions.d.ts.map +1 -0
  460. package/dist/families/domain/domain-track.definitions.js +66 -0
  461. package/dist/families/domain/domain-track.definitions.js.map +1 -0
  462. package/dist/families/domain/domain-types.d.ts +86 -0
  463. package/dist/families/domain/domain-types.d.ts.map +1 -0
  464. package/dist/families/domain/domain-types.js +18 -0
  465. package/dist/families/domain/domain-types.js.map +1 -0
  466. package/dist/families/domain/index.d.ts +44 -0
  467. package/dist/families/domain/index.d.ts.map +1 -0
  468. package/dist/families/domain/index.js +45 -0
  469. package/dist/families/domain/index.js.map +1 -0
  470. package/dist/families/feeds/ActivityFeed.d.ts +28 -0
  471. package/dist/families/feeds/ActivityFeed.d.ts.map +1 -0
  472. package/dist/families/feeds/ActivityFeed.js +41 -0
  473. package/dist/families/feeds/ActivityFeed.js.map +1 -0
  474. package/dist/families/feeds/LoadOlderPaginator.d.ts +45 -0
  475. package/dist/families/feeds/LoadOlderPaginator.d.ts.map +1 -0
  476. package/dist/families/feeds/LoadOlderPaginator.js +59 -0
  477. package/dist/families/feeds/LoadOlderPaginator.js.map +1 -0
  478. package/dist/families/feeds/NotificationFeed.d.ts +33 -0
  479. package/dist/families/feeds/NotificationFeed.d.ts.map +1 -0
  480. package/dist/families/feeds/NotificationFeed.js +122 -0
  481. package/dist/families/feeds/NotificationFeed.js.map +1 -0
  482. package/dist/families/feeds/RealtimeFeed.d.ts +29 -0
  483. package/dist/families/feeds/RealtimeFeed.d.ts.map +1 -0
  484. package/dist/families/feeds/RealtimeFeed.js +110 -0
  485. package/dist/families/feeds/RealtimeFeed.js.map +1 -0
  486. package/dist/families/feeds/TimelineVertical.d.ts +28 -0
  487. package/dist/families/feeds/TimelineVertical.d.ts.map +1 -0
  488. package/dist/families/feeds/TimelineVertical.js +64 -0
  489. package/dist/families/feeds/TimelineVertical.js.map +1 -0
  490. package/dist/families/feeds/ToastStack.d.ts +42 -0
  491. package/dist/families/feeds/ToastStack.d.ts.map +1 -0
  492. package/dist/families/feeds/ToastStack.js +120 -0
  493. package/dist/families/feeds/ToastStack.js.map +1 -0
  494. package/dist/families/feeds/UnreadBadge.d.ts +23 -0
  495. package/dist/families/feeds/UnreadBadge.d.ts.map +1 -0
  496. package/dist/families/feeds/UnreadBadge.js +42 -0
  497. package/dist/families/feeds/UnreadBadge.js.map +1 -0
  498. package/dist/families/feeds/feed-demo-lib.d.ts +22 -0
  499. package/dist/families/feeds/feed-demo-lib.d.ts.map +1 -0
  500. package/dist/families/feeds/feed-demo-lib.js +33 -0
  501. package/dist/families/feeds/feed-demo-lib.js.map +1 -0
  502. package/dist/families/feeds/feed-icons.d.ts +4 -0
  503. package/dist/families/feeds/feed-icons.d.ts.map +1 -0
  504. package/dist/families/feeds/feed-icons.js +39 -0
  505. package/dist/families/feeds/feed-icons.js.map +1 -0
  506. package/dist/families/feeds/feed-lib.d.ts +42 -0
  507. package/dist/families/feeds/feed-lib.d.ts.map +1 -0
  508. package/dist/families/feeds/feed-lib.js +61 -0
  509. package/dist/families/feeds/feed-lib.js.map +1 -0
  510. package/dist/families/feeds/feeds-config.d.ts +1114 -0
  511. package/dist/families/feeds/feeds-config.d.ts.map +1 -0
  512. package/dist/families/feeds/feeds-config.js +278 -0
  513. package/dist/families/feeds/feeds-config.js.map +1 -0
  514. package/dist/families/feeds/feeds-track-f-components.d.ts +15 -0
  515. package/dist/families/feeds/feeds-track-f-components.d.ts.map +1 -0
  516. package/dist/families/feeds/feeds-track-f-components.js +16 -0
  517. package/dist/families/feeds/feeds-track-f-components.js.map +1 -0
  518. package/dist/families/feeds/feeds-track-f.definitions.d.ts +39 -0
  519. package/dist/families/feeds/feeds-track-f.definitions.d.ts.map +1 -0
  520. package/dist/families/feeds/feeds-track-f.definitions.js +129 -0
  521. package/dist/families/feeds/feeds-track-f.definitions.js.map +1 -0
  522. package/dist/families/feeds/feeds-types.d.ts +85 -0
  523. package/dist/families/feeds/feeds-types.d.ts.map +1 -0
  524. package/dist/families/feeds/feeds-types.js +12 -0
  525. package/dist/families/feeds/feeds-types.js.map +1 -0
  526. package/dist/families/feeds/index.d.ts +16 -0
  527. package/dist/families/feeds/index.d.ts.map +1 -0
  528. package/dist/families/feeds/index.js +16 -0
  529. package/dist/families/feeds/index.js.map +1 -0
  530. package/dist/families/forms/ColumnMappingTable.d.ts +37 -0
  531. package/dist/families/forms/ColumnMappingTable.d.ts.map +1 -0
  532. package/dist/families/forms/ColumnMappingTable.js +76 -0
  533. package/dist/families/forms/ColumnMappingTable.js.map +1 -0
  534. package/dist/families/forms/ConnectionStringField.d.ts +74 -0
  535. package/dist/families/forms/ConnectionStringField.d.ts.map +1 -0
  536. package/dist/families/forms/ConnectionStringField.js +103 -0
  537. package/dist/families/forms/ConnectionStringField.js.map +1 -0
  538. package/dist/families/forms/DrawerForm.d.ts +20 -0
  539. package/dist/families/forms/DrawerForm.d.ts.map +1 -0
  540. package/dist/families/forms/DrawerForm.js +60 -0
  541. package/dist/families/forms/DrawerForm.js.map +1 -0
  542. package/dist/families/forms/ExportBuilder.d.ts +31 -0
  543. package/dist/families/forms/ExportBuilder.d.ts.map +1 -0
  544. package/dist/families/forms/ExportBuilder.js +76 -0
  545. package/dist/families/forms/ExportBuilder.js.map +1 -0
  546. package/dist/families/forms/FilterChipBar.d.ts +49 -0
  547. package/dist/families/forms/FilterChipBar.d.ts.map +1 -0
  548. package/dist/families/forms/FilterChipBar.js +82 -0
  549. package/dist/families/forms/FilterChipBar.js.map +1 -0
  550. package/dist/families/forms/FlowBuilder.d.ts +40 -0
  551. package/dist/families/forms/FlowBuilder.d.ts.map +1 -0
  552. package/dist/families/forms/FlowBuilder.js +128 -0
  553. package/dist/families/forms/FlowBuilder.js.map +1 -0
  554. package/dist/families/forms/FormFields.d.ts +28 -0
  555. package/dist/families/forms/FormFields.d.ts.map +1 -0
  556. package/dist/families/forms/FormFields.js +60 -0
  557. package/dist/families/forms/FormFields.js.map +1 -0
  558. package/dist/families/forms/InlineEditableField.d.ts +28 -0
  559. package/dist/families/forms/InlineEditableField.d.ts.map +1 -0
  560. package/dist/families/forms/InlineEditableField.js +130 -0
  561. package/dist/families/forms/InlineEditableField.js.map +1 -0
  562. package/dist/families/forms/InputWidgets.d.ts +35 -0
  563. package/dist/families/forms/InputWidgets.d.ts.map +1 -0
  564. package/dist/families/forms/InputWidgets.js +116 -0
  565. package/dist/families/forms/InputWidgets.js.map +1 -0
  566. package/dist/families/forms/ModalWizard.d.ts +28 -0
  567. package/dist/families/forms/ModalWizard.d.ts.map +1 -0
  568. package/dist/families/forms/ModalWizard.js +77 -0
  569. package/dist/families/forms/ModalWizard.js.map +1 -0
  570. package/dist/families/forms/OptionCards.d.ts +26 -0
  571. package/dist/families/forms/OptionCards.d.ts.map +1 -0
  572. package/dist/families/forms/OptionCards.js +73 -0
  573. package/dist/families/forms/OptionCards.js.map +1 -0
  574. package/dist/families/forms/ProgressBarWidget.d.ts +17 -0
  575. package/dist/families/forms/ProgressBarWidget.d.ts.map +1 -0
  576. package/dist/families/forms/ProgressBarWidget.js +28 -0
  577. package/dist/families/forms/ProgressBarWidget.js.map +1 -0
  578. package/dist/families/forms/QuestionBuilder.d.ts +35 -0
  579. package/dist/families/forms/QuestionBuilder.d.ts.map +1 -0
  580. package/dist/families/forms/QuestionBuilder.js +133 -0
  581. package/dist/families/forms/QuestionBuilder.js.map +1 -0
  582. package/dist/families/forms/RuleBuilder.d.ts +42 -0
  583. package/dist/families/forms/RuleBuilder.d.ts.map +1 -0
  584. package/dist/families/forms/RuleBuilder.js +150 -0
  585. package/dist/families/forms/RuleBuilder.js.map +1 -0
  586. package/dist/families/forms/StepperWidget.d.ts +33 -0
  587. package/dist/families/forms/StepperWidget.d.ts.map +1 -0
  588. package/dist/families/forms/StepperWidget.js +70 -0
  589. package/dist/families/forms/StepperWidget.js.map +1 -0
  590. package/dist/families/forms/TableInclusionChecklist.d.ts +71 -0
  591. package/dist/families/forms/TableInclusionChecklist.d.ts.map +1 -0
  592. package/dist/families/forms/TableInclusionChecklist.js +119 -0
  593. package/dist/families/forms/TableInclusionChecklist.js.map +1 -0
  594. package/dist/families/forms/ToggleSwitchList.d.ts +21 -0
  595. package/dist/families/forms/ToggleSwitchList.d.ts.map +1 -0
  596. package/dist/families/forms/ToggleSwitchList.js +78 -0
  597. package/dist/families/forms/ToggleSwitchList.js.map +1 -0
  598. package/dist/families/forms/ValidationIssuesList.d.ts +35 -0
  599. package/dist/families/forms/ValidationIssuesList.d.ts.map +1 -0
  600. package/dist/families/forms/ValidationIssuesList.js +64 -0
  601. package/dist/families/forms/ValidationIssuesList.js.map +1 -0
  602. package/dist/families/forms/forms-builders.d.ts +106 -0
  603. package/dist/families/forms/forms-builders.d.ts.map +1 -0
  604. package/dist/families/forms/forms-builders.js +211 -0
  605. package/dist/families/forms/forms-builders.js.map +1 -0
  606. package/dist/families/forms/forms-config.d.ts +3399 -0
  607. package/dist/families/forms/forms-config.d.ts.map +1 -0
  608. package/dist/families/forms/forms-config.js +695 -0
  609. package/dist/families/forms/forms-config.js.map +1 -0
  610. package/dist/families/forms/forms-dsn.d.ts +88 -0
  611. package/dist/families/forms/forms-dsn.d.ts.map +1 -0
  612. package/dist/families/forms/forms-dsn.js +173 -0
  613. package/dist/families/forms/forms-dsn.js.map +1 -0
  614. package/dist/families/forms/forms-icons.d.ts +13 -0
  615. package/dist/families/forms/forms-icons.d.ts.map +1 -0
  616. package/dist/families/forms/forms-icons.js +65 -0
  617. package/dist/families/forms/forms-icons.js.map +1 -0
  618. package/dist/families/forms/forms-lib.d.ts +74 -0
  619. package/dist/families/forms/forms-lib.d.ts.map +1 -0
  620. package/dist/families/forms/forms-lib.js +176 -0
  621. package/dist/families/forms/forms-lib.js.map +1 -0
  622. package/dist/families/forms/forms-state.d.ts +62 -0
  623. package/dist/families/forms/forms-state.d.ts.map +1 -0
  624. package/dist/families/forms/forms-state.js +103 -0
  625. package/dist/families/forms/forms-state.js.map +1 -0
  626. package/dist/families/forms/forms-tables.d.ts +49 -0
  627. package/dist/families/forms/forms-tables.d.ts.map +1 -0
  628. package/dist/families/forms/forms-tables.js +42 -0
  629. package/dist/families/forms/forms-tables.js.map +1 -0
  630. package/dist/families/forms/forms-track-components.d.ts +25 -0
  631. package/dist/families/forms/forms-track-components.d.ts.map +1 -0
  632. package/dist/families/forms/forms-track-components.js +25 -0
  633. package/dist/families/forms/forms-track-components.js.map +1 -0
  634. package/dist/families/forms/forms-track.definitions.d.ts +64 -0
  635. package/dist/families/forms/forms-track.definitions.d.ts.map +1 -0
  636. package/dist/families/forms/forms-track.definitions.js +333 -0
  637. package/dist/families/forms/forms-track.definitions.js.map +1 -0
  638. package/dist/families/forms/index.d.ts +37 -0
  639. package/dist/families/forms/index.d.ts.map +1 -0
  640. package/dist/families/forms/index.js +39 -0
  641. package/dist/families/forms/index.js.map +1 -0
  642. package/dist/families/geo/MapBubble.d.ts +27 -0
  643. package/dist/families/geo/MapBubble.d.ts.map +1 -0
  644. package/dist/families/geo/MapBubble.js +209 -0
  645. package/dist/families/geo/MapBubble.js.map +1 -0
  646. package/dist/families/geo/MapChoroplethGrid.d.ts +53 -0
  647. package/dist/families/geo/MapChoroplethGrid.d.ts.map +1 -0
  648. package/dist/families/geo/MapChoroplethGrid.js +42 -0
  649. package/dist/families/geo/MapChoroplethGrid.js.map +1 -0
  650. package/dist/families/geo/geo-config.d.ts +375 -0
  651. package/dist/families/geo/geo-config.d.ts.map +1 -0
  652. package/dist/families/geo/geo-config.js +177 -0
  653. package/dist/families/geo/geo-config.js.map +1 -0
  654. package/dist/families/geo/geo-lib.d.ts +108 -0
  655. package/dist/families/geo/geo-lib.d.ts.map +1 -0
  656. package/dist/families/geo/geo-lib.js +228 -0
  657. package/dist/families/geo/geo-lib.js.map +1 -0
  658. package/dist/families/geo/geo-track-components.d.ts +16 -0
  659. package/dist/families/geo/geo-track-components.d.ts.map +1 -0
  660. package/dist/families/geo/geo-track-components.js +16 -0
  661. package/dist/families/geo/geo-track-components.js.map +1 -0
  662. package/dist/families/geo/geo-track.definitions.d.ts +21 -0
  663. package/dist/families/geo/geo-track.definitions.d.ts.map +1 -0
  664. package/dist/families/geo/geo-track.definitions.js +54 -0
  665. package/dist/families/geo/geo-track.definitions.js.map +1 -0
  666. package/dist/families/geo/index.d.ts +17 -0
  667. package/dist/families/geo/index.d.ts.map +1 -0
  668. package/dist/families/geo/index.js +17 -0
  669. package/dist/families/geo/index.js.map +1 -0
  670. package/dist/families/kpi/AutoInsights.d.ts +47 -0
  671. package/dist/families/kpi/AutoInsights.d.ts.map +1 -0
  672. package/dist/families/kpi/AutoInsights.js +126 -0
  673. package/dist/families/kpi/AutoInsights.js.map +1 -0
  674. package/dist/families/kpi/GaugeArc.d.ts +31 -0
  675. package/dist/families/kpi/GaugeArc.d.ts.map +1 -0
  676. package/dist/families/kpi/GaugeArc.js +121 -0
  677. package/dist/families/kpi/GaugeArc.js.map +1 -0
  678. package/dist/families/kpi/GaugeRing.d.ts +28 -0
  679. package/dist/families/kpi/GaugeRing.d.ts.map +1 -0
  680. package/dist/families/kpi/GaugeRing.js +96 -0
  681. package/dist/families/kpi/GaugeRing.js.map +1 -0
  682. package/dist/families/kpi/KpiStatCard.d.ts +13 -0
  683. package/dist/families/kpi/KpiStatCard.d.ts.map +1 -0
  684. package/dist/families/kpi/KpiStatCard.js +43 -0
  685. package/dist/families/kpi/KpiStatCard.js.map +1 -0
  686. package/dist/families/kpi/KpiStatTileCompact.d.ts +13 -0
  687. package/dist/families/kpi/KpiStatTileCompact.d.ts.map +1 -0
  688. package/dist/families/kpi/KpiStatTileCompact.js +29 -0
  689. package/dist/families/kpi/KpiStatTileCompact.js.map +1 -0
  690. package/dist/families/kpi/MetricHero.d.ts +25 -0
  691. package/dist/families/kpi/MetricHero.d.ts.map +1 -0
  692. package/dist/families/kpi/MetricHero.js +85 -0
  693. package/dist/families/kpi/MetricHero.js.map +1 -0
  694. package/dist/families/kpi/MicroKpiSubtitle.d.ts +24 -0
  695. package/dist/families/kpi/MicroKpiSubtitle.d.ts.map +1 -0
  696. package/dist/families/kpi/MicroKpiSubtitle.js +46 -0
  697. package/dist/families/kpi/MicroKpiSubtitle.js.map +1 -0
  698. package/dist/families/kpi/PeriodComparison.d.ts +20 -0
  699. package/dist/families/kpi/PeriodComparison.d.ts.map +1 -0
  700. package/dist/families/kpi/PeriodComparison.js +49 -0
  701. package/dist/families/kpi/PeriodComparison.js.map +1 -0
  702. package/dist/families/kpi/StatPairCard.d.ts +26 -0
  703. package/dist/families/kpi/StatPairCard.d.ts.map +1 -0
  704. package/dist/families/kpi/StatPairCard.js +54 -0
  705. package/dist/families/kpi/StatPairCard.js.map +1 -0
  706. package/dist/families/kpi/UsageMeter.d.ts +12 -0
  707. package/dist/families/kpi/UsageMeter.d.ts.map +1 -0
  708. package/dist/families/kpi/UsageMeter.js +31 -0
  709. package/dist/families/kpi/UsageMeter.js.map +1 -0
  710. package/dist/families/kpi/components.d.ts +19 -0
  711. package/dist/families/kpi/components.d.ts.map +1 -0
  712. package/dist/families/kpi/components.js +19 -0
  713. package/dist/families/kpi/components.js.map +1 -0
  714. package/dist/families/kpi/definitions.d.ts +22 -0
  715. package/dist/families/kpi/definitions.d.ts.map +1 -0
  716. package/dist/families/kpi/definitions.js +159 -0
  717. package/dist/families/kpi/definitions.js.map +1 -0
  718. package/dist/families/kpi/kpi-config.d.ts +1700 -0
  719. package/dist/families/kpi/kpi-config.d.ts.map +1 -0
  720. package/dist/families/kpi/kpi-config.js +418 -0
  721. package/dist/families/kpi/kpi-config.js.map +1 -0
  722. package/dist/families/kpi/kpi-icons.d.ts +7 -0
  723. package/dist/families/kpi/kpi-icons.d.ts.map +1 -0
  724. package/dist/families/kpi/kpi-icons.js +28 -0
  725. package/dist/families/kpi/kpi-icons.js.map +1 -0
  726. package/dist/families/kpi/kpi-lib.d.ts +173 -0
  727. package/dist/families/kpi/kpi-lib.d.ts.map +1 -0
  728. package/dist/families/kpi/kpi-lib.js +243 -0
  729. package/dist/families/kpi/kpi-lib.js.map +1 -0
  730. package/dist/families/media/AttachmentList.d.ts +43 -0
  731. package/dist/families/media/AttachmentList.d.ts.map +1 -0
  732. package/dist/families/media/AttachmentList.js +52 -0
  733. package/dist/families/media/AttachmentList.js.map +1 -0
  734. package/dist/families/media/FileBrowser.d.ts +57 -0
  735. package/dist/families/media/FileBrowser.d.ts.map +1 -0
  736. package/dist/families/media/FileBrowser.js +158 -0
  737. package/dist/families/media/FileBrowser.js.map +1 -0
  738. package/dist/families/media/ImageBoard.d.ts +41 -0
  739. package/dist/families/media/ImageBoard.d.ts.map +1 -0
  740. package/dist/families/media/ImageBoard.js +67 -0
  741. package/dist/families/media/ImageBoard.js.map +1 -0
  742. package/dist/families/media/LinkList.d.ts +48 -0
  743. package/dist/families/media/LinkList.d.ts.map +1 -0
  744. package/dist/families/media/LinkList.js +89 -0
  745. package/dist/families/media/LinkList.js.map +1 -0
  746. package/dist/families/media/UploadDropzone.d.ts +41 -0
  747. package/dist/families/media/UploadDropzone.d.ts.map +1 -0
  748. package/dist/families/media/UploadDropzone.js +54 -0
  749. package/dist/families/media/UploadDropzone.js.map +1 -0
  750. package/dist/families/media/UploadProgressList.d.ts +58 -0
  751. package/dist/families/media/UploadProgressList.d.ts.map +1 -0
  752. package/dist/families/media/UploadProgressList.js +81 -0
  753. package/dist/families/media/UploadProgressList.js.map +1 -0
  754. package/dist/families/media/index.d.ts +20 -0
  755. package/dist/families/media/index.d.ts.map +1 -0
  756. package/dist/families/media/index.js +20 -0
  757. package/dist/families/media/index.js.map +1 -0
  758. package/dist/families/media/media-config.d.ts +1035 -0
  759. package/dist/families/media/media-config.d.ts.map +1 -0
  760. package/dist/families/media/media-config.js +362 -0
  761. package/dist/families/media/media-config.js.map +1 -0
  762. package/dist/families/media/media-icons.d.ts +14 -0
  763. package/dist/families/media/media-icons.d.ts.map +1 -0
  764. package/dist/families/media/media-icons.js +44 -0
  765. package/dist/families/media/media-icons.js.map +1 -0
  766. package/dist/families/media/media-lib.d.ts +149 -0
  767. package/dist/families/media/media-lib.d.ts.map +1 -0
  768. package/dist/families/media/media-lib.js +333 -0
  769. package/dist/families/media/media-lib.js.map +1 -0
  770. package/dist/families/media/media-track-components.d.ts +14 -0
  771. package/dist/families/media/media-track-components.d.ts.map +1 -0
  772. package/dist/families/media/media-track-components.js +14 -0
  773. package/dist/families/media/media-track-components.js.map +1 -0
  774. package/dist/families/media/media-track.definitions.d.ts +26 -0
  775. package/dist/families/media/media-track.definitions.d.ts.map +1 -0
  776. package/dist/families/media/media-track.definitions.js +107 -0
  777. package/dist/families/media/media-track.definitions.js.map +1 -0
  778. package/dist/families/system/AlertBanner.d.ts +31 -0
  779. package/dist/families/system/AlertBanner.d.ts.map +1 -0
  780. package/dist/families/system/AlertBanner.js +69 -0
  781. package/dist/families/system/AlertBanner.js.map +1 -0
  782. package/dist/families/system/AutosaveIndicatorWidget.d.ts +43 -0
  783. package/dist/families/system/AutosaveIndicatorWidget.d.ts.map +1 -0
  784. package/dist/families/system/AutosaveIndicatorWidget.js +51 -0
  785. package/dist/families/system/AutosaveIndicatorWidget.js.map +1 -0
  786. package/dist/families/system/ConnectionStatus.d.ts +28 -0
  787. package/dist/families/system/ConnectionStatus.d.ts.map +1 -0
  788. package/dist/families/system/ConnectionStatus.js +53 -0
  789. package/dist/families/system/ConnectionStatus.js.map +1 -0
  790. package/dist/families/system/DiagnosticsReadout.d.ts +31 -0
  791. package/dist/families/system/DiagnosticsReadout.d.ts.map +1 -0
  792. package/dist/families/system/DiagnosticsReadout.js +49 -0
  793. package/dist/families/system/DiagnosticsReadout.js.map +1 -0
  794. package/dist/families/system/EmptyStateWidget.d.ts +25 -0
  795. package/dist/families/system/EmptyStateWidget.d.ts.map +1 -0
  796. package/dist/families/system/EmptyStateWidget.js +44 -0
  797. package/dist/families/system/EmptyStateWidget.js.map +1 -0
  798. package/dist/families/system/ProgressLogConsole.d.ts +58 -0
  799. package/dist/families/system/ProgressLogConsole.d.ts.map +1 -0
  800. package/dist/families/system/ProgressLogConsole.js +111 -0
  801. package/dist/families/system/ProgressLogConsole.js.map +1 -0
  802. package/dist/families/system/StateHero.d.ts +34 -0
  803. package/dist/families/system/StateHero.d.ts.map +1 -0
  804. package/dist/families/system/StateHero.js +102 -0
  805. package/dist/families/system/StateHero.js.map +1 -0
  806. package/dist/families/system/StatusBannerHero.d.ts +35 -0
  807. package/dist/families/system/StatusBannerHero.d.ts.map +1 -0
  808. package/dist/families/system/StatusBannerHero.js +65 -0
  809. package/dist/families/system/StatusBannerHero.js.map +1 -0
  810. package/dist/families/system/StatusPill.d.ts +38 -0
  811. package/dist/families/system/StatusPill.d.ts.map +1 -0
  812. package/dist/families/system/StatusPill.js +42 -0
  813. package/dist/families/system/StatusPill.js.map +1 -0
  814. package/dist/families/system/index.d.ts +24 -0
  815. package/dist/families/system/index.d.ts.map +1 -0
  816. package/dist/families/system/index.js +24 -0
  817. package/dist/families/system/index.js.map +1 -0
  818. package/dist/families/system/system-config.d.ts +1505 -0
  819. package/dist/families/system/system-config.d.ts.map +1 -0
  820. package/dist/families/system/system-config.js +339 -0
  821. package/dist/families/system/system-config.js.map +1 -0
  822. package/dist/families/system/system-icons.d.ts +10 -0
  823. package/dist/families/system/system-icons.d.ts.map +1 -0
  824. package/dist/families/system/system-icons.js +58 -0
  825. package/dist/families/system/system-icons.js.map +1 -0
  826. package/dist/families/system/system-lib.d.ts +108 -0
  827. package/dist/families/system/system-lib.d.ts.map +1 -0
  828. package/dist/families/system/system-lib.js +181 -0
  829. package/dist/families/system/system-lib.js.map +1 -0
  830. package/dist/families/system/system-track-components.d.ts +17 -0
  831. package/dist/families/system/system-track-components.d.ts.map +1 -0
  832. package/dist/families/system/system-track-components.js +17 -0
  833. package/dist/families/system/system-track-components.js.map +1 -0
  834. package/dist/families/system/system-track.definitions.d.ts +36 -0
  835. package/dist/families/system/system-track.definitions.d.ts.map +1 -0
  836. package/dist/families/system/system-track.definitions.js +155 -0
  837. package/dist/families/system/system-track.definitions.js.map +1 -0
  838. package/dist/families/tables/AccordionList.d.ts +36 -0
  839. package/dist/families/tables/AccordionList.d.ts.map +1 -0
  840. package/dist/families/tables/AccordionList.js +56 -0
  841. package/dist/families/tables/AccordionList.js.map +1 -0
  842. package/dist/families/tables/BulkActionToolbar.d.ts +35 -0
  843. package/dist/families/tables/BulkActionToolbar.d.ts.map +1 -0
  844. package/dist/families/tables/BulkActionToolbar.js +8 -0
  845. package/dist/families/tables/BulkActionToolbar.js.map +1 -0
  846. package/dist/families/tables/CardGallery.d.ts +30 -0
  847. package/dist/families/tables/CardGallery.d.ts.map +1 -0
  848. package/dist/families/tables/CardGallery.js +80 -0
  849. package/dist/families/tables/CardGallery.js.map +1 -0
  850. package/dist/families/tables/ChipCloud.d.ts +46 -0
  851. package/dist/families/tables/ChipCloud.d.ts.map +1 -0
  852. package/dist/families/tables/ChipCloud.js +72 -0
  853. package/dist/families/tables/ChipCloud.js.map +1 -0
  854. package/dist/families/tables/ComparisonMatrix.d.ts +41 -0
  855. package/dist/families/tables/ComparisonMatrix.d.ts.map +1 -0
  856. package/dist/families/tables/ComparisonMatrix.js +76 -0
  857. package/dist/families/tables/ComparisonMatrix.js.map +1 -0
  858. package/dist/families/tables/DataGrid.d.ts +50 -0
  859. package/dist/families/tables/DataGrid.d.ts.map +1 -0
  860. package/dist/families/tables/DataGrid.js +89 -0
  861. package/dist/families/tables/DataGrid.js.map +1 -0
  862. package/dist/families/tables/DetailKeyValue.d.ts +18 -0
  863. package/dist/families/tables/DetailKeyValue.d.ts.map +1 -0
  864. package/dist/families/tables/DetailKeyValue.js +14 -0
  865. package/dist/families/tables/DetailKeyValue.js.map +1 -0
  866. package/dist/families/tables/GroupedSummaryTable.d.ts +25 -0
  867. package/dist/families/tables/GroupedSummaryTable.d.ts.map +1 -0
  868. package/dist/families/tables/GroupedSummaryTable.js +87 -0
  869. package/dist/families/tables/GroupedSummaryTable.js.map +1 -0
  870. package/dist/families/tables/LogTable.d.ts +36 -0
  871. package/dist/families/tables/LogTable.d.ts.map +1 -0
  872. package/dist/families/tables/LogTable.js +115 -0
  873. package/dist/families/tables/LogTable.js.map +1 -0
  874. package/dist/families/tables/MasterList.d.ts +29 -0
  875. package/dist/families/tables/MasterList.d.ts.map +1 -0
  876. package/dist/families/tables/MasterList.js +77 -0
  877. package/dist/families/tables/MasterList.js.map +1 -0
  878. package/dist/families/tables/MiniTable.d.ts +25 -0
  879. package/dist/families/tables/MiniTable.d.ts.map +1 -0
  880. package/dist/families/tables/MiniTable.js +14 -0
  881. package/dist/families/tables/MiniTable.js.map +1 -0
  882. package/dist/families/tables/PaginationFooter.d.ts +36 -0
  883. package/dist/families/tables/PaginationFooter.d.ts.map +1 -0
  884. package/dist/families/tables/PaginationFooter.js +21 -0
  885. package/dist/families/tables/PaginationFooter.js.map +1 -0
  886. package/dist/families/tables/RankedEntityList.d.ts +41 -0
  887. package/dist/families/tables/RankedEntityList.d.ts.map +1 -0
  888. package/dist/families/tables/RankedEntityList.js +74 -0
  889. package/dist/families/tables/RankedEntityList.js.map +1 -0
  890. package/dist/families/tables/SchemaTree.d.ts +23 -0
  891. package/dist/families/tables/SchemaTree.d.ts.map +1 -0
  892. package/dist/families/tables/SchemaTree.js +89 -0
  893. package/dist/families/tables/SchemaTree.js.map +1 -0
  894. package/dist/families/tables/SparklineTable.d.ts +35 -0
  895. package/dist/families/tables/SparklineTable.d.ts.map +1 -0
  896. package/dist/families/tables/SparklineTable.js +54 -0
  897. package/dist/families/tables/SparklineTable.js.map +1 -0
  898. package/dist/families/tables/ToggleMatrixWidget.d.ts +26 -0
  899. package/dist/families/tables/ToggleMatrixWidget.d.ts.map +1 -0
  900. package/dist/families/tables/ToggleMatrixWidget.js +95 -0
  901. package/dist/families/tables/ToggleMatrixWidget.js.map +1 -0
  902. package/dist/families/tables/TopMoversList.d.ts +37 -0
  903. package/dist/families/tables/TopMoversList.d.ts.map +1 -0
  904. package/dist/families/tables/TopMoversList.js +51 -0
  905. package/dist/families/tables/TopMoversList.js.map +1 -0
  906. package/dist/families/tables/cells.d.ts +38 -0
  907. package/dist/families/tables/cells.d.ts.map +1 -0
  908. package/dist/families/tables/cells.js +107 -0
  909. package/dist/families/tables/cells.js.map +1 -0
  910. package/dist/families/tables/column-spec.d.ts +53 -0
  911. package/dist/families/tables/column-spec.d.ts.map +1 -0
  912. package/dist/families/tables/column-spec.js +158 -0
  913. package/dist/families/tables/column-spec.js.map +1 -0
  914. package/dist/families/tables/definitions.d.ts +12 -0
  915. package/dist/families/tables/definitions.d.ts.map +1 -0
  916. package/dist/families/tables/definitions.js +81 -0
  917. package/dist/families/tables/definitions.js.map +1 -0
  918. package/dist/families/tables/demo-data.d.ts +15 -0
  919. package/dist/families/tables/demo-data.d.ts.map +1 -0
  920. package/dist/families/tables/demo-data.js +97 -0
  921. package/dist/families/tables/demo-data.js.map +1 -0
  922. package/dist/families/tables/index.d.ts +31 -0
  923. package/dist/families/tables/index.d.ts.map +1 -0
  924. package/dist/families/tables/index.js +33 -0
  925. package/dist/families/tables/index.js.map +1 -0
  926. package/dist/families/tables/tables-config.d.ts +908 -0
  927. package/dist/families/tables/tables-config.d.ts.map +1 -0
  928. package/dist/families/tables/tables-config.js +51 -0
  929. package/dist/families/tables/tables-config.js.map +1 -0
  930. package/dist/families/tables/tables-tail-components.d.ts +14 -0
  931. package/dist/families/tables/tables-tail-components.d.ts.map +1 -0
  932. package/dist/families/tables/tables-tail-components.js +14 -0
  933. package/dist/families/tables/tables-tail-components.js.map +1 -0
  934. package/dist/families/tables/tables-tail-config.d.ts +947 -0
  935. package/dist/families/tables/tables-tail-config.d.ts.map +1 -0
  936. package/dist/families/tables/tables-tail-config.js +328 -0
  937. package/dist/families/tables/tables-tail-config.js.map +1 -0
  938. package/dist/families/tables/tables-tail-icons.d.ts +6 -0
  939. package/dist/families/tables/tables-tail-icons.d.ts.map +1 -0
  940. package/dist/families/tables/tables-tail-icons.js +33 -0
  941. package/dist/families/tables/tables-tail-icons.js.map +1 -0
  942. package/dist/families/tables/tables-tail-lib.d.ts +77 -0
  943. package/dist/families/tables/tables-tail-lib.d.ts.map +1 -0
  944. package/dist/families/tables/tables-tail-lib.js +176 -0
  945. package/dist/families/tables/tables-tail-lib.js.map +1 -0
  946. package/dist/families/tables/tables-tail-types.d.ts +129 -0
  947. package/dist/families/tables/tables-tail-types.d.ts.map +1 -0
  948. package/dist/families/tables/tables-tail-types.js +16 -0
  949. package/dist/families/tables/tables-tail-types.js.map +1 -0
  950. package/dist/families/tables/tables-tail.definitions.d.ts +26 -0
  951. package/dist/families/tables/tables-tail.definitions.d.ts.map +1 -0
  952. package/dist/families/tables/tables-tail.definitions.js +108 -0
  953. package/dist/families/tables/tables-tail.definitions.js.map +1 -0
  954. package/dist/families/tables/tables-track-f-components.d.ts +14 -0
  955. package/dist/families/tables/tables-track-f-components.d.ts.map +1 -0
  956. package/dist/families/tables/tables-track-f-components.js +14 -0
  957. package/dist/families/tables/tables-track-f-components.js.map +1 -0
  958. package/dist/families/tables/tables-track-f-config.d.ts +956 -0
  959. package/dist/families/tables/tables-track-f-config.d.ts.map +1 -0
  960. package/dist/families/tables/tables-track-f-config.js +329 -0
  961. package/dist/families/tables/tables-track-f-config.js.map +1 -0
  962. package/dist/families/tables/tables-track-f-types.d.ts +95 -0
  963. package/dist/families/tables/tables-track-f-types.d.ts.map +1 -0
  964. package/dist/families/tables/tables-track-f-types.js +13 -0
  965. package/dist/families/tables/tables-track-f-types.js.map +1 -0
  966. package/dist/families/tables/tables-track-f.definitions.d.ts +19 -0
  967. package/dist/families/tables/tables-track-f.definitions.d.ts.map +1 -0
  968. package/dist/families/tables/tables-track-f.definitions.js +98 -0
  969. package/dist/families/tables/tables-track-f.definitions.js.map +1 -0
  970. package/dist/families/tables/widgets.d.ts +17 -0
  971. package/dist/families/tables/widgets.d.ts.map +1 -0
  972. package/dist/families/tables/widgets.js +132 -0
  973. package/dist/families/tables/widgets.js.map +1 -0
  974. package/dist/frame/ChartDirectionBridge.d.ts +6 -0
  975. package/dist/frame/ChartDirectionBridge.d.ts.map +1 -0
  976. package/dist/frame/ChartDirectionBridge.js +21 -0
  977. package/dist/frame/ChartDirectionBridge.js.map +1 -0
  978. package/dist/frame/SkeletonSilhouette.d.ts +12 -0
  979. package/dist/frame/SkeletonSilhouette.d.ts.map +1 -0
  980. package/dist/frame/SkeletonSilhouette.js +6 -0
  981. package/dist/frame/SkeletonSilhouette.js.map +1 -0
  982. package/dist/frame/WidgetErrorBoundary.d.ts +26 -0
  983. package/dist/frame/WidgetErrorBoundary.d.ts.map +1 -0
  984. package/dist/frame/WidgetErrorBoundary.js +24 -0
  985. package/dist/frame/WidgetErrorBoundary.js.map +1 -0
  986. package/dist/frame/WidgetFrame.d.ts +51 -0
  987. package/dist/frame/WidgetFrame.d.ts.map +1 -0
  988. package/dist/frame/WidgetFrame.js +33 -0
  989. package/dist/frame/WidgetFrame.js.map +1 -0
  990. package/dist/frame/WidgetHost.d.ts +54 -0
  991. package/dist/frame/WidgetHost.d.ts.map +1 -0
  992. package/dist/frame/WidgetHost.js +84 -0
  993. package/dist/frame/WidgetHost.js.map +1 -0
  994. package/dist/frame/WidgetRuntimeContext.d.ts +58 -0
  995. package/dist/frame/WidgetRuntimeContext.d.ts.map +1 -0
  996. package/dist/frame/WidgetRuntimeContext.js +62 -0
  997. package/dist/frame/WidgetRuntimeContext.js.map +1 -0
  998. package/dist/generate/crud-body.d.ts +93 -0
  999. package/dist/generate/crud-body.d.ts.map +1 -0
  1000. package/dist/generate/crud-body.js +323 -0
  1001. package/dist/generate/crud-body.js.map +1 -0
  1002. package/dist/generate/dashboard-domain.d.ts +65 -0
  1003. package/dist/generate/dashboard-domain.d.ts.map +1 -0
  1004. package/dist/generate/dashboard-domain.js +269 -0
  1005. package/dist/generate/dashboard-domain.js.map +1 -0
  1006. package/dist/generate/index.d.ts +51 -0
  1007. package/dist/generate/index.d.ts.map +1 -0
  1008. package/dist/generate/index.js +55 -0
  1009. package/dist/generate/index.js.map +1 -0
  1010. package/dist/grid/DashboardGrid.d.ts +53 -0
  1011. package/dist/grid/DashboardGrid.d.ts.map +1 -0
  1012. package/dist/grid/DashboardGrid.js +278 -0
  1013. package/dist/grid/DashboardGrid.js.map +1 -0
  1014. package/dist/grid/grid-edit.d.ts +95 -0
  1015. package/dist/grid/grid-edit.d.ts.map +1 -0
  1016. package/dist/grid/grid-edit.js +82 -0
  1017. package/dist/grid/grid-edit.js.map +1 -0
  1018. package/dist/grid/index.d.ts +12 -0
  1019. package/dist/grid/index.d.ts.map +1 -0
  1020. package/dist/grid/index.js +12 -0
  1021. package/dist/grid/index.js.map +1 -0
  1022. package/dist/grid/layout-edit.d.ts +114 -0
  1023. package/dist/grid/layout-edit.d.ts.map +1 -0
  1024. package/dist/grid/layout-edit.js +167 -0
  1025. package/dist/grid/layout-edit.js.map +1 -0
  1026. package/dist/grid/layout-math.d.ts +28 -0
  1027. package/dist/grid/layout-math.d.ts.map +1 -0
  1028. package/dist/grid/layout-math.js +45 -0
  1029. package/dist/grid/layout-math.js.map +1 -0
  1030. package/dist/grid/layout-schema.d.ts +31 -0
  1031. package/dist/grid/layout-schema.d.ts.map +1 -0
  1032. package/dist/grid/layout-schema.js +19 -0
  1033. package/dist/grid/layout-schema.js.map +1 -0
  1034. package/dist/index.d.ts +63 -0
  1035. package/dist/index.d.ts.map +1 -0
  1036. package/dist/index.js +104 -0
  1037. package/dist/index.js.map +1 -0
  1038. package/dist/lib/format.d.ts +47 -0
  1039. package/dist/lib/format.d.ts.map +1 -0
  1040. package/dist/lib/format.js +95 -0
  1041. package/dist/lib/format.js.map +1 -0
  1042. package/dist/lib/shapes.d.ts +44 -0
  1043. package/dist/lib/shapes.d.ts.map +1 -0
  1044. package/dist/lib/shapes.js +91 -0
  1045. package/dist/lib/shapes.js.map +1 -0
  1046. package/dist/page-config/data-shapes.d.ts +28 -0
  1047. package/dist/page-config/data-shapes.d.ts.map +1 -0
  1048. package/dist/page-config/data-shapes.js +27 -0
  1049. package/dist/page-config/data-shapes.js.map +1 -0
  1050. package/dist/page-config/grid-column-spec.d.ts +135 -0
  1051. package/dist/page-config/grid-column-spec.d.ts.map +1 -0
  1052. package/dist/page-config/grid-column-spec.js +142 -0
  1053. package/dist/page-config/grid-column-spec.js.map +1 -0
  1054. package/dist/page-config/index.d.ts +16 -0
  1055. package/dist/page-config/index.d.ts.map +1 -0
  1056. package/dist/page-config/index.js +16 -0
  1057. package/dist/page-config/index.js.map +1 -0
  1058. package/dist/page-config/layout.d.ts +31 -0
  1059. package/dist/page-config/layout.d.ts.map +1 -0
  1060. package/dist/page-config/layout.js +23 -0
  1061. package/dist/page-config/layout.js.map +1 -0
  1062. package/dist/page-config/query-descriptor.d.ts +154 -0
  1063. package/dist/page-config/query-descriptor.d.ts.map +1 -0
  1064. package/dist/page-config/query-descriptor.js +72 -0
  1065. package/dist/page-config/query-descriptor.js.map +1 -0
  1066. package/dist/registry/WidgetMissingCard.d.ts +18 -0
  1067. package/dist/registry/WidgetMissingCard.d.ts.map +1 -0
  1068. package/dist/registry/WidgetMissingCard.js +14 -0
  1069. package/dist/registry/WidgetMissingCard.js.map +1 -0
  1070. package/dist/registry/archetypes.d.ts +81 -0
  1071. package/dist/registry/archetypes.d.ts.map +1 -0
  1072. package/dist/registry/archetypes.js +374 -0
  1073. package/dist/registry/archetypes.js.map +1 -0
  1074. package/dist/registry/candidates.d.ts +294 -0
  1075. package/dist/registry/candidates.d.ts.map +1 -0
  1076. package/dist/registry/candidates.js +1408 -0
  1077. package/dist/registry/candidates.js.map +1 -0
  1078. package/dist/registry/data-empty.d.ts +10 -0
  1079. package/dist/registry/data-empty.d.ts.map +1 -0
  1080. package/dist/registry/data-empty.js +52 -0
  1081. package/dist/registry/data-empty.js.map +1 -0
  1082. package/dist/registry/index.d.ts +50 -0
  1083. package/dist/registry/index.d.ts.map +1 -0
  1084. package/dist/registry/index.js +198 -0
  1085. package/dist/registry/index.js.map +1 -0
  1086. package/dist/registry/llm-allowlist.d.ts +56 -0
  1087. package/dist/registry/llm-allowlist.d.ts.map +1 -0
  1088. package/dist/registry/llm-allowlist.js +100 -0
  1089. package/dist/registry/llm-allowlist.js.map +1 -0
  1090. package/dist/registry/offline.d.ts +74 -0
  1091. package/dist/registry/offline.d.ts.map +1 -0
  1092. package/dist/registry/offline.js +68 -0
  1093. package/dist/registry/offline.js.map +1 -0
  1094. package/dist/registry/page-templates.d.ts +79 -0
  1095. package/dist/registry/page-templates.d.ts.map +1 -0
  1096. package/dist/registry/page-templates.js +103 -0
  1097. package/dist/registry/page-templates.js.map +1 -0
  1098. package/dist/registry/registered-ids.d.ts +27 -0
  1099. package/dist/registry/registered-ids.d.ts.map +1 -0
  1100. package/dist/registry/registered-ids.js +208 -0
  1101. package/dist/registry/registered-ids.js.map +1 -0
  1102. package/dist/registry/shared-config.d.ts +146 -0
  1103. package/dist/registry/shared-config.d.ts.map +1 -0
  1104. package/dist/registry/shared-config.js +41 -0
  1105. package/dist/registry/shared-config.js.map +1 -0
  1106. package/dist/registry/types.d.ts +94 -0
  1107. package/dist/registry/types.d.ts.map +1 -0
  1108. package/dist/registry/types.js +27 -0
  1109. package/dist/registry/types.js.map +1 -0
  1110. package/dist/registry/widget-missing.d.ts +150 -0
  1111. package/dist/registry/widget-missing.d.ts.map +1 -0
  1112. package/dist/registry/widget-missing.js +28 -0
  1113. package/dist/registry/widget-missing.js.map +1 -0
  1114. package/dist/templates/compose.d.ts +127 -0
  1115. package/dist/templates/compose.d.ts.map +1 -0
  1116. package/dist/templates/compose.js +216 -0
  1117. package/dist/templates/compose.js.map +1 -0
  1118. package/dist/templates/crosscheck.d.ts +68 -0
  1119. package/dist/templates/crosscheck.d.ts.map +1 -0
  1120. package/dist/templates/crosscheck.js +155 -0
  1121. package/dist/templates/crosscheck.js.map +1 -0
  1122. package/dist/templates/index.d.ts +17 -0
  1123. package/dist/templates/index.d.ts.map +1 -0
  1124. package/dist/templates/index.js +17 -0
  1125. package/dist/templates/index.js.map +1 -0
  1126. package/dist/templates/manifests.d.ts +13 -0
  1127. package/dist/templates/manifests.d.ts.map +1 -0
  1128. package/dist/templates/manifests.js +110 -0
  1129. package/dist/templates/manifests.js.map +1 -0
  1130. package/dist/templates/page-board/PageBoard.d.ts +46 -0
  1131. package/dist/templates/page-board/PageBoard.d.ts.map +1 -0
  1132. package/dist/templates/page-board/PageBoard.js +220 -0
  1133. package/dist/templates/page-board/PageBoard.js.map +1 -0
  1134. package/dist/templates/page-board/index.d.ts +6 -0
  1135. package/dist/templates/page-board/index.d.ts.map +1 -0
  1136. package/dist/templates/page-board/index.js +6 -0
  1137. package/dist/templates/page-board/index.js.map +1 -0
  1138. package/dist/templates/page-board.json +12 -0
  1139. package/dist/templates/page-builder/PageBuilder.d.ts +71 -0
  1140. package/dist/templates/page-builder/PageBuilder.d.ts.map +1 -0
  1141. package/dist/templates/page-builder/PageBuilder.js +209 -0
  1142. package/dist/templates/page-builder/PageBuilder.js.map +1 -0
  1143. package/dist/templates/page-builder/builder-config.d.ts +187 -0
  1144. package/dist/templates/page-builder/builder-config.d.ts.map +1 -0
  1145. package/dist/templates/page-builder/builder-config.js +441 -0
  1146. package/dist/templates/page-builder/builder-config.js.map +1 -0
  1147. package/dist/templates/page-builder/index.d.ts +8 -0
  1148. package/dist/templates/page-builder/index.d.ts.map +1 -0
  1149. package/dist/templates/page-builder/index.js +8 -0
  1150. package/dist/templates/page-builder/index.js.map +1 -0
  1151. package/dist/templates/page-builder.json +17 -0
  1152. package/dist/templates/page-calendar/PageCalendar.d.ts +46 -0
  1153. package/dist/templates/page-calendar/PageCalendar.d.ts.map +1 -0
  1154. package/dist/templates/page-calendar/PageCalendar.js +201 -0
  1155. package/dist/templates/page-calendar/PageCalendar.js.map +1 -0
  1156. package/dist/templates/page-calendar/index.d.ts +6 -0
  1157. package/dist/templates/page-calendar/index.d.ts.map +1 -0
  1158. package/dist/templates/page-calendar/index.js +6 -0
  1159. package/dist/templates/page-calendar/index.js.map +1 -0
  1160. package/dist/templates/page-calendar.json +21 -0
  1161. package/dist/templates/page-chat/PageChat.d.ts +69 -0
  1162. package/dist/templates/page-chat/PageChat.d.ts.map +1 -0
  1163. package/dist/templates/page-chat/PageChat.js +128 -0
  1164. package/dist/templates/page-chat/PageChat.js.map +1 -0
  1165. package/dist/templates/page-chat/chat-mapping.d.ts +45 -0
  1166. package/dist/templates/page-chat/chat-mapping.d.ts.map +1 -0
  1167. package/dist/templates/page-chat/chat-mapping.js +120 -0
  1168. package/dist/templates/page-chat/chat-mapping.js.map +1 -0
  1169. package/dist/templates/page-chat/demo-layout.d.ts +11 -0
  1170. package/dist/templates/page-chat/demo-layout.d.ts.map +1 -0
  1171. package/dist/templates/page-chat/demo-layout.js +41 -0
  1172. package/dist/templates/page-chat/demo-layout.js.map +1 -0
  1173. package/dist/templates/page-chat/index.d.ts +9 -0
  1174. package/dist/templates/page-chat/index.d.ts.map +1 -0
  1175. package/dist/templates/page-chat/index.js +9 -0
  1176. package/dist/templates/page-chat/index.js.map +1 -0
  1177. package/dist/templates/page-chat.json +16 -0
  1178. package/dist/templates/page-crud/PageCrud.d.ts +83 -0
  1179. package/dist/templates/page-crud/PageCrud.d.ts.map +1 -0
  1180. package/dist/templates/page-crud/PageCrud.js +327 -0
  1181. package/dist/templates/page-crud/PageCrud.js.map +1 -0
  1182. package/dist/templates/page-crud/RecordDetail.d.ts +24 -0
  1183. package/dist/templates/page-crud/RecordDetail.d.ts.map +1 -0
  1184. package/dist/templates/page-crud/RecordDetail.js +85 -0
  1185. package/dist/templates/page-crud/RecordDetail.js.map +1 -0
  1186. package/dist/templates/page-crud/RecordForm.d.ts +30 -0
  1187. package/dist/templates/page-crud/RecordForm.d.ts.map +1 -0
  1188. package/dist/templates/page-crud/RecordForm.js +131 -0
  1189. package/dist/templates/page-crud/RecordForm.js.map +1 -0
  1190. package/dist/templates/page-crud/crud-api.d.ts +154 -0
  1191. package/dist/templates/page-crud/crud-api.d.ts.map +1 -0
  1192. package/dist/templates/page-crud/crud-api.js +39 -0
  1193. package/dist/templates/page-crud/crud-api.js.map +1 -0
  1194. package/dist/templates/page-crud/field-mapping.d.ts +20 -0
  1195. package/dist/templates/page-crud/field-mapping.d.ts.map +1 -0
  1196. package/dist/templates/page-crud/field-mapping.js +93 -0
  1197. package/dist/templates/page-crud/field-mapping.js.map +1 -0
  1198. package/dist/templates/page-crud/index.d.ts +12 -0
  1199. package/dist/templates/page-crud/index.d.ts.map +1 -0
  1200. package/dist/templates/page-crud/index.js +12 -0
  1201. package/dist/templates/page-crud/index.js.map +1 -0
  1202. package/dist/templates/page-crud.json +23 -0
  1203. package/dist/templates/page-dashboard/PageDashboard.d.ts +30 -0
  1204. package/dist/templates/page-dashboard/PageDashboard.d.ts.map +1 -0
  1205. package/dist/templates/page-dashboard/PageDashboard.js +34 -0
  1206. package/dist/templates/page-dashboard/PageDashboard.js.map +1 -0
  1207. package/dist/templates/page-dashboard/data-adapter.d.ts +38 -0
  1208. package/dist/templates/page-dashboard/data-adapter.d.ts.map +1 -0
  1209. package/dist/templates/page-dashboard/data-adapter.js +119 -0
  1210. package/dist/templates/page-dashboard/data-adapter.js.map +1 -0
  1211. package/dist/templates/page-dashboard/demo-layout.d.ts +15 -0
  1212. package/dist/templates/page-dashboard/demo-layout.d.ts.map +1 -0
  1213. package/dist/templates/page-dashboard/demo-layout.js +121 -0
  1214. package/dist/templates/page-dashboard/demo-layout.js.map +1 -0
  1215. package/dist/templates/page-dashboard.json +20 -0
  1216. package/dist/templates/page-directory/PageDirectory.d.ts +49 -0
  1217. package/dist/templates/page-directory/PageDirectory.d.ts.map +1 -0
  1218. package/dist/templates/page-directory/PageDirectory.js +141 -0
  1219. package/dist/templates/page-directory/PageDirectory.js.map +1 -0
  1220. package/dist/templates/page-directory/index.d.ts +8 -0
  1221. package/dist/templates/page-directory/index.d.ts.map +1 -0
  1222. package/dist/templates/page-directory/index.js +8 -0
  1223. package/dist/templates/page-directory/index.js.map +1 -0
  1224. package/dist/templates/page-directory.json +15 -0
  1225. package/dist/templates/page-files/PageFiles.d.ts +77 -0
  1226. package/dist/templates/page-files/PageFiles.d.ts.map +1 -0
  1227. package/dist/templates/page-files/PageFiles.js +114 -0
  1228. package/dist/templates/page-files/PageFiles.js.map +1 -0
  1229. package/dist/templates/page-files/demo-layout.d.ts +11 -0
  1230. package/dist/templates/page-files/demo-layout.d.ts.map +1 -0
  1231. package/dist/templates/page-files/demo-layout.js +32 -0
  1232. package/dist/templates/page-files/demo-layout.js.map +1 -0
  1233. package/dist/templates/page-files/file-mapping.d.ts +10 -0
  1234. package/dist/templates/page-files/file-mapping.d.ts.map +1 -0
  1235. package/dist/templates/page-files/file-mapping.js +68 -0
  1236. package/dist/templates/page-files/file-mapping.js.map +1 -0
  1237. package/dist/templates/page-files/index.d.ts +9 -0
  1238. package/dist/templates/page-files/index.d.ts.map +1 -0
  1239. package/dist/templates/page-files/index.js +9 -0
  1240. package/dist/templates/page-files/index.js.map +1 -0
  1241. package/dist/templates/page-files.json +16 -0
  1242. package/dist/templates/page-log-viewer/PageLogViewer.d.ts +70 -0
  1243. package/dist/templates/page-log-viewer/PageLogViewer.d.ts.map +1 -0
  1244. package/dist/templates/page-log-viewer/PageLogViewer.js +109 -0
  1245. package/dist/templates/page-log-viewer/PageLogViewer.js.map +1 -0
  1246. package/dist/templates/page-log-viewer/demo-layout.d.ts +11 -0
  1247. package/dist/templates/page-log-viewer/demo-layout.d.ts.map +1 -0
  1248. package/dist/templates/page-log-viewer/demo-layout.js +50 -0
  1249. package/dist/templates/page-log-viewer/demo-layout.js.map +1 -0
  1250. package/dist/templates/page-log-viewer/index.d.ts +10 -0
  1251. package/dist/templates/page-log-viewer/index.d.ts.map +1 -0
  1252. package/dist/templates/page-log-viewer/index.js +10 -0
  1253. package/dist/templates/page-log-viewer/index.js.map +1 -0
  1254. package/dist/templates/page-log-viewer/log-mapping.d.ts +77 -0
  1255. package/dist/templates/page-log-viewer/log-mapping.d.ts.map +1 -0
  1256. package/dist/templates/page-log-viewer/log-mapping.js +159 -0
  1257. package/dist/templates/page-log-viewer/log-mapping.js.map +1 -0
  1258. package/dist/templates/page-log-viewer.json +17 -0
  1259. package/dist/templates/page-master-detail/PageMasterDetail.d.ts +55 -0
  1260. package/dist/templates/page-master-detail/PageMasterDetail.d.ts.map +1 -0
  1261. package/dist/templates/page-master-detail/PageMasterDetail.js +192 -0
  1262. package/dist/templates/page-master-detail/PageMasterDetail.js.map +1 -0
  1263. package/dist/templates/page-master-detail/index.d.ts +8 -0
  1264. package/dist/templates/page-master-detail/index.d.ts.map +1 -0
  1265. package/dist/templates/page-master-detail/index.js +8 -0
  1266. package/dist/templates/page-master-detail/index.js.map +1 -0
  1267. package/dist/templates/page-master-detail.json +14 -0
  1268. package/dist/templates/page-queue-inbox/PageQueueInbox.d.ts +77 -0
  1269. package/dist/templates/page-queue-inbox/PageQueueInbox.d.ts.map +1 -0
  1270. package/dist/templates/page-queue-inbox/PageQueueInbox.js +292 -0
  1271. package/dist/templates/page-queue-inbox/PageQueueInbox.js.map +1 -0
  1272. package/dist/templates/page-queue-inbox/index.d.ts +11 -0
  1273. package/dist/templates/page-queue-inbox/index.d.ts.map +1 -0
  1274. package/dist/templates/page-queue-inbox/index.js +10 -0
  1275. package/dist/templates/page-queue-inbox/index.js.map +1 -0
  1276. package/dist/templates/page-queue-inbox/queue-api.d.ts +22 -0
  1277. package/dist/templates/page-queue-inbox/queue-api.d.ts.map +1 -0
  1278. package/dist/templates/page-queue-inbox/queue-api.js +13 -0
  1279. package/dist/templates/page-queue-inbox/queue-api.js.map +1 -0
  1280. package/dist/templates/page-queue-inbox.json +17 -0
  1281. package/dist/templates/page-scheduler/PageScheduler.d.ts +68 -0
  1282. package/dist/templates/page-scheduler/PageScheduler.d.ts.map +1 -0
  1283. package/dist/templates/page-scheduler/PageScheduler.js +289 -0
  1284. package/dist/templates/page-scheduler/PageScheduler.js.map +1 -0
  1285. package/dist/templates/page-scheduler/ShiftMatrix.d.ts +49 -0
  1286. package/dist/templates/page-scheduler/ShiftMatrix.d.ts.map +1 -0
  1287. package/dist/templates/page-scheduler/ShiftMatrix.js +144 -0
  1288. package/dist/templates/page-scheduler/ShiftMatrix.js.map +1 -0
  1289. package/dist/templates/page-scheduler/index.d.ts +8 -0
  1290. package/dist/templates/page-scheduler/index.d.ts.map +1 -0
  1291. package/dist/templates/page-scheduler/index.js +8 -0
  1292. package/dist/templates/page-scheduler/index.js.map +1 -0
  1293. package/dist/templates/page-scheduler.json +17 -0
  1294. package/dist/templates/page-settings/PageSettings.d.ts +62 -0
  1295. package/dist/templates/page-settings/PageSettings.d.ts.map +1 -0
  1296. package/dist/templates/page-settings/PageSettings.js +0 -0
  1297. package/dist/templates/page-settings/PageSettings.js.map +1 -0
  1298. package/dist/templates/page-settings/index.d.ts +6 -0
  1299. package/dist/templates/page-settings/index.d.ts.map +1 -0
  1300. package/dist/templates/page-settings/index.js +6 -0
  1301. package/dist/templates/page-settings/index.js.map +1 -0
  1302. package/dist/templates/page-settings.json +14 -0
  1303. package/dist/templates/page-wizard/PageWizard.d.ts +28 -0
  1304. package/dist/templates/page-wizard/PageWizard.d.ts.map +1 -0
  1305. package/dist/templates/page-wizard/PageWizard.js +55 -0
  1306. package/dist/templates/page-wizard/PageWizard.js.map +1 -0
  1307. package/dist/templates/page-wizard/index.d.ts +9 -0
  1308. package/dist/templates/page-wizard/index.d.ts.map +1 -0
  1309. package/dist/templates/page-wizard/index.js +9 -0
  1310. package/dist/templates/page-wizard/index.js.map +1 -0
  1311. package/dist/templates/page-wizard.json +19 -0
  1312. package/dist/templates/planning/planning-lib.d.ts +54 -0
  1313. package/dist/templates/planning/planning-lib.d.ts.map +1 -0
  1314. package/dist/templates/planning/planning-lib.js +154 -0
  1315. package/dist/templates/planning/planning-lib.js.map +1 -0
  1316. package/dist/templates/stored-config.d.ts +107 -0
  1317. package/dist/templates/stored-config.d.ts.map +1 -0
  1318. package/dist/templates/stored-config.js +212 -0
  1319. package/dist/templates/stored-config.js.map +1 -0
  1320. package/dist/templates/template-schema.d.ts +215 -0
  1321. package/dist/templates/template-schema.d.ts.map +1 -0
  1322. package/dist/templates/template-schema.js +111 -0
  1323. package/dist/templates/template-schema.js.map +1 -0
  1324. package/package.json +54 -0
@@ -0,0 +1,1408 @@
1
+ /* ----------------------------------------------------------------- helpers */
2
+ /**
3
+ * `order_details` → `Order Details`. A three-line copy of the Engine's
4
+ * `generate/util.ts` helper: candidate configs carry human titles, and the
5
+ * package boundary (see the module docstring) forbids importing it. Kept
6
+ * behaviourally identical — `packages/engine/test/generate-archetypes.test.ts`
7
+ * asserts the titles the engine ends up persisting. Exported for the sibling
8
+ * generator-leaf modules (`../generate/crud-body.ts`, `dashboard-domain.ts`),
9
+ * whose labels must match what the bespoke generator produced byte-for-byte.
10
+ */
11
+ export function humanize(name) {
12
+ const bare = name.includes('.') ? (name.split('.').pop() ?? name) : name;
13
+ return bare
14
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
15
+ .replace(/[_-]+/g, ' ')
16
+ .trim()
17
+ .split(/\s+/)
18
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
19
+ .join(' ');
20
+ }
21
+ /** Deterministic 3-decimal rounding — float association must never reorder ties. */
22
+ function round3(value) {
23
+ return Math.round(value * 1000) / 1000;
24
+ }
25
+ function clamp01(value) {
26
+ return value < 0 ? 0 : value > 1 ? 1 : value;
27
+ }
28
+ /**
29
+ * H2 scoring: "Base score per rule × modifiers (row count, null ratio,
30
+ * cardinality fit, name-match strength)".
31
+ */
32
+ function score(base, ...modifiers) {
33
+ let value = base;
34
+ for (const modifier of modifiers)
35
+ value *= modifier;
36
+ return round3(clamp01(value));
37
+ }
38
+ /**
39
+ * Row-count modifier: a widget over an empty table renders an empty state, so
40
+ * few rows means low confidence. Deliberately capped at 1 — a *busy* table is
41
+ * not evidence that a widget suits it better, and letting row count push a score
42
+ * up would make cross-rule ordering (which decides who wins a template slot)
43
+ * depend on data volume rather than on shape.
44
+ */
45
+ function byRowCount(view) {
46
+ const rows = view.stats.rowCount;
47
+ if (rows === null)
48
+ return 1;
49
+ if (rows === 0)
50
+ return 0.6;
51
+ if (rows < 100)
52
+ return 0.9;
53
+ return 1;
54
+ }
55
+ /** Name-match strength modifier. */
56
+ function byName(matches, hit = 1.1, miss = 0.95) {
57
+ return matches ? hit : miss;
58
+ }
59
+ /** Cardinality fit: an enum breakdown reads best at 2–6 slices (annex §2). */
60
+ function byCardinality(count, best, worst) {
61
+ if (count <= 0)
62
+ return 0.5;
63
+ if (count <= best)
64
+ return 1.05;
65
+ if (count <= worst)
66
+ return 1;
67
+ return 0.8;
68
+ }
69
+ const NUMERIC_TYPES = new Set(['integer', 'bigint', 'decimal', 'float']);
70
+ const TEXTISH_TYPES = new Set(['text', 'varchar']);
71
+ const DATE_TYPES = new Set(['date', 'timestamp', 'timestamptz']);
72
+ /** Annex §1: money name vocabulary that upgrades a SUM card to a currency hero. */
73
+ const MONEY_NAME_RE = /(amount|price|mrr|arr|total|budget|revenue)/i;
74
+ /** Annex §1/§6: the "currently open" state a status KPI counts. */
75
+ const ACTIVE_STATE_RE = /^(open|pending|new|in_progress|active|todo|backlog|queued|draft)$/i;
76
+ /**
77
+ * Annex §6: kanban-worthy workflow value vocabulary (05 §7.1 rule 7 subset).
78
+ * Shared with `./archetypes.ts` — the §14 `page-board` trigger is "a status enum
79
+ * classified as workflow", i.e. exactly what puts a `kanban-board` on the page.
80
+ */
81
+ export const BOARD_STATE_RE = /^(todo|to_do|backlog|open|new|draft|in_progress|inprogress|doing|review|in_review|blocked|on_hold|done|completed?|closed|cancell?ed|archived|active|paused|shipped|q[1-4])$/i;
82
+ /** Annex §4: read/unread notification booleans. Shared with `./archetypes.ts`. */
83
+ export const READ_FLAG_RE = /(^|_)(read|seen|opened|acknowledged|unread)(_|$)/i;
84
+ /** Annex §4: verb-ish activity text. */
85
+ const VERBISH_RE = /(^|_)(action|event|activity|verb|operation)(_type|_name)?(_|$)/i;
86
+ /** Annex §4: changelog version strings. */
87
+ const VERSION_RE = /(^|_)(version|release|tag|semver)(_|$)/i;
88
+ /** Annex §5/§14: shift-type vocabulary. */
89
+ const SHIFT_TYPE_RE = /(^|_)(shift|slot|rota|duty)(_type|_kind|_name)?(_|$)/i;
90
+ /** Annex §5: hours-per-project capacity numerics. */
91
+ const HOURS_RE = /(^|_)(hours?|capacity|allocation|workload|effort|load)(_|$)/i;
92
+ /** Annex §5/§14: project/phase FK targets. */
93
+ const PROJECT_RE = /(^|_)(projects?|phases?|epics?|milestones?|sprints?|initiatives?)(_|$)/i;
94
+ /** Annex §8/§14: people FK targets (mirrors the engine's PEOPLE_TABLE_RE). */
95
+ const PEOPLE_TARGET_RE = /(^|_)(users?|people|persons?|employees?|staff|members?|contacts?|customers?|profiles?|teachers?|students?|drivers?|agents?|authors?|patients?)(_|$)/i;
96
+ /** Annex §8: file-shaped size columns. */
97
+ const SIZE_RE = /(^|_)(size|bytes|filesize|file_size|storage|quota)(_|$)/i;
98
+ /** Annex §9: conversation containers. */
99
+ const CONVERSATION_RE = /(^|_)(conversations?|threads?|chats?|channels?|rooms?|tickets?)(_|$)/i;
100
+ /** `public.orders` → the last segment. */
101
+ function bareName(id) {
102
+ return id.includes('.') ? (id.split('.').pop() ?? id) : id;
103
+ }
104
+ function normalize(name) {
105
+ return name.trim().toLowerCase();
106
+ }
107
+ /* ------------------------------------------------------------------- view */
108
+ /** Join a table with its classification once, for every rule to read. */
109
+ export function buildCandidateView(table, classified) {
110
+ const semanticsByColumn = new Map(classified.columns.map((c) => [c.column, c]));
111
+ const columns = table.columns.map((column) => {
112
+ const info = semanticsByColumn.get(column.name);
113
+ return {
114
+ name: column.name,
115
+ logicalType: column.logicalType,
116
+ nullable: column.nullable ?? true,
117
+ isPrimaryKey: column.isPrimaryKey ?? false,
118
+ isUnique: column.isUnique ?? false,
119
+ enumValues: column.enumValues ?? [],
120
+ references: column.references ?? null,
121
+ semantic: info?.semantic ?? 'plain',
122
+ format: info?.format ?? null,
123
+ secret: info?.secret ?? false,
124
+ pii: info?.pii ?? null,
125
+ pair: info?.pair ?? null,
126
+ };
127
+ });
128
+ const source = {
129
+ name: table.name,
130
+ type: table.kind === 'view' || table.kind === 'materialized-view' ? 'view' : 'table',
131
+ };
132
+ if (table.schema !== undefined)
133
+ source.schema = table.schema;
134
+ return {
135
+ table,
136
+ classified,
137
+ columns,
138
+ stats: {
139
+ rowCount: table.rowCountEstimate ?? null,
140
+ writeVelocity: table.writeVelocity ?? null,
141
+ },
142
+ shape: classified.shape,
143
+ role: classified.role,
144
+ displayColumn: classified.displayColumn ?? null,
145
+ hierarchyColumn: classified.hierarchyColumn ?? null,
146
+ source,
147
+ };
148
+ }
149
+ /* --------------------------------------------------------- view predicates */
150
+ export function withSemantic(view, ...tags) {
151
+ const wanted = new Set(tags);
152
+ return view.columns.filter((c) => wanted.has(c.semantic) && !c.secret);
153
+ }
154
+ export function firstWithSemantic(view, ...tags) {
155
+ return withSemantic(view, ...tags)[0] ?? null;
156
+ }
157
+ /** Best time axis for a chart/KPI window: created-at, then event timestamps. */
158
+ function timeAxis(view) {
159
+ return (firstWithSemantic(view, 'created-at') ??
160
+ view.columns.find((c) => (c.semantic === 'event-timestamp' || c.semantic === 'date-range') &&
161
+ DATE_TYPES.has(c.logicalType)) ??
162
+ null);
163
+ }
164
+ /** A point-in-time event column — the annex §5 `calendar-month` axis. */
165
+ export function eventDate(view) {
166
+ return (view.columns.find((c) => c.semantic === 'event-timestamp' && DATE_TYPES.has(c.logicalType)) ??
167
+ null);
168
+ }
169
+ /** The `start` half of a §7.1-row-11 start/end pair (annex §5 scheduling signal). */
170
+ export function dateRangeStart(view) {
171
+ return view.columns.find((c) => c.semantic === 'date-range' && c.pair?.role === 'start') ?? null;
172
+ }
173
+ /** An FK whose target table name reads as people (annex §5/§8/§13). */
174
+ export function personFk(view) {
175
+ return (view.columns.find((c) => c.references !== null &&
176
+ c.references.tableId !== view.table.id &&
177
+ PEOPLE_TARGET_RE.test(normalize(bareName(c.references.tableId)))) ?? null);
178
+ }
179
+ /** An FK whose target reads as a project/phase container (annex §5/§13). */
180
+ export function projectFk(view) {
181
+ return (view.columns.find((c) => c.references !== null && PROJECT_RE.test(normalize(bareName(c.references.tableId)))) ?? null);
182
+ }
183
+ /** Low-cardinality enum columns, richest breakdown first (annex §2). */
184
+ export function enumColumns(view) {
185
+ const wanted = ['status-workflow', 'category-enum'];
186
+ return view.columns
187
+ .filter((c) => wanted.includes(c.semantic) && !c.secret)
188
+ .sort((a, b) => wanted.indexOf(a.semantic) - wanted.indexOf(b.semantic));
189
+ }
190
+ /** Grid/list `select` — display column first, then the informative columns. */
191
+ function listSelect(view, limit = 8) {
192
+ const out = [];
193
+ if (view.displayColumn !== null)
194
+ out.push(view.displayColumn);
195
+ const priority = [
196
+ 'status-workflow',
197
+ 'money',
198
+ 'created-at',
199
+ 'event-timestamp',
200
+ 'date-range',
201
+ 'fk',
202
+ 'category-enum',
203
+ 'person-name',
204
+ 'email',
205
+ 'boolean-flag',
206
+ 'percent',
207
+ 'score',
208
+ ];
209
+ for (const tag of priority) {
210
+ for (const column of withSemantic(view, tag)) {
211
+ if (out.length >= limit)
212
+ break;
213
+ if (!out.includes(column.name))
214
+ out.push(column.name);
215
+ }
216
+ }
217
+ return out.slice(0, limit);
218
+ }
219
+ /* ------------------------------------------------------------- descriptors */
220
+ function descriptor(view, ctx, shape, rest = {}) {
221
+ return {
222
+ kind: 'table-query',
223
+ connectionId: ctx.connectionId,
224
+ source: view.source,
225
+ shape,
226
+ ...rest,
227
+ };
228
+ }
229
+ /** A binding against a *sibling* table (the annex §9 pair rule needs one). */
230
+ function siblingDescriptor(sibling, ctx, shape, rest = {}) {
231
+ return {
232
+ kind: 'table-query',
233
+ connectionId: ctx.connectionId,
234
+ source: sibling.source,
235
+ shape,
236
+ ...rest,
237
+ };
238
+ }
239
+ /* ------------------------------------------------------------------ rules */
240
+ /** Annex §1 — "For every table the introspector emits KPI candidates". */
241
+ const kpiCountTotal = {
242
+ id: 'kpi.count-total',
243
+ family: 'kpi',
244
+ match(view, ctx) {
245
+ const label = humanize(view.table.name);
246
+ return [
247
+ {
248
+ widget: 'kpi-stat-card',
249
+ score: score(0.9, byRowCount(view)),
250
+ shape: 'single-metric',
251
+ family: 'kpi',
252
+ rule: 'kpi.count-total',
253
+ reason: `COUNT(*) over ${view.table.id} — the annex §1 total card every table gets`,
254
+ binding: descriptor(view, ctx, 'single-metric', {
255
+ aggregations: [{ fn: 'count', alias: 'value' }],
256
+ }),
257
+ config: { title: `Total ${label}` },
258
+ },
259
+ ];
260
+ },
261
+ };
262
+ /** Annex §1 — money-typed numeric → SUM card with currency format. */
263
+ const kpiMoneySum = {
264
+ id: 'kpi.money-sum',
265
+ family: 'kpi',
266
+ match(view, ctx) {
267
+ return withSemantic(view, 'money')
268
+ .slice(0, 2)
269
+ .map((column) => ({
270
+ widget: 'kpi-stat-card',
271
+ score: score(0.85, byRowCount(view), byName(MONEY_NAME_RE.test(column.name))),
272
+ shape: 'single-metric',
273
+ family: 'kpi',
274
+ rule: 'kpi.money-sum',
275
+ reason: `money column "${column.name}" — SUM card with currency format (annex §1)`,
276
+ binding: descriptor(view, ctx, 'single-metric', {
277
+ aggregations: [{ fn: 'sum', column: column.name, alias: 'value' }],
278
+ }),
279
+ config: { title: `Total ${humanize(column.name)}`, format: 'currency' },
280
+ }));
281
+ },
282
+ };
283
+ /** Annex §1 — `created_at` → "new this period" + delta vs prior period. */
284
+ const kpiNewThisPeriod = {
285
+ id: 'kpi.new-this-period',
286
+ family: 'kpi',
287
+ match(view, ctx) {
288
+ const column = firstWithSemantic(view, 'created-at');
289
+ if (column === null)
290
+ return [];
291
+ return [
292
+ {
293
+ widget: 'kpi-stat-card',
294
+ score: score(0.8, byRowCount(view)),
295
+ shape: 'metric+delta',
296
+ family: 'kpi',
297
+ rule: 'kpi.new-this-period',
298
+ reason: `created-at "${column.name}" — new-this-period card with a prior-period delta (annex §1)`,
299
+ binding: descriptor(view, ctx, 'metric+delta', {
300
+ aggregations: [{ fn: 'count', alias: 'value' }],
301
+ window: { column: column.name, last: 30, unit: 'day', compareToPrior: true },
302
+ }),
303
+ config: { title: `New ${humanize(view.table.name)} (30d)`, deltaMode: 'pct' },
304
+ },
305
+ ];
306
+ },
307
+ };
308
+ /** Annex §1 — enum/status column → per-state counts (Pending/Approved…). */
309
+ const kpiStatusCount = {
310
+ id: 'kpi.status-count',
311
+ family: 'kpi',
312
+ match(view, ctx) {
313
+ const column = firstWithSemantic(view, 'status-workflow');
314
+ if (column === null)
315
+ return [];
316
+ const active = column.enumValues.find((v) => ACTIVE_STATE_RE.test(v)) ?? column.enumValues[0];
317
+ if (active === undefined)
318
+ return [];
319
+ return [
320
+ {
321
+ widget: 'kpi-stat-card',
322
+ score: score(0.75, byRowCount(view), byName(ACTIVE_STATE_RE.test(active))),
323
+ shape: 'single-metric',
324
+ family: 'kpi',
325
+ rule: 'kpi.status-count',
326
+ reason: `status enum "${column.name}" — count of the "${active}" state (annex §1)`,
327
+ binding: descriptor(view, ctx, 'single-metric', {
328
+ aggregations: [{ fn: 'count', alias: 'value' }],
329
+ filters: [{ column: column.name, op: 'eq', value: active }],
330
+ }),
331
+ config: { title: `${humanize(active)} ${humanize(view.table.name)}` },
332
+ },
333
+ ];
334
+ },
335
+ };
336
+ /** Annex §1 — score-like 0–100 column → `gauge-ring`. */
337
+ const kpiScoreGauge = {
338
+ id: 'kpi.score-gauge',
339
+ family: 'kpi',
340
+ match(view, ctx) {
341
+ const column = firstWithSemantic(view, 'score', 'percent');
342
+ if (column === null)
343
+ return [];
344
+ return [
345
+ {
346
+ widget: 'gauge-ring',
347
+ score: score(0.6, byRowCount(view)),
348
+ shape: 'single-metric',
349
+ family: 'kpi',
350
+ rule: 'kpi.score-gauge',
351
+ reason: `${column.semantic} column "${column.name}" — average as a 0–100 ring (annex §1)`,
352
+ binding: descriptor(view, ctx, 'single-metric', {
353
+ aggregations: [{ fn: 'avg', column: column.name, alias: 'value' }],
354
+ }),
355
+ config: { title: `Average ${humanize(column.name)}`, max: 100 },
356
+ },
357
+ ];
358
+ },
359
+ };
360
+ /**
361
+ * Annex §1 — "numeric + configured cap … → `usage-meter`". No
362
+ * `adminium_settings` cap is available at generation time, so the rule fires on
363
+ * the storage shape the annex §14 `page-files` template meters (a byte/size
364
+ * numeric); the limit stays a config default the admin edits in Studio.
365
+ */
366
+ const kpiStorageUsage = {
367
+ id: 'kpi.storage-usage',
368
+ family: 'kpi',
369
+ match(view, ctx) {
370
+ const column = view.columns.find((c) => NUMERIC_TYPES.has(c.logicalType) && !c.isPrimaryKey && SIZE_RE.test(normalize(c.name)));
371
+ if (column === undefined)
372
+ return [];
373
+ return [
374
+ {
375
+ widget: 'usage-meter',
376
+ score: score(0.6, byRowCount(view)),
377
+ shape: 'single-metric',
378
+ family: 'kpi',
379
+ rule: 'kpi.storage-usage',
380
+ reason: `size numeric "${column.name}" — quota meter over SUM(${column.name}) (annex §1)`,
381
+ binding: descriptor(view, ctx, 'single-metric', {
382
+ aggregations: [{ fn: 'sum', column: column.name, alias: 'value' }],
383
+ }),
384
+ config: { title: `${humanize(view.table.name)} Storage`, format: 'filesize' },
385
+ },
386
+ ];
387
+ },
388
+ };
389
+ /** Annex §2 — "timestamp column + numeric column → `chart-line-area`". */
390
+ const chartsHeroTimeseries = {
391
+ id: 'charts.time-numeric',
392
+ family: 'charts',
393
+ match(view, ctx) {
394
+ const axis = timeAxis(view);
395
+ if (axis === null)
396
+ return [];
397
+ const money = firstWithSemantic(view, 'money');
398
+ const title = money !== null
399
+ ? `${humanize(money.name)} per Month`
400
+ : `${humanize(view.table.name)} per Month`;
401
+ return [
402
+ {
403
+ widget: 'chart-line-area',
404
+ score: score(0.95, byRowCount(view), byName(money !== null, 1.05, 1)),
405
+ shape: 'timeseries',
406
+ family: 'charts',
407
+ rule: 'charts.time-numeric',
408
+ reason: money !== null
409
+ ? `time axis "${axis.name}" × money "${money.name}" — the annex §2 hero timeseries`
410
+ : `time axis "${axis.name}" — row counts per month as the annex §2 hero timeseries`,
411
+ binding: descriptor(view, ctx, 'timeseries', {
412
+ aggregations: [
413
+ money !== null
414
+ ? { fn: 'sum', column: money.name, alias: 'value' }
415
+ : { fn: 'count', alias: 'value' },
416
+ ],
417
+ bucket: { column: axis.name, unit: 'month' },
418
+ }),
419
+ config: { title },
420
+ },
421
+ ];
422
+ },
423
+ };
424
+ /** Annex §2 — "timestamp alone → `chart-heatmap-calendar` of row counts". */
425
+ const chartsTimeHeatmap = {
426
+ id: 'charts.time-only',
427
+ family: 'charts',
428
+ match(view, ctx) {
429
+ const axis = timeAxis(view);
430
+ if (axis === null)
431
+ return [];
432
+ if (withSemantic(view, 'money', 'percent', 'score').length > 0)
433
+ return [];
434
+ return [
435
+ {
436
+ widget: 'chart-heatmap-calendar',
437
+ score: score(0.5, byRowCount(view)),
438
+ shape: 'timeseries',
439
+ family: 'charts',
440
+ rule: 'charts.time-only',
441
+ reason: `time axis "${axis.name}" with no numeric measure — daily row-count heatmap (annex §2)`,
442
+ binding: descriptor(view, ctx, 'timeseries', {
443
+ aggregations: [{ fn: 'count', alias: 'value' }],
444
+ bucket: { column: axis.name, unit: 'day' },
445
+ }),
446
+ config: { title: `${humanize(view.table.name)} Activity` },
447
+ },
448
+ ];
449
+ },
450
+ };
451
+ /** Annex §2 — "low-cardinality enum/text (≤8 distinct) → `chart-donut`". */
452
+ const chartsCategoricalDonut = {
453
+ id: 'charts.low-cardinality-enum',
454
+ family: 'charts',
455
+ match(view, ctx) {
456
+ const column = enumColumns(view)[0];
457
+ if (column === undefined)
458
+ return [];
459
+ if (column.enumValues.length > 8)
460
+ return [];
461
+ return [
462
+ {
463
+ widget: 'chart-donut',
464
+ score: score(0.8, byRowCount(view), byCardinality(column.enumValues.length, 6, 8)),
465
+ shape: 'categorical',
466
+ family: 'charts',
467
+ rule: 'charts.low-cardinality-enum',
468
+ reason: `enum "${column.name}" with ${column.enumValues.length} values — part-to-whole donut (annex §2)`,
469
+ binding: descriptor(view, ctx, 'categorical', {
470
+ aggregations: [{ fn: 'count', alias: 'value' }],
471
+ groupBy: [column.name],
472
+ limit: 8,
473
+ }),
474
+ config: { title: `${humanize(view.table.name)} by ${humanize(column.name)}` },
475
+ },
476
+ ];
477
+ },
478
+ };
479
+ /** Annex §2 — "two numerics → `chart-scatter-bubble`". */
480
+ const chartsScatter = {
481
+ id: 'charts.two-numerics',
482
+ family: 'charts',
483
+ match(view, ctx) {
484
+ const numerics = withSemantic(view, 'money', 'percent', 'score', 'duration').filter((c) => NUMERIC_TYPES.has(c.logicalType));
485
+ const x = numerics[0];
486
+ const y = numerics[1];
487
+ if (x === undefined || y === undefined)
488
+ return [];
489
+ return [
490
+ {
491
+ widget: 'chart-scatter-bubble',
492
+ score: score(0.5, byRowCount(view)),
493
+ shape: 'record-list',
494
+ family: 'charts',
495
+ rule: 'charts.two-numerics',
496
+ reason: `numeric pair "${x.name}" × "${y.name}" — correlation scatter (annex §2)`,
497
+ binding: descriptor(view, ctx, 'record-list', {
498
+ select: [x.name, y.name],
499
+ limit: 500,
500
+ }),
501
+ config: { title: `${humanize(x.name)} vs ${humanize(y.name)}` },
502
+ },
503
+ ];
504
+ },
505
+ };
506
+ /** Annex §2 — "per-row latency/duration numeric → `chart-boxplot`". */
507
+ const chartsDurationBoxplot = {
508
+ id: 'charts.duration-distribution',
509
+ family: 'charts',
510
+ match(view, ctx) {
511
+ const column = firstWithSemantic(view, 'duration');
512
+ if (column === null)
513
+ return [];
514
+ return [
515
+ {
516
+ widget: 'chart-boxplot',
517
+ score: score(0.55, byRowCount(view)),
518
+ shape: 'distribution',
519
+ family: 'charts',
520
+ rule: 'charts.duration-distribution',
521
+ reason: `duration column "${column.name}" — quantile distribution (annex §2)`,
522
+ binding: descriptor(view, ctx, 'distribution', {
523
+ aggregations: [
524
+ { fn: 'percentile', column: column.name, p: 0.5, alias: 'p50' },
525
+ { fn: 'percentile', column: column.name, p: 0.9, alias: 'p90' },
526
+ { fn: 'percentile', column: column.name, p: 0.99, alias: 'p99' },
527
+ ],
528
+ }),
529
+ config: { title: `${humanize(column.name)} Distribution` },
530
+ },
531
+ ];
532
+ },
533
+ };
534
+ /** Annex §2/§7 — "region codes → `chart-choropleth-grid`". */
535
+ const chartsGeoRegion = {
536
+ id: 'charts.geo-region',
537
+ family: 'charts',
538
+ match(view, ctx) {
539
+ const column = firstWithSemantic(view, 'geo-region');
540
+ if (column === null)
541
+ return [];
542
+ return [
543
+ {
544
+ widget: 'chart-choropleth-grid',
545
+ score: score(0.6, byRowCount(view), byName(/country/i.test(column.name))),
546
+ shape: 'geo-points',
547
+ family: 'charts',
548
+ rule: 'charts.geo-region',
549
+ reason: `region code "${column.name}" — grid choropleth of row counts (annex §2/§7)`,
550
+ binding: descriptor(view, ctx, 'geo-points', {
551
+ aggregations: [{ fn: 'count', alias: 'value' }],
552
+ groupBy: [column.name],
553
+ limit: 60,
554
+ }),
555
+ config: { title: `${humanize(view.table.name)} by ${humanize(column.name)}` },
556
+ },
557
+ ];
558
+ },
559
+ };
560
+ /** Annex §3 — "every included table gets a `data-grid`". */
561
+ const tablesDataGrid = {
562
+ id: 'tables.data-grid',
563
+ family: 'tables',
564
+ match(view, ctx) {
565
+ return [
566
+ {
567
+ widget: 'data-grid',
568
+ // Deliberately below the specialised lists: `page-crud` already gives
569
+ // every table its grid (§15 step 3), so as an archetype-slot candidate
570
+ // the grid is the last-resort filler, not the first choice.
571
+ score: score(0.55, byRowCount(view)),
572
+ shape: 'record-list',
573
+ family: 'tables',
574
+ rule: 'tables.data-grid',
575
+ reason: `every included table gets a typed data-grid (annex §3)`,
576
+ binding: descriptor(view, ctx, 'record-list', {
577
+ select: listSelect(view),
578
+ limit: 50,
579
+ }),
580
+ config: { title: humanize(view.table.name) },
581
+ },
582
+ ];
583
+ },
584
+ };
585
+ /**
586
+ * Annex §3 — "enum column present → `master-list` + detail split candidate".
587
+ *
588
+ * Also fires for the §13 domain-card shape (start/end + progress/phase), which
589
+ * `./archetypes.ts` routes to `page-master-detail` as well: that manifest's
590
+ * `master` slot is `required`, so the split view needs its rail whether the
591
+ * detail pane ends up a key-value list or a gantt.
592
+ *
593
+ * SCORING — `master-list` is deliberately flat 0.95, unmodified: `page-master-
594
+ * detail`'s `master` slot accepts **any** `record-list` (04 §10 shape match) and
595
+ * is filled before `detail`, so the rail must outrank every other record-list
596
+ * candidate on the table or it would consume the very domain card the detail
597
+ * pane exists to show (a `gantt-chart` in the 4-column master rail, and an
598
+ * unfillable `detail` → no page at all). No modifier may lift another candidate
599
+ * past it — see `byRowCount`'s cap and the ordering test in `candidates.test.ts`.
600
+ */
601
+ const tablesMasterDetail = {
602
+ id: 'tables.master-detail',
603
+ family: 'tables',
604
+ match(view, ctx) {
605
+ const enums = enumColumns(view);
606
+ const start = dateRangeStart(view);
607
+ const domainCard = start !== null && (firstWithSemantic(view, 'percent') !== null || projectFk(view) !== null);
608
+ if (enums.length === 0 && !domainCard)
609
+ return [];
610
+ const enumColumn = enums[0];
611
+ const reason = enumColumn === undefined
612
+ ? `start/end pair "${start?.name}" — master rail of the domain-card split view (annex §3/§13)`
613
+ : `enum "${enumColumn.name}" — master list of the split view (annex §3)`;
614
+ return [
615
+ {
616
+ widget: 'master-list',
617
+ score: score(0.95),
618
+ shape: 'record-list',
619
+ family: 'tables',
620
+ rule: 'tables.master-detail',
621
+ reason,
622
+ binding: descriptor(view, ctx, 'record-list', {
623
+ select: listSelect(view, 4),
624
+ limit: 100,
625
+ }),
626
+ config: {
627
+ title: humanize(view.table.name),
628
+ ...(enumColumn === undefined ? {} : { groupBy: enumColumn.name }),
629
+ },
630
+ },
631
+ {
632
+ widget: 'detail-key-value',
633
+ score: score(0.7, byRowCount(view)),
634
+ shape: 'record',
635
+ family: 'tables',
636
+ rule: 'tables.master-detail',
637
+ reason: `per-record detail pane for the ${humanize(view.table.name)} split view (annex §3)`,
638
+ binding: descriptor(view, ctx, 'record', { limit: 1 }),
639
+ config: { title: `${humanize(view.table.name)} Detail` },
640
+ },
641
+ ];
642
+ },
643
+ };
644
+ /** Annex §3 — "table with `name`+`image/avatar/logo` columns → `card-gallery`". */
645
+ const tablesCardGallery = {
646
+ id: 'tables.card-gallery',
647
+ family: 'tables',
648
+ match(view, ctx) {
649
+ const image = firstWithSemantic(view, 'image-url');
650
+ if (image === null || view.displayColumn === null)
651
+ return [];
652
+ return [
653
+ {
654
+ widget: 'card-gallery',
655
+ score: score(0.75, byRowCount(view), byName(view.shape === 'people', 1.1, 1)),
656
+ shape: 'record-list',
657
+ family: 'tables',
658
+ rule: 'tables.card-gallery',
659
+ reason: `display column "${view.displayColumn}" + image "${image.name}" — card gallery (annex §3)`,
660
+ binding: descriptor(view, ctx, 'record-list', {
661
+ select: listSelect(view),
662
+ limit: 60,
663
+ }),
664
+ config: {
665
+ title: humanize(view.table.name),
666
+ titleColumn: view.displayColumn,
667
+ imageColumn: image.name,
668
+ },
669
+ },
670
+ ];
671
+ },
672
+ };
673
+ /** Annex §3 — "audit/log-named tables (`*_log`, `*_events`, `audit*`) → `log-table`". */
674
+ const tablesLogTable = {
675
+ id: 'tables.log-table',
676
+ family: 'tables',
677
+ match(view, ctx) {
678
+ if (view.shape !== 'log' && view.role !== 'log')
679
+ return [];
680
+ const axis = timeAxis(view);
681
+ return [
682
+ {
683
+ widget: 'log-table',
684
+ score: score(0.85, byRowCount(view)),
685
+ shape: 'record-list',
686
+ family: 'tables',
687
+ rule: 'tables.log-table',
688
+ reason: `${view.table.id} classified as a log table — dense log grid (annex §3)`,
689
+ binding: descriptor(view, ctx, 'record-list', {
690
+ select: listSelect(view),
691
+ ...(axis === null ? {} : { orderBy: [{ column: axis.name, dir: 'desc' }] }),
692
+ limit: 100,
693
+ }),
694
+ config: { title: humanize(view.table.name) },
695
+ },
696
+ ];
697
+ },
698
+ };
699
+ /** Annex §3 — "parent-child FK self-reference → `schema-tree`-style tree view". */
700
+ const tablesTree = {
701
+ id: 'tables.self-fk-tree',
702
+ family: 'tables',
703
+ match(view, ctx) {
704
+ if (view.hierarchyColumn === null)
705
+ return [];
706
+ return [
707
+ {
708
+ widget: 'schema-tree',
709
+ score: score(0.5, byRowCount(view)),
710
+ shape: 'hierarchy/tree',
711
+ family: 'tables',
712
+ rule: 'tables.self-fk-tree',
713
+ reason: `self-FK "${view.hierarchyColumn}" — collapsible tree view (annex §3)`,
714
+ binding: descriptor(view, ctx, 'hierarchy/tree', {
715
+ select: listSelect(view, 4),
716
+ limit: 500,
717
+ }),
718
+ config: {
719
+ title: humanize(view.table.name),
720
+ parentColumn: view.hierarchyColumn,
721
+ labelColumn: view.displayColumn,
722
+ },
723
+ },
724
+ ];
725
+ },
726
+ };
727
+ /** Annex §4 — "(actor FK | user_id) + timestamp + verb-ish text → `activity-feed`". */
728
+ const feedsActivity = {
729
+ id: 'feeds.actor-timestamp-verb',
730
+ family: 'feeds',
731
+ match(view, ctx) {
732
+ const actor = personFk(view);
733
+ const axis = timeAxis(view);
734
+ const verb = view.columns.find((c) => TEXTISH_TYPES.has(c.logicalType) && VERBISH_RE.test(normalize(c.name)));
735
+ if (actor === null || axis === null || verb === undefined)
736
+ return [];
737
+ return [
738
+ {
739
+ widget: 'activity-feed',
740
+ score: score(0.7, byRowCount(view)),
741
+ shape: 'record-list',
742
+ family: 'feeds',
743
+ rule: 'feeds.actor-timestamp-verb',
744
+ reason: `actor FK "${actor.name}" + "${axis.name}" + verb text "${verb.name}" — activity feed (annex §4)`,
745
+ binding: descriptor(view, ctx, 'record-list', {
746
+ select: listSelect(view),
747
+ orderBy: [{ column: axis.name, dir: 'desc' }],
748
+ limit: 50,
749
+ }),
750
+ config: { title: `${humanize(view.table.name)} Activity` },
751
+ },
752
+ ];
753
+ },
754
+ };
755
+ /** Annex §4 — "`read`/`seen` boolean → `notification-feed` with unread logic". */
756
+ const feedsNotification = {
757
+ id: 'feeds.read-flag',
758
+ family: 'feeds',
759
+ match(view, ctx) {
760
+ const flag = view.columns.find((c) => (c.logicalType === 'boolean' || c.semantic === 'boolean-flag') &&
761
+ READ_FLAG_RE.test(normalize(c.name)));
762
+ if (flag === undefined)
763
+ return [];
764
+ const axis = timeAxis(view);
765
+ return [
766
+ {
767
+ widget: 'notification-feed',
768
+ score: score(0.8, byRowCount(view)),
769
+ shape: 'record-list',
770
+ family: 'feeds',
771
+ rule: 'feeds.read-flag',
772
+ reason: `read/unread flag "${flag.name}" — notification feed with unread logic (annex §4)`,
773
+ binding: descriptor(view, ctx, 'record-list', {
774
+ select: listSelect(view),
775
+ ...(axis === null ? {} : { orderBy: [{ column: axis.name, dir: 'desc' }] }),
776
+ limit: 50,
777
+ }),
778
+ config: { title: humanize(view.table.name), readColumn: flag.name },
779
+ },
780
+ ];
781
+ },
782
+ };
783
+ /** Annex §4 — "high write-rate tables → `realtime-feed` candidate". */
784
+ const feedsRealtime = {
785
+ id: 'feeds.high-write-rate',
786
+ family: 'feeds',
787
+ match(view, ctx) {
788
+ const velocity = view.stats.writeVelocity;
789
+ if (velocity === null || velocity < 10_000)
790
+ return [];
791
+ const axis = timeAxis(view);
792
+ if (axis === null)
793
+ return [];
794
+ return [
795
+ {
796
+ widget: 'realtime-feed',
797
+ score: score(0.5, byRowCount(view)),
798
+ shape: 'stream',
799
+ family: 'feeds',
800
+ rule: 'feeds.high-write-rate',
801
+ reason: `write velocity ${velocity} — streamed realtime feed (annex §4)`,
802
+ binding: descriptor(view, ctx, 'stream', {
803
+ select: listSelect(view),
804
+ orderBy: [{ column: axis.name, dir: 'desc' }],
805
+ limit: 50,
806
+ }),
807
+ config: { title: `${humanize(view.table.name)} Live` },
808
+ },
809
+ ];
810
+ },
811
+ };
812
+ /** Annex §4 — "version-string column + date → changelog `timeline-vertical`". */
813
+ const feedsTimeline = {
814
+ id: 'feeds.version-timeline',
815
+ family: 'feeds',
816
+ match(view, ctx) {
817
+ const axis = timeAxis(view);
818
+ const version = view.columns.find((c) => TEXTISH_TYPES.has(c.logicalType) && VERSION_RE.test(normalize(c.name)));
819
+ const trace = view.shape === 'log' || view.role === 'log';
820
+ if (axis === null || (version === undefined && !trace))
821
+ return [];
822
+ return [
823
+ {
824
+ widget: 'timeline-vertical',
825
+ score: score(version === undefined ? 0.45 : 0.55, byRowCount(view)),
826
+ shape: 'record-list',
827
+ family: 'feeds',
828
+ rule: 'feeds.version-timeline',
829
+ reason: version === undefined
830
+ ? `log table with time axis "${axis.name}" — vertical trace timeline (annex §4)`
831
+ : `version column "${version.name}" + "${axis.name}" — changelog timeline (annex §4)`,
832
+ binding: descriptor(view, ctx, 'record-list', {
833
+ select: listSelect(view),
834
+ orderBy: [{ column: axis.name, dir: 'desc' }],
835
+ limit: 50,
836
+ }),
837
+ config: { title: `${humanize(view.table.name)} Timeline` },
838
+ },
839
+ ];
840
+ },
841
+ };
842
+ /** Annex §5 — "date/timestamp column + title-ish text column → `calendar-month` + `day-agenda`". */
843
+ const calendarMonth = {
844
+ id: 'calendar.date-title',
845
+ family: 'calendar',
846
+ match(view, ctx) {
847
+ const date = eventDate(view) ?? dateRangeStart(view);
848
+ if (date === null || view.displayColumn === null)
849
+ return [];
850
+ const rowScore = byRowCount(view);
851
+ const eventsShape = byName(view.shape === 'events', 1.05, 1);
852
+ const binding = () => descriptor(view, ctx, 'calendar-events', {
853
+ select: listSelect(view),
854
+ orderBy: [{ column: date.name, dir: 'asc' }],
855
+ limit: 500,
856
+ });
857
+ const config = {
858
+ titleColumn: view.displayColumn,
859
+ startColumn: date.name,
860
+ ...(date.pair?.role === 'start' ? { endColumn: date.pair.partner } : {}),
861
+ };
862
+ return [
863
+ {
864
+ widget: 'calendar-month',
865
+ score: score(0.85, rowScore, eventsShape),
866
+ shape: 'calendar-events',
867
+ family: 'calendar',
868
+ rule: 'calendar.date-title',
869
+ reason: `date "${date.name}" + title "${view.displayColumn}" — month calendar (annex §5)`,
870
+ binding: binding(),
871
+ config: { title: humanize(view.table.name), ...config },
872
+ },
873
+ {
874
+ widget: 'day-agenda',
875
+ score: score(0.6, rowScore, eventsShape),
876
+ shape: 'calendar-events',
877
+ family: 'calendar',
878
+ rule: 'calendar.date-title',
879
+ reason: `date "${date.name}" + title "${view.displayColumn}" — day agenda beside the calendar (annex §5)`,
880
+ binding: binding(),
881
+ config: { title: 'Agenda', ...config },
882
+ },
883
+ ];
884
+ },
885
+ };
886
+ /** Annex §5 — "FK-to-people + date + enum(type) → `schedule-matrix`". */
887
+ const calendarScheduleMatrix = {
888
+ id: 'calendar.person-date-shift',
889
+ family: 'calendar',
890
+ match(view, ctx) {
891
+ const person = personFk(view);
892
+ const date = eventDate(view) ?? dateRangeStart(view);
893
+ if (person === null || date === null)
894
+ return [];
895
+ const type = enumColumns(view).find((c) => SHIFT_TYPE_RE.test(normalize(c.name)) || c.semantic === 'category-enum');
896
+ if (type === undefined)
897
+ return [];
898
+ return [
899
+ {
900
+ widget: 'schedule-matrix',
901
+ score: score(0.75, byRowCount(view), byName(SHIFT_TYPE_RE.test(normalize(type.name)) || view.shape === 'events')),
902
+ shape: 'record-list',
903
+ family: 'calendar',
904
+ rule: 'calendar.person-date-shift',
905
+ reason: `person FK "${person.name}" × date "${date.name}" × type "${type.name}" — shift matrix (annex §5)`,
906
+ binding: descriptor(view, ctx, 'record-list', {
907
+ select: listSelect(view),
908
+ orderBy: [{ column: date.name, dir: 'asc' }],
909
+ limit: 500,
910
+ }),
911
+ config: {
912
+ title: humanize(view.table.name),
913
+ personColumn: person.name,
914
+ dateColumn: date.name,
915
+ typeColumn: type.name,
916
+ },
917
+ },
918
+ ];
919
+ },
920
+ };
921
+ /** Annex §5 — "numeric hours + FK person + FK project → `capacity-board`". */
922
+ const calendarCapacityBoard = {
923
+ id: 'calendar.hours-per-project',
924
+ family: 'calendar',
925
+ match(view, ctx) {
926
+ const person = personFk(view);
927
+ const project = projectFk(view);
928
+ const hours = view.columns.find((c) => NUMERIC_TYPES.has(c.logicalType) && !c.isPrimaryKey && HOURS_RE.test(normalize(c.name)));
929
+ if (person === null || project === null || hours === undefined)
930
+ return [];
931
+ return [
932
+ {
933
+ widget: 'capacity-board',
934
+ score: score(0.75, byRowCount(view)),
935
+ shape: 'record-list',
936
+ family: 'calendar',
937
+ rule: 'calendar.hours-per-project',
938
+ reason: `hours "${hours.name}" × person "${person.name}" × project "${project.name}" — capacity board (annex §5)`,
939
+ binding: descriptor(view, ctx, 'record-list', {
940
+ select: listSelect(view),
941
+ limit: 500,
942
+ }),
943
+ config: {
944
+ title: humanize(view.table.name),
945
+ personColumn: person.name,
946
+ projectColumn: project.name,
947
+ hoursColumn: hours.name,
948
+ },
949
+ },
950
+ ];
951
+ },
952
+ };
953
+ /**
954
+ * Annex §6 — "status-like enum (≤6 values, names matching `todo|progress|…` or
955
+ * LLM-classified as workflow states) → kanban candidate alongside the
956
+ * `data-grid`; **second orthogonal enum or team FK → swimlanes**; numeric
957
+ * `pct/progress` column → card progress bar".
958
+ *
959
+ * One rule, two widget ids: the lane dimension *is* the discriminator between
960
+ * `kanban-board` and `kanban-swimlane-grid` (annex §14 lists them as one
961
+ * composition, "`kanban-board`/`kanban-swimlane-grid` … optional lane
962
+ * dimension"). Emitting both and letting them fight over `page-board`'s slot on
963
+ * score would make the winner an artefact of modifier arithmetic; picking here
964
+ * makes it an artefact of the schema, which is the point.
965
+ */
966
+ const boardsKanban = {
967
+ id: 'boards.workflow-enum',
968
+ family: 'boards',
969
+ match(view, ctx) {
970
+ const status = firstWithSemantic(view, 'status-workflow');
971
+ if (status === null || status.enumValues.length === 0 || status.enumValues.length > 6)
972
+ return [];
973
+ const boardish = status.enumValues.filter((v) => BOARD_STATE_RE.test(v.trim())).length;
974
+ if (boardish === 0)
975
+ return [];
976
+ const lane = enumColumns(view).find((c) => c.name !== status.name && c.semantic === 'category-enum') ??
977
+ personFk(view) ??
978
+ projectFk(view) ??
979
+ null;
980
+ const progress = firstWithSemantic(view, 'percent');
981
+ return [
982
+ {
983
+ widget: lane === null ? 'kanban-board' : 'kanban-swimlane-grid',
984
+ score: score(0.85, byRowCount(view), byCardinality(status.enumValues.length, 6, 6), byName(boardish === status.enumValues.length)),
985
+ shape: 'record-list',
986
+ family: 'boards',
987
+ rule: 'boards.workflow-enum',
988
+ reason: lane === null
989
+ ? `workflow enum "${status.name}" with ${status.enumValues.length} states — kanban columns (annex §6)`
990
+ : `workflow enum "${status.name}" × lane dimension "${lane.name}" — swimlane grid (annex §6)`,
991
+ binding: descriptor(view, ctx, 'record-list', {
992
+ select: listSelect(view),
993
+ limit: 200,
994
+ }),
995
+ config: {
996
+ title: humanize(view.table.name),
997
+ statusColumn: status.name,
998
+ columns: [...status.enumValues],
999
+ ...(lane === null ? {} : { laneColumn: lane.name }),
1000
+ ...(view.displayColumn === null ? {} : { titleColumn: view.displayColumn }),
1001
+ ...(progress === null ? {} : { progressColumn: progress.name }),
1002
+ },
1003
+ },
1004
+ ];
1005
+ },
1006
+ };
1007
+ /** Annex §7 — "paired `lat`/`lng` … numeric columns → `map-bubble`". */
1008
+ const geoMapBubble = {
1009
+ id: 'geo.lat-lng-pair',
1010
+ family: 'geo',
1011
+ match(view, ctx) {
1012
+ const lat = view.columns.find((c) => c.semantic === 'geo-point' && c.pair?.role === 'lat');
1013
+ const lng = view.columns.find((c) => c.semantic === 'geo-point' && c.pair?.role === 'lng');
1014
+ if (lat === undefined || lng === undefined)
1015
+ return [];
1016
+ return [
1017
+ {
1018
+ widget: 'map-bubble',
1019
+ score: score(0.9, byRowCount(view)),
1020
+ shape: 'geo-points',
1021
+ family: 'geo',
1022
+ rule: 'geo.lat-lng-pair',
1023
+ reason: `lat/lng pair "${lat.name}"/"${lng.name}" — bubble map (annex §7)`,
1024
+ binding: descriptor(view, ctx, 'geo-points', {
1025
+ select: listSelect(view),
1026
+ limit: 1000,
1027
+ }),
1028
+ config: { title: humanize(view.table.name), latColumn: lat.name, lngColumn: lng.name },
1029
+ },
1030
+ ];
1031
+ },
1032
+ };
1033
+ /** Annex §8 — "column typed storage-URL or named file|attachment|… → `attachment-list`". */
1034
+ const mediaAttachmentList = {
1035
+ id: 'media.file-ref',
1036
+ family: 'media',
1037
+ match(view, ctx) {
1038
+ const file = firstWithSemantic(view, 'file-ref');
1039
+ if (file === null)
1040
+ return [];
1041
+ return [
1042
+ {
1043
+ widget: 'attachment-list',
1044
+ score: score(0.7, byRowCount(view)),
1045
+ shape: 'record-list',
1046
+ family: 'media',
1047
+ rule: 'media.file-ref',
1048
+ reason: `file reference "${file.name}" — attachment list (annex §8)`,
1049
+ binding: descriptor(view, ctx, 'record-list', {
1050
+ select: listSelect(view),
1051
+ limit: 50,
1052
+ }),
1053
+ config: { title: `${humanize(view.table.name)} Attachments`, fileColumn: file.name },
1054
+ },
1055
+ ];
1056
+ },
1057
+ };
1058
+ /** Annex §8 — "`image-board`/`card-gallery` thumbnails when multiple images". */
1059
+ const mediaImageBoard = {
1060
+ id: 'media.image-url',
1061
+ family: 'media',
1062
+ match(view, ctx) {
1063
+ const images = withSemantic(view, 'image-url');
1064
+ if (images.length === 0)
1065
+ return [];
1066
+ const image = images[0];
1067
+ return [
1068
+ {
1069
+ widget: 'image-board',
1070
+ score: score(0.5, byRowCount(view), byName(images.length > 1)),
1071
+ shape: 'record-list',
1072
+ family: 'media',
1073
+ rule: 'media.image-url',
1074
+ reason: `image column "${image.name}" — thumbnail board (annex §8)`,
1075
+ binding: descriptor(view, ctx, 'record-list', {
1076
+ select: listSelect(view),
1077
+ limit: 60,
1078
+ }),
1079
+ config: { title: `${humanize(view.table.name)} Media`, imageColumn: image.name },
1080
+ },
1081
+ ];
1082
+ },
1083
+ };
1084
+ /** Annex §8 — "table with name+size+parent self-FK → `file-browser`". */
1085
+ const mediaFileBrowser = {
1086
+ id: 'media.file-shaped-table',
1087
+ family: 'media',
1088
+ match(view, ctx) {
1089
+ if (!isFileShaped(view))
1090
+ return [];
1091
+ return [
1092
+ {
1093
+ widget: 'file-browser',
1094
+ score: score(0.9, byRowCount(view)),
1095
+ shape: 'record-list',
1096
+ family: 'media',
1097
+ rule: 'media.file-shaped-table',
1098
+ reason: `file-shaped table (name + size + file reference) — file browser (annex §8)`,
1099
+ binding: descriptor(view, ctx, 'record-list', {
1100
+ select: listSelect(view),
1101
+ limit: 200,
1102
+ }),
1103
+ config: {
1104
+ title: humanize(view.table.name),
1105
+ ...(view.displayColumn === null ? {} : { nameColumn: view.displayColumn }),
1106
+ ...(view.hierarchyColumn === null ? {} : { parentColumn: view.hierarchyColumn }),
1107
+ },
1108
+ },
1109
+ ];
1110
+ },
1111
+ };
1112
+ /** Annex §8 — "URL columns → `link-list`". */
1113
+ const mediaLinkList = {
1114
+ id: 'media.url-column',
1115
+ family: 'media',
1116
+ match(view, ctx) {
1117
+ const url = firstWithSemantic(view, 'url');
1118
+ if (url === null)
1119
+ return [];
1120
+ return [
1121
+ {
1122
+ widget: 'link-list',
1123
+ score: score(0.4, byRowCount(view)),
1124
+ shape: 'record-list',
1125
+ family: 'media',
1126
+ rule: 'media.url-column',
1127
+ reason: `URL column "${url.name}" — link list (annex §8)`,
1128
+ binding: descriptor(view, ctx, 'record-list', {
1129
+ select: listSelect(view),
1130
+ limit: 50,
1131
+ }),
1132
+ config: { title: `${humanize(view.table.name)} Links`, urlColumn: url.name },
1133
+ },
1134
+ ];
1135
+ },
1136
+ };
1137
+ /**
1138
+ * Annex §9 — "table pair shaped like conversations(id, participants) +
1139
+ * messages(conversation_fk, sender_fk, body, created_at) → `conversation-inbox`
1140
+ * + `chat-thread` page". Emitted on the **conversation** side (the page's
1141
+ * subject); the thread binds to the messages child.
1142
+ */
1143
+ const communicationPair = {
1144
+ id: 'communication.conversation-message-pair',
1145
+ family: 'communication',
1146
+ match(view, ctx) {
1147
+ const messages = messagesChildOf(view, ctx);
1148
+ if (messages === null)
1149
+ return [];
1150
+ const axis = timeAxis(messages);
1151
+ const rowScore = byRowCount(view);
1152
+ return [
1153
+ {
1154
+ widget: 'conversation-inbox',
1155
+ score: score(0.9, rowScore),
1156
+ shape: 'record-list',
1157
+ family: 'communication',
1158
+ rule: 'communication.conversation-message-pair',
1159
+ reason: `conversation table paired with messages "${messages.table.id}" — inbox rail (annex §9)`,
1160
+ binding: descriptor(view, ctx, 'record-list', {
1161
+ select: listSelect(view),
1162
+ limit: 100,
1163
+ }),
1164
+ config: { title: humanize(view.table.name) },
1165
+ },
1166
+ {
1167
+ widget: 'chat-thread',
1168
+ score: score(0.85, rowScore),
1169
+ shape: 'record-list',
1170
+ family: 'communication',
1171
+ rule: 'communication.conversation-message-pair',
1172
+ reason: `messages "${messages.table.id}" of ${view.table.id} — chat thread pane (annex §9)`,
1173
+ binding: siblingDescriptor(messages, ctx, 'record-list', {
1174
+ select: listSelect(messages),
1175
+ ...(axis === null ? {} : { orderBy: [{ column: axis.name, dir: 'asc' }] }),
1176
+ limit: 200,
1177
+ }),
1178
+ config: { title: 'Thread' },
1179
+ },
1180
+ ];
1181
+ },
1182
+ };
1183
+ /** Annex §13 — "self-FK on a people table (`manager_id`) → `org-chart`". */
1184
+ const domainOrgChart = {
1185
+ id: 'domain.people-self-fk',
1186
+ family: 'domain',
1187
+ match(view, ctx) {
1188
+ if (view.hierarchyColumn === null)
1189
+ return [];
1190
+ if (view.shape !== 'people' && view.role !== 'people')
1191
+ return [];
1192
+ return [
1193
+ {
1194
+ widget: 'org-chart',
1195
+ score: score(0.9, byRowCount(view)),
1196
+ shape: 'hierarchy/tree',
1197
+ family: 'domain',
1198
+ rule: 'domain.people-self-fk',
1199
+ reason: `people table with self-FK "${view.hierarchyColumn}" — org chart (annex §13)`,
1200
+ binding: descriptor(view, ctx, 'hierarchy/tree', {
1201
+ select: listSelect(view),
1202
+ limit: 500,
1203
+ }),
1204
+ config: {
1205
+ title: humanize(view.table.name),
1206
+ parentColumn: view.hierarchyColumn,
1207
+ ...(view.displayColumn === null ? {} : { labelColumn: view.displayColumn }),
1208
+ },
1209
+ },
1210
+ ];
1211
+ },
1212
+ };
1213
+ /** Annex §13 — "start+end dates + phase FK → `gantt-chart`". */
1214
+ const domainGanttChart = {
1215
+ id: 'domain.start-end-phase',
1216
+ family: 'domain',
1217
+ match(view, ctx) {
1218
+ const start = dateRangeStart(view);
1219
+ if (start === null || start.pair === null)
1220
+ return [];
1221
+ const progress = firstWithSemantic(view, 'percent');
1222
+ const phase = projectFk(view);
1223
+ if (progress === null && phase === null)
1224
+ return [];
1225
+ return [
1226
+ {
1227
+ widget: 'gantt-chart',
1228
+ score: score(0.85, byRowCount(view), byName(progress !== null && phase !== null)),
1229
+ shape: 'record-list',
1230
+ family: 'domain',
1231
+ rule: 'domain.start-end-phase',
1232
+ reason: `start/end pair "${start.name}"/"${start.pair.partner}"${phase === null ? '' : ` + phase FK "${phase.name}"`} — gantt chart (annex §13)`,
1233
+ binding: descriptor(view, ctx, 'record-list', {
1234
+ select: listSelect(view),
1235
+ orderBy: [{ column: start.name, dir: 'asc' }],
1236
+ limit: 200,
1237
+ }),
1238
+ config: {
1239
+ title: humanize(view.table.name),
1240
+ startColumn: start.name,
1241
+ endColumn: start.pair.partner,
1242
+ ...(view.displayColumn === null ? {} : { labelColumn: view.displayColumn }),
1243
+ ...(progress === null ? {} : { progressColumn: progress.name }),
1244
+ ...(phase === null ? {} : { groupColumn: phase.name }),
1245
+ },
1246
+ },
1247
+ ];
1248
+ },
1249
+ };
1250
+ /* ------------------------------------------------- cross-table predicates */
1251
+ /** Annex §8 `page-files` shape: a display name + a size numeric or a file ref. */
1252
+ export function isFileShaped(view) {
1253
+ if (view.displayColumn === null)
1254
+ return false;
1255
+ const hasSize = view.columns.some((c) => NUMERIC_TYPES.has(c.logicalType) && !c.isPrimaryKey && SIZE_RE.test(normalize(c.name)));
1256
+ const hasFileRef = view.columns.some((c) => c.semantic === 'file-ref');
1257
+ // name + size + parent self-FK (the annex's literal trigger), or the weaker
1258
+ // name + explicit file reference — an attachments table with a storage URL and
1259
+ // no size column, which §14's "or storage integration" clause is exactly about.
1260
+ return (hasSize && view.hierarchyColumn !== null) || hasFileRef;
1261
+ }
1262
+ /**
1263
+ * The messages child of a conversation container (annex §9): a `messages`-role
1264
+ * table with an FK back to `view`. Returns the child's view, or null.
1265
+ */
1266
+ export function messagesChildOf(view, ctx) {
1267
+ if (ctx.model === undefined)
1268
+ return null;
1269
+ if (view.role === 'messages')
1270
+ return null; // the child never hosts the pair page
1271
+ const conversationish = CONVERSATION_RE.test(normalize(bareName(view.table.id))) || view.role === 'entity';
1272
+ if (!conversationish)
1273
+ return null;
1274
+ const children = ctx.model
1275
+ .filter((entry) => entry.classified.role === 'messages' && entry.table.id !== view.table.id)
1276
+ .filter((entry) => entry.table.columns.some((c) => (c.references ?? null)?.tableId === view.table.id))
1277
+ .sort((a, b) => a.table.id.localeCompare(b.table.id));
1278
+ const child = children[0];
1279
+ return child === undefined ? null : buildCandidateView(child.table, child.classified);
1280
+ }
1281
+ /* -------------------------------------------------------------- rule table */
1282
+ /**
1283
+ * Every rule, in family order (04 §8 `candidateRules`). Order here is only a
1284
+ * reading aid — {@link emitCandidates} imposes a total order on the output.
1285
+ */
1286
+ export const candidateRules = [
1287
+ // §1 KPI / Stat
1288
+ kpiCountTotal,
1289
+ kpiMoneySum,
1290
+ kpiNewThisPeriod,
1291
+ kpiStatusCount,
1292
+ kpiScoreGauge,
1293
+ kpiStorageUsage,
1294
+ // §2 Charts
1295
+ chartsHeroTimeseries,
1296
+ chartsTimeHeatmap,
1297
+ chartsCategoricalDonut,
1298
+ chartsScatter,
1299
+ chartsDurationBoxplot,
1300
+ chartsGeoRegion,
1301
+ // §3 Tables & Lists
1302
+ tablesDataGrid,
1303
+ tablesMasterDetail,
1304
+ tablesCardGallery,
1305
+ tablesLogTable,
1306
+ tablesTree,
1307
+ // §4 Feeds
1308
+ feedsActivity,
1309
+ feedsNotification,
1310
+ feedsRealtime,
1311
+ feedsTimeline,
1312
+ // §5 Calendar
1313
+ calendarMonth,
1314
+ calendarScheduleMatrix,
1315
+ calendarCapacityBoard,
1316
+ // §6 Boards
1317
+ boardsKanban,
1318
+ // §7 Geo
1319
+ geoMapBubble,
1320
+ // §8 Media
1321
+ mediaAttachmentList,
1322
+ mediaImageBoard,
1323
+ mediaFileBrowser,
1324
+ mediaLinkList,
1325
+ // §9 Communication
1326
+ communicationPair,
1327
+ // §13 Domain
1328
+ domainOrgChart,
1329
+ domainGanttChart,
1330
+ ];
1331
+ /**
1332
+ * H2 per-family caps. §8's listing fixes the dashboard-facing ones — "≤4 KPI
1333
+ * candidates per dashboard, exactly 1 hero chart, ≤4 secondary charts" (charts
1334
+ * = 1 + 4) — and the remaining families cap at the widest slot any §14 template
1335
+ * offers them, so pruning can never starve a template.
1336
+ */
1337
+ export const FAMILY_CAPS = {
1338
+ kpi: 4,
1339
+ charts: 5,
1340
+ tables: 4,
1341
+ feeds: 2,
1342
+ calendar: 3,
1343
+ boards: 2,
1344
+ geo: 1,
1345
+ media: 4,
1346
+ communication: 2,
1347
+ forms: 0, // page chrome, not candidates (annex §10 — the crud form owns them)
1348
+ chrome: 0, // app shell, mounted by the template's `chrome` block (annex §11)
1349
+ system: 0, // states/pills wired by the host widgets themselves (annex §12)
1350
+ domain: 2,
1351
+ };
1352
+ /** Total order: score desc → rule id → widget id → emission order. */
1353
+ function compareCandidates(a, b) {
1354
+ return (b.candidate.score - a.candidate.score ||
1355
+ a.candidate.rule.localeCompare(b.candidate.rule) ||
1356
+ a.candidate.widget.localeCompare(b.candidate.widget) ||
1357
+ a.order - b.order);
1358
+ }
1359
+ /**
1360
+ * **H1 + H2** for one table: run every {@link candidateRules} `match`, drop ids
1361
+ * the live registry does not know (`ctx.isRegistered`), then sort by the total
1362
+ * order above and apply {@link FAMILY_CAPS}.
1363
+ *
1364
+ * Pure and deterministic — the same `(table, classified, ctx)` always yields the
1365
+ * same array, including score values and ordering.
1366
+ */
1367
+ export function emitCandidates(table, classified, ctx) {
1368
+ const view = buildCandidateView(table, classified);
1369
+ // System and join tables are never paged (05 §8.2) — they get no widgets.
1370
+ if (view.role === 'system' || view.role === 'join-table')
1371
+ return [];
1372
+ const emitted = [];
1373
+ for (const rule of candidateRules) {
1374
+ for (const candidate of rule.match(view, ctx)) {
1375
+ if (ctx.isRegistered !== undefined && !ctx.isRegistered(candidate.widget))
1376
+ continue;
1377
+ if (candidate.score <= 0)
1378
+ continue;
1379
+ emitted.push({ candidate, order: emitted.length });
1380
+ }
1381
+ }
1382
+ emitted.sort(compareCandidates);
1383
+ const used = new Map();
1384
+ const out = [];
1385
+ for (const entry of emitted) {
1386
+ const family = entry.candidate.family;
1387
+ const taken = used.get(family) ?? 0;
1388
+ if (taken >= FAMILY_CAPS[family])
1389
+ continue;
1390
+ used.set(family, taken + 1);
1391
+ out.push(entry.candidate);
1392
+ }
1393
+ return out;
1394
+ }
1395
+ /**
1396
+ * **H1 for a whole model** — 04 §8's `emitCandidates(schemaModel)`, keyed by
1397
+ * table id. `ctx.model` is threaded through automatically so cross-table rules
1398
+ * (annex §9's conversation+message pair) see every table.
1399
+ */
1400
+ export function emitModelCandidates(model, ctx) {
1401
+ const withModel = { ...ctx, model };
1402
+ const out = new Map();
1403
+ for (const entry of [...model].sort((a, b) => a.table.id.localeCompare(b.table.id))) {
1404
+ out.set(entry.table.id, emitCandidates(entry.table, entry.classified, withModel));
1405
+ }
1406
+ return out;
1407
+ }
1408
+ //# sourceMappingURL=candidates.js.map