@mono-lit/helper 0.0.0-stage → 0.0.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 (538) hide show
  1. package/LICENSE.md +55 -0
  2. package/README.md +34 -2
  3. package/dist/breakpoints-CAbhDUht.js +84 -0
  4. package/dist/checkbox-Cqpie9Ap.js +4 -0
  5. package/dist/chip-DBUUa2eB.js +4 -0
  6. package/dist/chip-limits-BMoO31JM.js +213 -0
  7. package/dist/chip-strip-Cw3gyz0q.js +213 -0
  8. package/dist/color-DHYrfXsX.js +253 -0
  9. package/dist/css-class-BRKRzHx-.js +60 -0
  10. package/dist/css-size-DhHSVZJK.js +37 -0
  11. package/dist/data/theme/presets.json.d.ts +140 -0
  12. package/dist/data-search-Bwo5bg8K.js +573 -0
  13. package/dist/data-source-controller-C50Qyfzh.js +178 -0
  14. package/dist/data-source-options-BTpfrOZ_.js +535 -0
  15. package/dist/data-source-options-CQSTZHPE.js +537 -0
  16. package/dist/data-source-read-CUX-lgrQ.js +216 -0
  17. package/dist/data-source-read-DL88aH8t.js +217 -0
  18. package/dist/decorate-DEXtNagw.js +141 -0
  19. package/dist/element-props-CLB6yvbm.js +114 -0
  20. package/dist/esm-Ptok4SQZ.js +2026 -0
  21. package/dist/excel-CY6zGkcx.js +608 -0
  22. package/dist/excel-DopRbEMK.js +608 -0
  23. package/dist/export-BvlBx_GZ.js +2302 -0
  24. package/dist/export.d.ts +1 -0
  25. package/dist/export.js +2302 -0
  26. package/dist/field-icons-BoOG6KrL.js +51 -0
  27. package/dist/field-path-C92eGLg3.js +251 -0
  28. package/dist/filter-builder-Bke3qOgJ.js +205 -0
  29. package/dist/filter-builder-CE4zE0V5.js +205 -0
  30. package/dist/filter-eval-DIfU2EAn.js +173 -0
  31. package/dist/filter-odata-C1vSGZaY.js +591 -0
  32. package/dist/form-control-core-B8d7k6vk.js +223 -0
  33. package/dist/form-control-core-eeRr0zLU.js +223 -0
  34. package/dist/hydration-flush-RB5Tz5nl.js +1001 -0
  35. package/dist/icon-CJkTlmTb.js +55 -0
  36. package/dist/icon-dVhYJUIH.js +17 -0
  37. package/dist/import-BgJdkwBI.js +606 -0
  38. package/dist/import.d.ts +1 -0
  39. package/dist/import.js +606 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +16 -0
  42. package/dist/index.node-DjvYOL-J.js +395 -0
  43. package/dist/index.node.d.ts +1 -0
  44. package/dist/index.node.js +16 -0
  45. package/dist/input-zGOULADt.js +4 -0
  46. package/dist/layout-var-CZnzMC0s.js +73 -0
  47. package/dist/light-slots-BVJwyg_2.js +244 -0
  48. package/dist/light-slots-DW1WgfgT.js +254 -0
  49. package/dist/markdown-DfqrfOJN.js +20146 -0
  50. package/dist/mono-button-CoVnBLav.js +873 -0
  51. package/dist/mono-button.shadow-FfP_hMH4.js +784 -0
  52. package/dist/mono-data-chart-ChU4Ii3p.js +738 -0
  53. package/dist/mono-data-dropdown-BAUl58kW.js +357 -0
  54. package/dist/mono-data-grid-CLBK8clE.js +4140 -0
  55. package/dist/mono-data-grid-Db80FzdZ.js +4142 -0
  56. package/dist/mono-element-B0kP_96P.js +232 -0
  57. package/dist/mono-event-Bi1qP9uN.js +129 -0
  58. package/dist/mono-form-controller-5PfsU4qa.js +409 -0
  59. package/dist/mono-modal-controller-BMO3n3rP.js +223 -0
  60. package/dist/mono-ui-CPV7rrdo.js +358 -0
  61. package/dist/notifier-CE4yxMUQ.js +88 -0
  62. package/dist/nuxt.d.ts +1 -0
  63. package/dist/nuxt.js +130 -0
  64. package/dist/popup-portal-BziRX1yG.js +465 -0
  65. package/dist/popup-stack-CEEMib__.js +189 -0
  66. package/dist/rate-limit-BBa2PO79.js +521 -0
  67. package/dist/reactive-BHsqVjRh.js +789 -0
  68. package/dist/reactive-D3EERqgO.js +47 -0
  69. package/dist/search.d.ts +1 -0
  70. package/dist/search.js +97 -0
  71. package/dist/src/components/accordion/accordion-core.d.ts +62 -0
  72. package/dist/src/components/accordion/accordion-types.d.ts +62 -0
  73. package/dist/src/components/accordion/index.d.ts +3 -0
  74. package/dist/src/components/accordion/index.shadow.d.ts +5 -0
  75. package/dist/src/components/accordion/mono-accordion.d.ts +55 -0
  76. package/dist/src/components/accordion/mono-accordion.shadow.d.ts +56 -0
  77. package/dist/src/components/alert/alert-core.d.ts +46 -0
  78. package/dist/src/components/alert/alert-types.d.ts +44 -0
  79. package/dist/src/components/alert/index.d.ts +3 -0
  80. package/dist/src/components/alert/index.shadow.d.ts +5 -0
  81. package/dist/src/components/alert/mono-alert.d.ts +44 -0
  82. package/dist/src/components/alert/mono-alert.shadow.d.ts +34 -0
  83. package/dist/src/components/breadcrumb/breadcrumb-core.d.ts +61 -0
  84. package/dist/src/components/breadcrumb/breadcrumb-list-core.d.ts +49 -0
  85. package/dist/src/components/breadcrumb/breadcrumb-render.d.ts +31 -0
  86. package/dist/src/components/breadcrumb/breadcrumb-types.d.ts +117 -0
  87. package/dist/src/components/breadcrumb/breadcrumb-utils.d.ts +43 -0
  88. package/dist/src/components/breadcrumb/index.d.ts +6 -0
  89. package/dist/src/components/breadcrumb/index.shadow.d.ts +8 -0
  90. package/dist/src/components/breadcrumb/mono-breadcrumb-list.d.ts +29 -0
  91. package/dist/src/components/breadcrumb/mono-breadcrumb-list.shadow.d.ts +48 -0
  92. package/dist/src/components/breadcrumb/mono-breadcrumb.d.ts +38 -0
  93. package/dist/src/components/breadcrumb/mono-breadcrumb.shadow.d.ts +73 -0
  94. package/dist/src/components/button/button-core.d.ts +90 -0
  95. package/dist/src/components/button/button-dropdown-core.d.ts +57 -0
  96. package/dist/src/components/button/button-dropdown-types.d.ts +129 -0
  97. package/dist/src/components/button/button-types.d.ts +219 -0
  98. package/dist/src/components/button/button-utils.d.ts +18 -0
  99. package/dist/src/components/button/index.button-dropdown.d.ts +4 -0
  100. package/dist/src/components/button/index.button-dropdown.shadow.d.ts +4 -0
  101. package/dist/src/components/button/index.d.ts +8 -0
  102. package/dist/src/components/button/index.shadow.d.ts +5 -0
  103. package/dist/src/components/button/mono-button-dropdown.d.ts +35 -0
  104. package/dist/src/components/button/mono-button-dropdown.shadow.d.ts +45 -0
  105. package/dist/src/components/button/mono-button.d.ts +123 -0
  106. package/dist/src/components/button/mono-button.shadow.d.ts +56 -0
  107. package/dist/src/components/card/card-core.d.ts +74 -0
  108. package/dist/src/components/card/card-types.d.ts +137 -0
  109. package/dist/src/components/card/card-utils.d.ts +23 -0
  110. package/dist/src/components/card/index.d.ts +4 -0
  111. package/dist/src/components/card/index.shadow.d.ts +6 -0
  112. package/dist/src/components/card/mono-card.d.ts +56 -0
  113. package/dist/src/components/card/mono-card.shadow.d.ts +52 -0
  114. package/dist/src/components/chart/chart-core.d.ts +43 -0
  115. package/dist/src/components/chart/chart-odata.d.ts +52 -0
  116. package/dist/src/components/chart/chart-types.d.ts +337 -0
  117. package/dist/src/components/chart/index.d.ts +8 -0
  118. package/dist/src/components/chart/index.shadow.d.ts +7 -0
  119. package/dist/src/components/chart/mono-chart-presets.d.ts +43 -0
  120. package/dist/src/components/chart/mono-chart-presets.shadow.d.ts +43 -0
  121. package/dist/src/components/chart/mono-chart.d.ts +30 -0
  122. package/dist/src/components/chart/mono-chart.shadow.d.ts +22 -0
  123. package/dist/src/components/chart/mono-data-chart.d.ts +27 -0
  124. package/dist/src/components/checkbox/checkbox-core.d.ts +53 -0
  125. package/dist/src/components/checkbox/checkbox-types.d.ts +69 -0
  126. package/dist/src/components/checkbox/checkbox-utils.d.ts +35 -0
  127. package/dist/src/components/checkbox/index.d.ts +4 -0
  128. package/dist/src/components/checkbox/index.shadow.d.ts +5 -0
  129. package/dist/src/components/checkbox/mono-checkbox.d.ts +34 -0
  130. package/dist/src/components/checkbox/mono-checkbox.shadow.d.ts +45 -0
  131. package/dist/src/components/chip/chip-core.d.ts +58 -0
  132. package/dist/src/components/chip/chip-types.d.ts +142 -0
  133. package/dist/src/components/chip/chip-utils.d.ts +24 -0
  134. package/dist/src/components/chip/index.d.ts +8 -0
  135. package/dist/src/components/chip/index.shadow.d.ts +6 -0
  136. package/dist/src/components/chip/mono-chip.d.ts +48 -0
  137. package/dist/src/components/chip/mono-chip.shadow.d.ts +33 -0
  138. package/dist/src/components/chip/mono-status-dot.d.ts +34 -0
  139. package/dist/src/components/date/date-core.d.ts +80 -0
  140. package/dist/src/components/date/date-types.d.ts +163 -0
  141. package/dist/src/components/date/index.d.ts +3 -0
  142. package/dist/src/components/date/index.shadow.d.ts +4 -0
  143. package/dist/src/components/date/mono-date.d.ts +22 -0
  144. package/dist/src/components/date/mono-date.shadow.d.ts +31 -0
  145. package/dist/src/components/drawer/drawer-core.d.ts +99 -0
  146. package/dist/src/components/drawer/drawer-types.d.ts +153 -0
  147. package/dist/src/components/drawer/index.d.ts +3 -0
  148. package/dist/src/components/drawer/index.shadow.d.ts +4 -0
  149. package/dist/src/components/drawer/mono-drawer.d.ts +45 -0
  150. package/dist/src/components/drawer/mono-drawer.shadow.d.ts +46 -0
  151. package/dist/src/components/dropdown/dropdown-core.d.ts +33 -0
  152. package/dist/src/components/dropdown/dropdown-types.d.ts +88 -0
  153. package/dist/src/components/dropdown/index.d.ts +3 -0
  154. package/dist/src/components/dropdown/index.shadow.d.ts +4 -0
  155. package/dist/src/components/dropdown/mono-dropdown.d.ts +34 -0
  156. package/dist/src/components/dropdown/mono-dropdown.shadow.d.ts +28 -0
  157. package/dist/src/components/dropdown-table/dropdown-table-core.d.ts +65 -0
  158. package/dist/src/components/dropdown-table/dropdown-table-types.d.ts +278 -0
  159. package/dist/src/components/dropdown-table/index.d.ts +5 -0
  160. package/dist/src/components/dropdown-table/index.shadow.d.ts +6 -0
  161. package/dist/src/components/dropdown-table/mono-data-dropdown.d.ts +152 -0
  162. package/dist/src/components/dropdown-table/mono-dropdown-table.d.ts +46 -0
  163. package/dist/src/components/dropdown-table/mono-dropdown-table.shadow.d.ts +22 -0
  164. package/dist/src/components/file-upload/file-upload-core.d.ts +60 -0
  165. package/dist/src/components/file-upload/file-upload-types.d.ts +145 -0
  166. package/dist/src/components/file-upload/file-upload-utils.d.ts +16 -0
  167. package/dist/src/components/file-upload/index.d.ts +4 -0
  168. package/dist/src/components/file-upload/index.shadow.d.ts +5 -0
  169. package/dist/src/components/file-upload/mono-file-upload.d.ts +33 -0
  170. package/dist/src/components/file-upload/mono-file-upload.shadow.d.ts +50 -0
  171. package/dist/src/components/filter/filter-builder-core.d.ts +36 -0
  172. package/dist/src/components/filter/filter-builder.d.ts +23 -0
  173. package/dist/src/components/filter/filter-odata.d.ts +27 -0
  174. package/dist/src/components/filter/filter-operators.d.ts +13 -0
  175. package/dist/src/components/filter/filter-types.d.ts +253 -0
  176. package/dist/src/components/filter/index.d.ts +6 -0
  177. package/dist/src/components/filter/index.shadow.d.ts +7 -0
  178. package/dist/src/components/filter/mono-filter-builder.d.ts +21 -0
  179. package/dist/src/components/filter/mono-filter-builder.shadow.d.ts +17 -0
  180. package/dist/src/components/form/form-control-core.d.ts +37 -0
  181. package/dist/src/components/form/form-rules.d.ts +25 -0
  182. package/dist/src/components/form/form-types.d.ts +307 -0
  183. package/dist/src/components/form/index.d.ts +6 -0
  184. package/dist/src/components/form/mono-form-controller.d.ts +16 -0
  185. package/dist/src/components/input/index.d.ts +6 -0
  186. package/dist/src/components/input/index.shadow.d.ts +8 -0
  187. package/dist/src/components/input/input-core.d.ts +91 -0
  188. package/dist/src/components/input/input-format.d.ts +118 -0
  189. package/dist/src/components/input/input-types.d.ts +179 -0
  190. package/dist/src/components/input/input-utils.d.ts +10 -0
  191. package/dist/src/components/input/mono-input.d.ts +46 -0
  192. package/dist/src/components/input/mono-input.shadow.d.ts +34 -0
  193. package/dist/src/components/menu/index.d.ts +6 -0
  194. package/dist/src/components/menu/index.shadow.d.ts +7 -0
  195. package/dist/src/components/menu/menu-core.d.ts +65 -0
  196. package/dist/src/components/menu/menu-render.d.ts +55 -0
  197. package/dist/src/components/menu/menu-types.d.ts +195 -0
  198. package/dist/src/components/menu/menu-utils.d.ts +53 -0
  199. package/dist/src/components/menu/mono-menu-list.d.ts +118 -0
  200. package/dist/src/components/menu/mono-menu.d.ts +39 -0
  201. package/dist/src/components/menu/mono-menu.shadow.d.ts +40 -0
  202. package/dist/src/components/modal/index.d.ts +4 -0
  203. package/dist/src/components/modal/index.shadow.d.ts +5 -0
  204. package/dist/src/components/modal/modal-core.d.ts +110 -0
  205. package/dist/src/components/modal/modal-types.d.ts +304 -0
  206. package/dist/src/components/modal/mono-modal-controller.d.ts +4 -0
  207. package/dist/src/components/modal/mono-modal.d.ts +45 -0
  208. package/dist/src/components/modal/mono-modal.shadow.d.ts +50 -0
  209. package/dist/src/components/nav/index.d.ts +4 -0
  210. package/dist/src/components/nav/index.shadow.d.ts +6 -0
  211. package/dist/src/components/nav/mono-nav.d.ts +41 -0
  212. package/dist/src/components/nav/mono-nav.shadow.d.ts +21 -0
  213. package/dist/src/components/nav/nav-core.d.ts +34 -0
  214. package/dist/src/components/nav/nav-types.d.ts +48 -0
  215. package/dist/src/components/nav/nav-utils.d.ts +12 -0
  216. package/dist/src/components/radio/index.d.ts +4 -0
  217. package/dist/src/components/radio/index.shadow.d.ts +5 -0
  218. package/dist/src/components/radio/mono-radio.d.ts +31 -0
  219. package/dist/src/components/radio/mono-radio.shadow.d.ts +35 -0
  220. package/dist/src/components/radio/radio-core.d.ts +45 -0
  221. package/dist/src/components/radio/radio-types.d.ts +58 -0
  222. package/dist/src/components/radio/radio-utils.d.ts +12 -0
  223. package/dist/src/components/rich-text-editor/index.d.ts +5 -0
  224. package/dist/src/components/rich-text-editor/index.shadow.d.ts +6 -0
  225. package/dist/src/components/rich-text-editor/mono-rich-text-editor.d.ts +31 -0
  226. package/dist/src/components/rich-text-editor/mono-rich-text-editor.shadow.d.ts +34 -0
  227. package/dist/src/components/rich-text-editor/rich-text-editor-core.d.ts +100 -0
  228. package/dist/src/components/rich-text-editor/rich-text-editor-loader.d.ts +17 -0
  229. package/dist/src/components/rich-text-editor/rich-text-editor-toolbar.d.ts +65 -0
  230. package/dist/src/components/rich-text-editor/rich-text-editor-types.d.ts +231 -0
  231. package/dist/src/components/select/index.d.ts +4 -0
  232. package/dist/src/components/select/index.shadow.d.ts +5 -0
  233. package/dist/src/components/select/mono-select.d.ts +69 -0
  234. package/dist/src/components/select/mono-select.shadow.d.ts +48 -0
  235. package/dist/src/components/select/select-core.d.ts +98 -0
  236. package/dist/src/components/select/select-types.d.ts +258 -0
  237. package/dist/src/components/select/select-utils.d.ts +7 -0
  238. package/dist/src/components/sidebar/index.d.ts +4 -0
  239. package/dist/src/components/sidebar/index.shadow.d.ts +6 -0
  240. package/dist/src/components/sidebar/mono-sidebar.d.ts +34 -0
  241. package/dist/src/components/sidebar/mono-sidebar.shadow.d.ts +27 -0
  242. package/dist/src/components/sidebar/sidebar-core.d.ts +51 -0
  243. package/dist/src/components/sidebar/sidebar-types.d.ts +119 -0
  244. package/dist/src/components/sidebar/sidebar-utils.d.ts +55 -0
  245. package/dist/src/components/switch/index.d.ts +4 -0
  246. package/dist/src/components/switch/index.shadow.d.ts +5 -0
  247. package/dist/src/components/switch/mono-switch.d.ts +31 -0
  248. package/dist/src/components/switch/mono-switch.shadow.d.ts +36 -0
  249. package/dist/src/components/switch/switch-core.d.ts +49 -0
  250. package/dist/src/components/switch/switch-types.d.ts +64 -0
  251. package/dist/src/components/switch/switch-utils.d.ts +12 -0
  252. package/dist/src/components/table/array-source.d.ts +44 -0
  253. package/dist/src/components/table/date-filter-tree.d.ts +93 -0
  254. package/dist/src/components/table/grouping.d.ts +55 -0
  255. package/dist/src/components/table/index.d.ts +33 -0
  256. package/dist/src/components/table/index.shadow.d.ts +47 -0
  257. package/dist/src/components/table/mono-data-grid.d.ts +1756 -0
  258. package/dist/src/components/table/mono-table-checkbox-core.d.ts +76 -0
  259. package/dist/src/components/table/mono-table-checkbox.d.ts +34 -0
  260. package/dist/src/components/table/mono-table-checkbox.shadow.d.ts +26 -0
  261. package/dist/src/components/table/mono-table-detail-core.d.ts +87 -0
  262. package/dist/src/components/table/mono-table-detail.d.ts +32 -0
  263. package/dist/src/components/table/mono-table-detail.shadow.d.ts +31 -0
  264. package/dist/src/components/table/mono-table-empty-core.d.ts +60 -0
  265. package/dist/src/components/table/mono-table-empty.d.ts +35 -0
  266. package/dist/src/components/table/mono-table-empty.shadow.d.ts +40 -0
  267. package/dist/src/components/table/mono-table-error-core.d.ts +84 -0
  268. package/dist/src/components/table/mono-table-error.d.ts +28 -0
  269. package/dist/src/components/table/mono-table-error.shadow.d.ts +21 -0
  270. package/dist/src/components/table/mono-table-info-core.d.ts +13 -0
  271. package/dist/src/components/table/mono-table-info.d.ts +19 -0
  272. package/dist/src/components/table/mono-table-info.shadow.d.ts +14 -0
  273. package/dist/src/components/table/mono-table-loading-core.d.ts +41 -0
  274. package/dist/src/components/table/mono-table-loading.d.ts +50 -0
  275. package/dist/src/components/table/mono-table-loading.shadow.d.ts +14 -0
  276. package/dist/src/components/table/mono-table-page-size-core.d.ts +14 -0
  277. package/dist/src/components/table/mono-table-page-size.d.ts +16 -0
  278. package/dist/src/components/table/mono-table-page-size.shadow.d.ts +11 -0
  279. package/dist/src/components/table/mono-table-paging-core.d.ts +22 -0
  280. package/dist/src/components/table/mono-table-paging-group-core.d.ts +18 -0
  281. package/dist/src/components/table/mono-table-paging-group.d.ts +20 -0
  282. package/dist/src/components/table/mono-table-paging-group.shadow.d.ts +13 -0
  283. package/dist/src/components/table/mono-table-paging.d.ts +16 -0
  284. package/dist/src/components/table/mono-table-paging.shadow.d.ts +11 -0
  285. package/dist/src/components/table/mono-table-search-core.d.ts +74 -0
  286. package/dist/src/components/table/mono-table-search.d.ts +34 -0
  287. package/dist/src/components/table/mono-table-search.shadow.d.ts +21 -0
  288. package/dist/src/components/table/mono-table-sort-core.d.ts +35 -0
  289. package/dist/src/components/table/mono-table-sort.d.ts +38 -0
  290. package/dist/src/components/table/mono-table-sort.shadow.d.ts +20 -0
  291. package/dist/src/components/table/mono-table-summary-core.d.ts +26 -0
  292. package/dist/src/components/table/mono-table-summary.d.ts +24 -0
  293. package/dist/src/components/table/mono-table-summary.shadow.d.ts +14 -0
  294. package/dist/src/components/table/mono-table-th-core.d.ts +56 -0
  295. package/dist/src/components/table/mono-table-th.d.ts +41 -0
  296. package/dist/src/components/table/mono-table-th.shadow.d.ts +19 -0
  297. package/dist/src/components/table/store-group-source.d.ts +24 -0
  298. package/dist/src/components/table/table-controller-core.d.ts +40 -0
  299. package/dist/src/components/table/table-filter-icons.d.ts +3 -0
  300. package/dist/src/components/table/table-menu-core.d.ts +65 -0
  301. package/dist/src/components/table/table-overlay.d.ts +165 -0
  302. package/dist/src/components/table/table-sort-icons.d.ts +4 -0
  303. package/dist/src/components/table/table-sort-utils.d.ts +20 -0
  304. package/dist/src/components/table/table-types.d.ts +475 -0
  305. package/dist/src/components/tabs/index.d.ts +3 -0
  306. package/dist/src/components/tabs/index.shadow.d.ts +4 -0
  307. package/dist/src/components/tabs/mono-tabs.d.ts +33 -0
  308. package/dist/src/components/tabs/mono-tabs.shadow.d.ts +37 -0
  309. package/dist/src/components/tabs/tabs-core.d.ts +57 -0
  310. package/dist/src/components/tabs/tabs-types.d.ts +65 -0
  311. package/dist/src/components/tag-input/index.d.ts +4 -0
  312. package/dist/src/components/tag-input/index.shadow.d.ts +5 -0
  313. package/dist/src/components/tag-input/mono-tag-input.d.ts +66 -0
  314. package/dist/src/components/tag-input/mono-tag-input.shadow.d.ts +40 -0
  315. package/dist/src/components/tag-input/tag-input-core.d.ts +108 -0
  316. package/dist/src/components/tag-input/tag-input-types.d.ts +394 -0
  317. package/dist/src/components/tag-input/tag-input-utils.d.ts +8 -0
  318. package/dist/src/components/textarea/index.d.ts +4 -0
  319. package/dist/src/components/textarea/index.shadow.d.ts +5 -0
  320. package/dist/src/components/textarea/mono-textarea.d.ts +29 -0
  321. package/dist/src/components/textarea/mono-textarea.shadow.d.ts +31 -0
  322. package/dist/src/components/textarea/textarea-core.d.ts +60 -0
  323. package/dist/src/components/textarea/textarea-types.d.ts +131 -0
  324. package/dist/src/components/textarea/textarea-utils.d.ts +7 -0
  325. package/dist/src/components/tooltip/control-tooltip.d.ts +36 -0
  326. package/dist/src/components/tooltip/index.d.ts +6 -0
  327. package/dist/src/components/tooltip/tooltip-config.d.ts +27 -0
  328. package/dist/src/components/tooltip/tooltip-declarative.d.ts +41 -0
  329. package/dist/src/components/tooltip/tooltip-loader.d.ts +1 -0
  330. package/dist/src/components/tooltip/tooltip-types.d.ts +110 -0
  331. package/dist/src/composables/breakpoints.d.ts +59 -0
  332. package/dist/src/composables/chip-limits.d.ts +48 -0
  333. package/dist/src/composables/chip-strip.d.ts +93 -0
  334. package/dist/src/composables/color.d.ts +103 -0
  335. package/dist/src/composables/css-class.d.ts +27 -0
  336. package/dist/src/composables/css-size.d.ts +40 -0
  337. package/dist/src/composables/data-source-controller.d.ts +84 -0
  338. package/dist/src/composables/element-props.d.ts +46 -0
  339. package/dist/src/composables/field-icons.d.ts +7 -0
  340. package/dist/src/composables/hybird-prop.d.ts +79 -0
  341. package/dist/src/composables/hydration-flush.d.ts +34 -0
  342. package/dist/src/composables/icon.d.ts +17 -0
  343. package/dist/src/composables/layout-var.d.ts +34 -0
  344. package/dist/src/composables/light-slots.d.ts +133 -0
  345. package/dist/src/composables/mdi-glyphs.d.ts +4 -0
  346. package/dist/src/composables/mono-element.d.ts +9 -0
  347. package/dist/src/composables/mono-event.d.ts +55 -0
  348. package/dist/src/composables/mono-pending.d.ts +8 -0
  349. package/dist/src/composables/mono-skeleton.d.ts +193 -0
  350. package/dist/src/composables/mono-ui.d.ts +58 -0
  351. package/dist/src/composables/notifier.d.ts +46 -0
  352. package/dist/src/composables/popup-portal.d.ts +226 -0
  353. package/dist/src/composables/popup-stack.d.ts +70 -0
  354. package/dist/src/composables/rate-limit.d.ts +108 -0
  355. package/dist/src/composables/reactive.d.ts +53 -0
  356. package/dist/src/composables/shadow-css.d.ts +42 -0
  357. package/dist/src/composables/visibility.d.ts +36 -0
  358. package/dist/src/data/theme/index.d.ts +30 -0
  359. package/dist/src/data/theme/presets.d.ts +94 -0
  360. package/dist/src/entries/index.d.ts +2 -0
  361. package/dist/src/entries/index.node.d.ts +42 -0
  362. package/dist/src/entries/search.d.ts +3 -0
  363. package/dist/src/export/detail.d.ts +29 -0
  364. package/dist/src/export/download.d.ts +9 -0
  365. package/dist/src/export/excel/index.d.ts +27 -0
  366. package/dist/src/export/excel/nodes.d.ts +123 -0
  367. package/dist/src/export/expression.d.ts +36 -0
  368. package/dist/src/export/helpers.d.ts +6 -0
  369. package/dist/src/export/index.d.ts +13 -0
  370. package/dist/src/export/markdown.d.ts +52 -0
  371. package/dist/src/export/resolve-data.d.ts +31 -0
  372. package/dist/src/export/sentinel.d.ts +97 -0
  373. package/dist/src/export/sheet-name.d.ts +45 -0
  374. package/dist/src/export/styles.d.ts +33 -0
  375. package/dist/src/export/template.d.ts +10 -0
  376. package/dist/src/export/types.d.ts +259 -0
  377. package/dist/src/import/coerce.d.ts +38 -0
  378. package/dist/src/import/index.d.ts +16 -0
  379. package/dist/src/import/match.d.ts +54 -0
  380. package/dist/src/import/parse.d.ts +15 -0
  381. package/dist/src/import/types.d.ts +153 -0
  382. package/dist/src/nuxt/index.d.ts +94 -0
  383. package/dist/src/search/data-search.d.ts +207 -0
  384. package/dist/src/search/field-path.d.ts +107 -0
  385. package/dist/src/search/filter-eval.d.ts +30 -0
  386. package/dist/src/search/index.d.ts +22 -0
  387. package/dist/src/search/odata-search.d.ts +18 -0
  388. package/dist/src/search/search-expr.d.ts +160 -0
  389. package/dist/src/utils/data-source-apply.d.ts +97 -0
  390. package/dist/src/utils/data-source-options.d.ts +116 -0
  391. package/dist/src/utils/data-source-read.d.ts +85 -0
  392. package/dist/src/utils/data-source-summary.d.ts +55 -0
  393. package/dist/src/utils/normalize-error.d.ts +60 -0
  394. package/dist/src/vite/index.d.ts +48 -0
  395. package/dist/src/vite/mono-client-only.d.ts +35 -0
  396. package/dist/src/vite/mono-ssr-stub.d.ts +20 -0
  397. package/dist/src/vite/shadow-manifest.d.ts +8 -0
  398. package/dist/styles-BIJ31TM4.js +20146 -0
  399. package/dist/tooltip-CysgRgBi.js +760 -0
  400. package/dist/tooltip.d.ts +1 -0
  401. package/dist/tooltip.js +2 -0
  402. package/dist/ui/accordion.d.ts +1 -0
  403. package/dist/ui/accordion.js +466 -0
  404. package/dist/ui/alert.d.ts +1 -0
  405. package/dist/ui/alert.js +221 -0
  406. package/dist/ui/breadcrumb.d.ts +1 -0
  407. package/dist/ui/breadcrumb.js +902 -0
  408. package/dist/ui/button-dropdown.d.ts +1 -0
  409. package/dist/ui/button-dropdown.js +679 -0
  410. package/dist/ui/button.d.ts +1 -0
  411. package/dist/ui/button.js +63 -0
  412. package/dist/ui/card.d.ts +1 -0
  413. package/dist/ui/card.js +511 -0
  414. package/dist/ui/chart.d.ts +1 -0
  415. package/dist/ui/chart.js +808 -0
  416. package/dist/ui/checkbox.d.ts +1 -0
  417. package/dist/ui/checkbox.js +413 -0
  418. package/dist/ui/chip.d.ts +1 -0
  419. package/dist/ui/chip.js +558 -0
  420. package/dist/ui/date.d.ts +1 -0
  421. package/dist/ui/date.js +686 -0
  422. package/dist/ui/drawer.d.ts +1 -0
  423. package/dist/ui/drawer.js +901 -0
  424. package/dist/ui/dropdown-table.d.ts +1 -0
  425. package/dist/ui/dropdown-table.js +1291 -0
  426. package/dist/ui/dropdown.d.ts +1 -0
  427. package/dist/ui/dropdown.js +586 -0
  428. package/dist/ui/file-upload.d.ts +1 -0
  429. package/dist/ui/file-upload.js +688 -0
  430. package/dist/ui/filter.d.ts +1 -0
  431. package/dist/ui/filter.js +400 -0
  432. package/dist/ui/font/files/geist-47c091c9.woff2 +0 -0
  433. package/dist/ui/font/files/geist-8dd77544.woff2 +0 -0
  434. package/dist/ui/font/files/geist-b9248b1e.woff2 +0 -0
  435. package/dist/ui/font/files/geist-d40d74b4.woff2 +0 -0
  436. package/dist/ui/font/files/geist-f493429a.woff2 +0 -0
  437. package/dist/ui/font/files/geistmono-03737868.woff2 +0 -0
  438. package/dist/ui/font/files/geistmono-421a7e38.woff2 +0 -0
  439. package/dist/ui/font/files/geistmono-48ef518d.woff2 +0 -0
  440. package/dist/ui/font/files/geistmono-5df35d39.woff2 +0 -0
  441. package/dist/ui/font/files/geistmono-7de289a4.woff2 +0 -0
  442. package/dist/ui/font/files/geistmono-e976128f.woff2 +0 -0
  443. package/dist/ui/font/files/inter-05cf802c.woff2 +0 -0
  444. package/dist/ui/font/files/inter-2b2f25a4.woff2 +0 -0
  445. package/dist/ui/font/files/inter-467acc7a.woff2 +0 -0
  446. package/dist/ui/font/files/inter-6e85163c.woff2 +0 -0
  447. package/dist/ui/font/files/inter-7048add3.woff2 +0 -0
  448. package/dist/ui/font/files/inter-9be0371e.woff2 +0 -0
  449. package/dist/ui/font/files/inter-a28b7e31.woff2 +0 -0
  450. package/dist/ui/font/files/poppins-054df55a.woff2 +0 -0
  451. package/dist/ui/font/files/poppins-0ee5dc9a.woff2 +0 -0
  452. package/dist/ui/font/files/poppins-0f44cb18.woff2 +0 -0
  453. package/dist/ui/font/files/poppins-0ff0d30c.woff2 +0 -0
  454. package/dist/ui/font/files/poppins-13045147.woff2 +0 -0
  455. package/dist/ui/font/files/poppins-1db57cd9.woff2 +0 -0
  456. package/dist/ui/font/files/poppins-2cf2a902.woff2 +0 -0
  457. package/dist/ui/font/files/poppins-39e7f079.woff2 +0 -0
  458. package/dist/ui/font/files/poppins-9607042d.woff2 +0 -0
  459. package/dist/ui/font/files/poppins-9a88fc1f.woff2 +0 -0
  460. package/dist/ui/font/files/poppins-b8f4f752.woff2 +0 -0
  461. package/dist/ui/font/files/poppins-f5e57db4.woff2 +0 -0
  462. package/dist/ui/font/geist-mono.css +104 -0
  463. package/dist/ui/font/geist.css +168 -0
  464. package/dist/ui/font/inter.css +232 -0
  465. package/dist/ui/font/poppins.css +104 -0
  466. package/dist/ui/form.d.ts +1 -0
  467. package/dist/ui/form.js +3 -0
  468. package/dist/ui/index.css +21826 -0
  469. package/dist/ui/input.d.ts +1 -0
  470. package/dist/ui/input.js +1176 -0
  471. package/dist/ui/menu.d.ts +1 -0
  472. package/dist/ui/menu.js +1289 -0
  473. package/dist/ui/modal.d.ts +1 -0
  474. package/dist/ui/modal.js +995 -0
  475. package/dist/ui/nav.d.ts +1 -0
  476. package/dist/ui/nav.js +295 -0
  477. package/dist/ui/radio.d.ts +1 -0
  478. package/dist/ui/radio.js +379 -0
  479. package/dist/ui/rich-text-editor.d.ts +1 -0
  480. package/dist/ui/rich-text-editor.js +1338 -0
  481. package/dist/ui/select.d.ts +1 -0
  482. package/dist/ui/select.js +2066 -0
  483. package/dist/ui/shadow/accordion.js +442 -0
  484. package/dist/ui/shadow/alert.js +218 -0
  485. package/dist/ui/shadow/breadcrumb.js +919 -0
  486. package/dist/ui/shadow/button-dropdown.js +696 -0
  487. package/dist/ui/shadow/button.js +63 -0
  488. package/dist/ui/shadow/card.js +524 -0
  489. package/dist/ui/shadow/chart.js +1569 -0
  490. package/dist/ui/shadow/checkbox.js +457 -0
  491. package/dist/ui/shadow/chip.js +559 -0
  492. package/dist/ui/shadow/date.js +712 -0
  493. package/dist/ui/shadow/drawer.js +869 -0
  494. package/dist/ui/shadow/dropdown-table.js +1620 -0
  495. package/dist/ui/shadow/dropdown.js +547 -0
  496. package/dist/ui/shadow/file-upload.js +731 -0
  497. package/dist/ui/shadow/filter.js +402 -0
  498. package/dist/ui/shadow/input.js +1150 -0
  499. package/dist/ui/shadow/menu.js +899 -0
  500. package/dist/ui/shadow/modal.js +1193 -0
  501. package/dist/ui/shadow/nav.js +240 -0
  502. package/dist/ui/shadow/radio.js +408 -0
  503. package/dist/ui/shadow/rich-text-editor.js +1344 -0
  504. package/dist/ui/shadow/select.js +2033 -0
  505. package/dist/ui/shadow/sidebar.js +606 -0
  506. package/dist/ui/shadow/switch.js +428 -0
  507. package/dist/ui/shadow/table.js +4755 -0
  508. package/dist/ui/shadow/tabs.js +372 -0
  509. package/dist/ui/shadow/tag-input.js +2846 -0
  510. package/dist/ui/shadow/textarea.js +816 -0
  511. package/dist/ui/sidebar.d.ts +1 -0
  512. package/dist/ui/sidebar.js +659 -0
  513. package/dist/ui/switch.d.ts +1 -0
  514. package/dist/ui/switch.js +398 -0
  515. package/dist/ui/table.d.ts +1 -0
  516. package/dist/ui/table.js +4654 -0
  517. package/dist/ui/tabs.d.ts +1 -0
  518. package/dist/ui/tabs.js +379 -0
  519. package/dist/ui/tag-input.d.ts +1 -0
  520. package/dist/ui/tag-input.js +2819 -0
  521. package/dist/ui/textarea.d.ts +1 -0
  522. package/dist/ui/textarea.js +819 -0
  523. package/dist/ui/theme/legacy.css +293 -0
  524. package/dist/ui/theme/luma.css +743 -0
  525. package/dist/ui/theme/lyra.css +754 -0
  526. package/dist/ui/theme/maia.css +673 -0
  527. package/dist/ui/theme/mira.css +802 -0
  528. package/dist/ui/theme/nova.css +662 -0
  529. package/dist/ui/theme/one.css +699 -0
  530. package/dist/ui/theme/rhea.css +742 -0
  531. package/dist/ui/theme/sera.css +845 -0
  532. package/dist/ui/theme/tokens.css +261 -0
  533. package/dist/ui/theme/vega.css +467 -0
  534. package/dist/vite-C5iUK7so.js +329 -0
  535. package/dist/vite.d.ts +1 -0
  536. package/dist/vite.js +2 -0
  537. package/dist/vue.d.ts +282 -0
  538. package/package.json +411 -3
@@ -0,0 +1,55 @@
1
+ import { html } from "lit";
2
+ import { unsafeSVG } from "lit/directives/unsafe-svg.js";
3
+ //#region src/composables/mdi-glyphs.ts
4
+ /** `i-mdi-<name>` → the inner SVG markup of that glyph, on a 24x24 viewBox. */
5
+ var MDI_GLYPHS = {
6
+ "i-mdi-cloud-upload-outline": "<path fill=\"currentColor\" d=\"M6.5 20q-2.28 0-3.89-1.57Q1 16.85 1 14.58q0-1.95 1.17-3.48q1.18-1.53 3.08-1.95q.63-2.3 2.5-3.72Q9.63 4 12 4q2.93 0 4.96 2.04Q19 8.07 19 11q1.73.2 2.86 1.5q1.14 1.28 1.14 3q0 1.88-1.31 3.19T18.5 20H13q-.82 0-1.41-.59Q11 18.83 11 18v-5.15L9.4 14.4L8 13l4-4l4 4l-1.4 1.4l-1.6-1.55V18h5.5q1.05 0 1.77-.73q.73-.72.73-1.77t-.73-1.77Q19.55 13 18.5 13H17v-2q0-2.07-1.46-3.54Q14.08 6 12 6Q9.93 6 8.46 7.46Q7 8.93 7 11h-.5q-1.45 0-2.47 1.03Q3 13.05 3 14.5T4.03 17q1.02 1 2.47 1H9v2m3-7\"/>",
7
+ "i-mdi-cloud-upload": "<path fill=\"currentColor\" d=\"M11 20H6.5q-2.28 0-3.89-1.57Q1 16.85 1 14.58q0-1.95 1.17-3.48q1.18-1.53 3.08-1.95q.63-2.3 2.5-3.72Q9.63 4 12 4q2.93 0 4.96 2.04Q19 8.07 19 11q1.73.2 2.86 1.5q1.14 1.28 1.14 3q0 1.88-1.31 3.19T18.5 20H13v-7.15l1.6 1.55L16 13l-4-4l-4 4l1.4 1.4l1.6-1.55Z\"/>",
8
+ "i-mdi-folder-upload": "<path fill=\"currentColor\" d=\"M20 6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6l2 2zm-9.25 7H14v4h2v-4h3.25L15 8.75\"/>",
9
+ "i-mdi-file-image": "<path fill=\"currentColor\" d=\"M13 9h5.5L13 3.5zM6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m0 18h12v-8l-4 4l-2-2zM8 9a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2\"/>",
10
+ "i-mdi-file-pdf-box": "<path fill=\"currentColor\" d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-9.5 8.5c0 .8-.7 1.5-1.5 1.5H7v2H5.5V9H8c.8 0 1.5.7 1.5 1.5zm5 2c0 .8-.7 1.5-1.5 1.5h-2.5V9H13c.8 0 1.5.7 1.5 1.5zm4-3H17v1h1.5V13H17v2h-1.5V9h3zm-6.5 0h1v3h-1zm-5 0h1v1H7z\"/>",
11
+ "i-mdi-file-excel": "<path fill=\"currentColor\" d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm1.8 18H14l-2-3.4l-2 3.4H8.2l2.9-4.5L8.2 11H10l2 3.4l2-3.4h1.8l-2.9 4.5zM13 9V3.5L18.5 9z\"/>",
12
+ "i-mdi-file-word": "<path fill=\"currentColor\" d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm1.2 18h-1.4L12 13.2L10.2 20H8.8l-2.2-9h1.5l1.4 6.8l1.8-6.8h1.3l1.8 6.8l1.4-6.8h1.5zM13 9V3.5L18.5 9z\"/>",
13
+ "i-mdi-zip-box": "<path fill=\"currentColor\" d=\"M14 17h-2v-2h-2v-2h2v2h2m0-6h-2v2h2v2h-2v-2h-2V9h2V7h-2V5h2v2h2m5-4H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2\"/>",
14
+ "i-mdi-file-video": "<path fill=\"currentColor\" d=\"M13 9h5.5L13 3.5zM6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m11 17v-6l-3 2.2V13H7v6h7v-2.2z\"/>",
15
+ "i-mdi-file-music": "<path fill=\"currentColor\" d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zm-1 11h-2v5a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2c.4 0 .7.1 1 .3V11h3zm0-4V3.5L18.5 9z\"/>",
16
+ "i-mdi-file": "<path fill=\"currentColor\" d=\"M13 9V3.5L18.5 9M6 2c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z\"/>",
17
+ "i-mdi-close": "<path fill=\"currentColor\" d=\"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z\"/>",
18
+ "i-mdi-information-outline": "<path fill=\"currentColor\" d=\"M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z\"/>",
19
+ "i-mdi-check-circle-outline": "<path fill=\"currentColor\" d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10s10-4.5 10-10S17.5 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4l8-8z\"/>",
20
+ "i-mdi-alert-outline": "<path fill=\"currentColor\" d=\"M12 2L1 21h22M12 6l7.53 13H4.47M11 10v4h2v-4m-2 6v2h2v-2\"/>",
21
+ "i-mdi-alert-circle-outline": "<path fill=\"currentColor\" d=\"M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8\"/>",
22
+ "i-mdi-bell-outline": "<path fill=\"currentColor\" d=\"M10 21h4c0 1.1-.9 2-2 2s-2-.9-2-2m11-2v1H3v-1l2-2v-6c0-3.1 2-5.8 5-6.7V4c0-1.1.9-2 2-2s2 .9 2 2v.3c3 .9 5 3.6 5 6.7v6zm-4-8c0-2.8-2.2-5-5-5s-5 2.2-5 5v7h10z\"/>"
23
+ };
24
+ /** The artwork for an `i-mdi-*` class, or `undefined` when it is not bundled. */
25
+ function mdiGlyphBody(icon) {
26
+ if (!icon) return void 0;
27
+ return MDI_GLYPHS[icon.trim()];
28
+ }
29
+ //#endregion
30
+ //#region src/composables/icon.ts
31
+ /**
32
+ * Detect whether an icon string is an iconify utility class — e.g.
33
+ * `i-mdi-close`, `i-tabler-upload`. UnoCSS's preset-icons resolves these to a
34
+ * background/mask, so components render them as an empty `<span class="i-...">`.
35
+ *
36
+ * Single source of truth — components re-export this from their own
37
+ * `*-utils.ts` so their public API stays stable.
38
+ */
39
+ function isIconifyClass(icon) {
40
+ if (!icon || typeof icon !== "string") return false;
41
+ return /^i-[a-z0-9]+(?:-[a-z0-9]+)+$/i.test(icon.trim());
42
+ }
43
+ /**
44
+ * Draw an `i-mdi-*` glyph as inline SVG — the SHADOW builds' counterpart to the
45
+ * light builds' UnoCSS mask. Both come from `@iconify-json/mdi`, so one `icon`
46
+ * value paints the same artwork in either build. Returns `undefined` when the
47
+ * glyph is not bundled (see `scripts/mdi-glyphs.mjs`), so a caller can fall back.
48
+ */
49
+ function mdiGlyph(icon) {
50
+ const body = mdiGlyphBody(icon);
51
+ if (!body) return void 0;
52
+ return html`<svg viewBox="0 0 24 24" aria-hidden="true">${unsafeSVG(body)}</svg>`;
53
+ }
54
+ //#endregion
55
+ export { mdiGlyph as n, isIconifyClass as t };
@@ -0,0 +1,17 @@
1
+ import "lit";
2
+ import "lit/directives/unsafe-svg.js";
3
+ //#region src/composables/icon.ts
4
+ /**
5
+ * Detect whether an icon string is an iconify utility class — e.g.
6
+ * `i-mdi-close`, `i-tabler-upload`. UnoCSS's preset-icons resolves these to a
7
+ * background/mask, so components render them as an empty `<span class="i-...">`.
8
+ *
9
+ * Single source of truth — components re-export this from their own
10
+ * `*-utils.ts` so their public API stays stable.
11
+ */
12
+ function isIconifyClass(icon) {
13
+ if (!icon || typeof icon !== "string") return false;
14
+ return /^i-[a-z0-9]+(?:-[a-z0-9]+)+$/i.test(icon.trim());
15
+ }
16
+ //#endregion
17
+ export { isIconifyClass as t };
@@ -0,0 +1,606 @@
1
+ //#region src/import/coerce.ts
2
+ /**
3
+ * Normalise a header for lookup: NBSP → space, drop dots/underscores (`No. Dok`
4
+ * and `No_Dok` should both find `No Dok`), collapse whitespace, lowercase.
5
+ */
6
+ function normalizeHeader(value) {
7
+ return String(value ?? "").replace(/\u00A0/g, " ").replace(/[._]/g, "").replace(/\s+/g, " ").trim().toLowerCase();
8
+ }
9
+ /** Default normalisation for key comparison — forgiving about spacing and case. */
10
+ function normalizeKeyValue(value) {
11
+ return String(value ?? "").replace(/\u00A0/g, " ").replace(/\s+/g, " ").trim().toLowerCase();
12
+ }
13
+ /** Read a display string out of whatever ExcelJS put in a cell. */
14
+ function cellText(value) {
15
+ if (value == null) return "";
16
+ if (typeof value === "string") return value;
17
+ if (typeof value === "number" || typeof value === "boolean") return String(value);
18
+ if (value instanceof Date) return value.toISOString();
19
+ const v = value;
20
+ if (Array.isArray(v.richText)) return v.richText.map((r) => r.text).join("");
21
+ if (v.text != null) return String(v.text);
22
+ if (v.result != null) return String(v.result);
23
+ if (v.hyperlink != null && v.text == null) return String(v.hyperlink);
24
+ return String(value);
25
+ }
26
+ /**
27
+ * Parse a number written in an unknown locale.
28
+ *
29
+ * `'auto'` infers the separators: with both `.` and `,` present the **rightmost**
30
+ * is the decimal point; with only one, its position decides — exactly three
31
+ * trailing digits (or several occurrences) means thousands grouping, otherwise
32
+ * it's a decimal point. So `1.234` is one thousand two hundred, while `1.23` is
33
+ * one and a bit. Returns `null` when the text isn't a number at all.
34
+ */
35
+ function parseNumber(raw, mode = "auto", allowNegative = true) {
36
+ if (raw == null) return null;
37
+ if (typeof raw === "number") return Number.isFinite(raw) ? raw : null;
38
+ const original = String(raw).replace(/\u00A0/g, " ").trim();
39
+ if (!original || !/[0-9]/.test(original)) return null;
40
+ const parenthesised = /^\(.*\)$/.test(original);
41
+ let s = original.replace(/[()]/g, "");
42
+ const negative = parenthesised || /^-/.test(s);
43
+ s = s.replace(/[^\d.,]/g, "");
44
+ if (!s) return null;
45
+ let groupSep = null;
46
+ let decimalSep = null;
47
+ if (mode === "us") {
48
+ groupSep = ",";
49
+ decimalSep = ".";
50
+ } else if (mode === "eu") {
51
+ groupSep = ".";
52
+ decimalSep = ",";
53
+ } else {
54
+ const lastDot = s.lastIndexOf(".");
55
+ const lastComma = s.lastIndexOf(",");
56
+ if (lastDot === -1 && lastComma === -1) {} else if (lastDot !== -1 && lastComma !== -1) if (lastDot > lastComma) {
57
+ decimalSep = ".";
58
+ groupSep = ",";
59
+ } else {
60
+ decimalSep = ",";
61
+ groupSep = ".";
62
+ }
63
+ else {
64
+ const only = lastDot !== -1 ? "." : ",";
65
+ const pos = only === "." ? lastDot : lastComma;
66
+ const trailing = s.length - pos - 1;
67
+ if (s.split(only).length - 1 > 1) groupSep = only;
68
+ else if (trailing === 3) groupSep = only;
69
+ else decimalSep = only;
70
+ }
71
+ }
72
+ if (groupSep) s = s.split(groupSep).join("");
73
+ if (decimalSep) s = s.replace(decimalSep, ".");
74
+ if (!/^\d+(\.\d+)?$/.test(s)) return null;
75
+ const n = Number(s);
76
+ if (!Number.isFinite(n)) return null;
77
+ if (negative) {
78
+ if (!allowNegative) return null;
79
+ return -n;
80
+ }
81
+ return n;
82
+ }
83
+ /** Parse a date from a Date, an ISO-ish string, or a spreadsheet serial number. */
84
+ function parseDate(raw) {
85
+ if (raw == null || raw === "") return null;
86
+ if (raw instanceof Date) return Number.isNaN(raw.getTime()) ? null : raw;
87
+ if (typeof raw === "number" && Number.isFinite(raw)) {
88
+ const ms = Math.round((raw - 25569) * 86400 * 1e3);
89
+ const d = new Date(ms);
90
+ return Number.isNaN(d.getTime()) ? null : d;
91
+ }
92
+ const text = String(raw).trim();
93
+ if (!text) return null;
94
+ const dmy = /^(\d{1,2})[/\-.](\d{1,2})[/\-.](\d{4})$/.exec(text);
95
+ if (dmy) {
96
+ const [, d, m, y] = dmy;
97
+ const date = new Date(Number(y), Number(m) - 1, Number(d));
98
+ return Number.isNaN(date.getTime()) ? null : date;
99
+ }
100
+ const parsed = new Date(text);
101
+ return Number.isNaN(parsed.getTime()) ? null : parsed;
102
+ }
103
+ var TRUE_WORDS = new Set([
104
+ "true",
105
+ "yes",
106
+ "y",
107
+ "1",
108
+ "ya",
109
+ "benar",
110
+ "x",
111
+ "✓"
112
+ ]);
113
+ var FALSE_WORDS = new Set([
114
+ "false",
115
+ "no",
116
+ "n",
117
+ "0",
118
+ "tidak",
119
+ "salah",
120
+ ""
121
+ ]);
122
+ /** Parse a boolean from the many things a human types into a yes/no column. */
123
+ function parseBoolean(raw) {
124
+ if (typeof raw === "boolean") return raw;
125
+ if (raw == null) return null;
126
+ const text = String(raw).trim().toLowerCase();
127
+ if (TRUE_WORDS.has(text)) return true;
128
+ if (FALSE_WORDS.has(text)) return false;
129
+ return null;
130
+ }
131
+ /**
132
+ * Coerce one cell for a declared column type. `undefined` means "unparseable —
133
+ * skip this cell" so a stray `-` in a number column can't stage `NaN`.
134
+ */
135
+ function coerceValue(raw, type, opts = {}) {
136
+ const text = cellText(raw);
137
+ switch (type) {
138
+ case "number": {
139
+ const n = parseNumber(raw, opts.numberFormat ?? "auto", opts.allowNegative ?? true);
140
+ return n === null ? void 0 : n;
141
+ }
142
+ case "date": {
143
+ const d = parseDate(raw instanceof Date || typeof raw === "number" ? raw : text);
144
+ return d === null ? void 0 : d;
145
+ }
146
+ case "boolean": {
147
+ const b = parseBoolean(text);
148
+ return b === null ? void 0 : b;
149
+ }
150
+ default: return text.trim();
151
+ }
152
+ }
153
+ /**
154
+ * Whether a staged value would actually change the row. Numbers are compared
155
+ * numerically so a stored `5000` isn't "changed" by a sheet's `"5.000"`, and
156
+ * dates by timestamp so two equal instants don't churn.
157
+ */
158
+ function isSameValue(current, next, type) {
159
+ if (type === "number") {
160
+ const a = parseNumber(current, "auto");
161
+ const b = typeof next === "number" ? next : parseNumber(next, "auto");
162
+ return a !== null && b !== null && a === b;
163
+ }
164
+ if (type === "date") {
165
+ const a = parseDate(current);
166
+ const b = parseDate(next);
167
+ return !!a && !!b && a.getTime() === b.getTime();
168
+ }
169
+ if (type === "boolean") return Boolean(current) === Boolean(next);
170
+ if (current == null && (next === "" || next == null)) return true;
171
+ return String(current ?? "") === String(next ?? "");
172
+ }
173
+ //#endregion
174
+ //#region src/import/match.ts
175
+ /**
176
+ * Pairing a sheet row with a table row.
177
+ *
178
+ * Real spreadsheets are lossy: a column gets deleted, a code is blank on some
179
+ * rows, a name is spelled differently. So instead of demanding one exact
180
+ * composite key, every non-empty **subset** of the declared key fields is
181
+ * indexed, and a row is matched on the strongest subset that resolves to
182
+ * exactly one candidate. A weaker subset is only consulted when the stronger
183
+ * ones can't be built (a blank cell) or find nothing.
184
+ *
185
+ * When a subset resolves to *several* rows the match is reported **ambiguous**
186
+ * rather than guessed at — quietly picking the first would corrupt data in a
187
+ * way nobody notices until much later.
188
+ *
189
+ * Ported from `use-import-excel.ts` (`buildAllSubsets` / `buildIndexForScheme`).
190
+ */
191
+ /**
192
+ * Every non-empty subset of `match` with at least `minFields` legs, ordered
193
+ * strongest (most legs) first.
194
+ *
195
+ * Bit-counting rather than recursion: with `n` legs there are `2^n - 1`
196
+ * subsets, and `n` is a handful of key columns in practice.
197
+ */
198
+ function buildAllSubsets(match, minFields = 2) {
199
+ const out = [];
200
+ const n = match.length;
201
+ const min = Math.max(1, Math.min(minFields, n));
202
+ for (let mask = (1 << n) - 1; mask >= 1; mask -= 1) {
203
+ const subset = [];
204
+ for (let i = 0; i < n; i += 1) if (mask & 1 << i) subset.push(match[i]);
205
+ if (subset.length >= min) out.push(subset);
206
+ }
207
+ out.sort((a, b) => b.length - a.length);
208
+ return out;
209
+ }
210
+ /** Build the composite key for one side, or `null` when a leg is missing. */
211
+ function keyOf(scheme, read, side, normalize) {
212
+ const parts = [];
213
+ for (const leg of scheme) {
214
+ let raw = read(leg);
215
+ if (raw === void 0 || raw === null || String(raw).trim() === "") return null;
216
+ if (leg.transform) raw = leg.transform(raw, side);
217
+ parts.push(`${leg.field}=${normalize(raw)}`);
218
+ }
219
+ return parts.join("|");
220
+ }
221
+ /** Index the target rows by one scheme's key. Collisions are kept, not dropped. */
222
+ function buildSchemeIndex(scheme, target, opts = {}) {
223
+ const normalize = opts.normalize ?? normalizeKeyValue;
224
+ const index = /* @__PURE__ */ new Map();
225
+ for (let i = 0; i < target.length; i += 1) {
226
+ const row = target[i];
227
+ if (opts.targetFilter && !opts.targetFilter(row)) continue;
228
+ const key = keyOf(scheme, (leg) => row?.[leg.field], "table", normalize);
229
+ if (key === null) continue;
230
+ const bucket = index.get(key);
231
+ if (bucket) bucket.push({
232
+ row,
233
+ index: i
234
+ });
235
+ else index.set(key, [{
236
+ row,
237
+ index: i
238
+ }]);
239
+ }
240
+ return index;
241
+ }
242
+ function createMatcher(match, target, opts = {}) {
243
+ const normalize = opts.normalize ?? normalizeKeyValue;
244
+ const schemes = buildAllSubsets(match, opts.minKeyFields ?? 2);
245
+ return {
246
+ schemes,
247
+ indexes: schemes.map((s) => buildSchemeIndex(s, target, {
248
+ targetFilter: opts.targetFilter,
249
+ normalize
250
+ })),
251
+ normalize
252
+ };
253
+ }
254
+ /**
255
+ * Find the table row for one sheet row, strongest scheme first.
256
+ *
257
+ * An ambiguous hit is remembered but doesn't stop the search — a weaker scheme
258
+ * can't disambiguate, but a *different* subset of the same size might, and only
259
+ * if nothing unique is ever found is the ambiguity reported.
260
+ */
261
+ function findMatch(matcher, readExcel) {
262
+ let ambiguous = null;
263
+ for (let i = 0; i < matcher.schemes.length; i += 1) {
264
+ const scheme = matcher.schemes[i];
265
+ const key = keyOf(scheme, readExcel, "excel", matcher.normalize);
266
+ if (key === null) continue;
267
+ const bucket = matcher.indexes[i].get(key);
268
+ if (!bucket || !bucket.length) continue;
269
+ if (bucket.length === 1) return {
270
+ kind: "hit",
271
+ entry: bucket[0],
272
+ scheme
273
+ };
274
+ if (!ambiguous) ambiguous = {
275
+ candidates: bucket.length,
276
+ scheme
277
+ };
278
+ }
279
+ if (ambiguous) return {
280
+ kind: "ambiguous",
281
+ ...ambiguous
282
+ };
283
+ return { kind: "miss" };
284
+ }
285
+ //#endregion
286
+ //#region src/import/parse.ts
287
+ /**
288
+ * Getting a `string[][]` grid out of whatever the user handed over — a real
289
+ * `.xlsx` file or the text they copied out of one.
290
+ */
291
+ /** Decide how to read `data` when the caller didn't say. */
292
+ function inferType(data) {
293
+ return typeof data === "string" ? "copy-paste" : "excel";
294
+ }
295
+ /**
296
+ * Pick the delimiter from the text itself. Tab first: that's what a real
297
+ * copy out of Excel produces, and a pasted cell may legitimately contain
298
+ * commas or semicolons.
299
+ */
300
+ function guessDelimiter(raw) {
301
+ if (raw.includes(" ")) return " ";
302
+ const firstLine = raw.split(/\r?\n/, 1)[0] ?? "";
303
+ if (firstLine.split(";").length > firstLine.split(",").length) return ";";
304
+ return ",";
305
+ }
306
+ /**
307
+ * Split delimited text, honouring `"` quoting so a quoted cell can contain the
308
+ * delimiter or a newline — which CSV exports out of Excel routinely produce.
309
+ */
310
+ function splitDelimited(raw, delimiter) {
311
+ const out = [];
312
+ let row = [];
313
+ let cell = "";
314
+ let quoted = false;
315
+ for (let i = 0; i < raw.length; i += 1) {
316
+ const ch = raw[i];
317
+ if (quoted) {
318
+ if (ch === "\"") if (raw[i + 1] === "\"") {
319
+ cell += "\"";
320
+ i += 1;
321
+ } else quoted = false;
322
+ else cell += ch;
323
+ continue;
324
+ }
325
+ if (ch === "\"") {
326
+ quoted = true;
327
+ continue;
328
+ }
329
+ if (ch === delimiter) {
330
+ row.push(cell);
331
+ cell = "";
332
+ continue;
333
+ }
334
+ if (ch === "\r") continue;
335
+ if (ch === "\n") {
336
+ row.push(cell);
337
+ out.push(row);
338
+ row = [];
339
+ cell = "";
340
+ continue;
341
+ }
342
+ cell += ch;
343
+ }
344
+ if (cell !== "" || row.length) {
345
+ row.push(cell);
346
+ out.push(row);
347
+ }
348
+ while (out.length && out[out.length - 1].every((c) => String(c).trim() === "")) out.pop();
349
+ return out.map((r) => r.map((c) => c.trim()));
350
+ }
351
+ /** Load the optional `exceljs` peer, with an actionable error when it's absent. */
352
+ async function loadExcelJs() {
353
+ try {
354
+ const mod = await import("exceljs");
355
+ return mod?.default ?? mod;
356
+ } catch (err) {
357
+ throw new Error("[mono-import] reading an .xlsx needs the optional peer dependency \"exceljs\". Install it in your app: pnpm add exceljs" + (err instanceof Error ? `\n (resolution failed: ${err.message})` : ""));
358
+ }
359
+ }
360
+ /** Normalise every accepted binary shape into an ArrayBuffer. */
361
+ async function toArrayBuffer(data) {
362
+ if (data instanceof ArrayBuffer) return data;
363
+ if (ArrayBuffer.isView(data)) return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
364
+ if (typeof data.arrayBuffer === "function") return data.arrayBuffer();
365
+ throw new Error("[mono-import] `data` must be a File, Blob, ArrayBuffer, Uint8Array or string.");
366
+ }
367
+ /** Read a worksheet into a dense matrix of raw cell values. */
368
+ async function readWorkbook(data, sheet) {
369
+ const workbook = new (await (loadExcelJs())).Workbook();
370
+ await workbook.xlsx.load(await toArrayBuffer(data));
371
+ const worksheet = typeof sheet === "string" ? workbook.getWorksheet(sheet) : workbook.worksheets[typeof sheet === "number" ? sheet : 0];
372
+ if (!worksheet) {
373
+ const names = workbook.worksheets.map((w) => w.name).join(", ");
374
+ throw new Error(`[mono-import] worksheet ${JSON.stringify(sheet)} not found. Available: ${names}`);
375
+ }
376
+ const matrix = [];
377
+ worksheet.eachRow({ includeEmpty: true }, (row) => {
378
+ const cells = [];
379
+ const values = row.values;
380
+ for (let c = 1; c < values.length; c += 1) cells.push(values[c]);
381
+ matrix.push(cells);
382
+ });
383
+ return matrix;
384
+ }
385
+ /**
386
+ * Parse the caller's `data` into headers + rows.
387
+ *
388
+ * Rows above `headerRow` are dropped, which is what lets a sheet carry a title
389
+ * block above its table.
390
+ */
391
+ async function parseSheet(options) {
392
+ const type = options.type ?? inferType(options.data);
393
+ let matrix;
394
+ if (type === "copy-paste") {
395
+ if (typeof options.data !== "string") throw new Error("[mono-import] type 'copy-paste' needs `data` to be a string.");
396
+ const delimiter = options.delimiter ?? guessDelimiter(options.data);
397
+ matrix = splitDelimited(options.data, delimiter);
398
+ } else {
399
+ if (typeof options.data === "string") throw new Error("[mono-import] type 'excel' needs `data` to be a File, Blob or ArrayBuffer.");
400
+ matrix = await readWorkbook(options.data, options.sheet);
401
+ }
402
+ const headerIndex = Math.max(1, Math.floor(options.headerRow ?? 1)) - 1;
403
+ return {
404
+ headers: (matrix[headerIndex] ?? []).map((h) => cellText(h).trim()),
405
+ rows: matrix.slice(headerIndex + 1).filter((r) => r.some((c) => cellText(c).trim() !== ""))
406
+ };
407
+ }
408
+ //#endregion
409
+ //#region src/import/index.ts
410
+ /**
411
+ * `@mono-lit/helper` table import — read an edited spreadsheet back into the grid.
412
+ *
413
+ * The pipeline: parse the sheet (or the pasted text) into headers + rows, pair
414
+ * each sheet row with a table row by composite key, coerce the declared columns,
415
+ * and stage the differences. Nothing touches the underlying data — the result
416
+ * lands in the grid's pending-changes buffer, to be reviewed and then saved or
417
+ * discarded.
418
+ *
419
+ * @example
420
+ * const result = await table.import({
421
+ * type: 'excel',
422
+ * data: file,
423
+ * match: [{ excel: 'Brand', field: 'BrandNama' }, { excel: 'CH.', field: 'Channel' }],
424
+ * columns: [{ excel: 'JAN', field: 'Jan', type: 'number' }],
425
+ * })
426
+ * if (!result.ok) warn(`${result.unmatched} rows didn't match`)
427
+ */
428
+ var sleep = (ms) => new Promise((r) => setTimeout(r, ms));
429
+ /** Build header → column-index, including any declared aliases. */
430
+ function buildHeaderIndex(headers, aliases) {
431
+ const index = /* @__PURE__ */ new Map();
432
+ headers.forEach((h, i) => {
433
+ const key = normalizeHeader(h);
434
+ if (key && !index.has(key)) index.set(key, i);
435
+ });
436
+ if (aliases) for (const [canonical, alts] of Object.entries(aliases)) {
437
+ const target = normalizeHeader(canonical);
438
+ if (index.has(target)) continue;
439
+ for (const alt of alts) {
440
+ const found = index.get(normalizeHeader(alt));
441
+ if (found !== void 0) {
442
+ index.set(target, found);
443
+ break;
444
+ }
445
+ }
446
+ }
447
+ return index;
448
+ }
449
+ /** Read the sheet's raw grid into `{ header: value }` for the user callbacks. */
450
+ function toSheetRecord(headers, raw) {
451
+ const out = {};
452
+ headers.forEach((h, i) => {
453
+ if (h) out[h] = raw[i] ?? "";
454
+ });
455
+ return out;
456
+ }
457
+ /** Run an import against a grid. The implementation behind `table.import()`. */
458
+ async function importTable(options, bridge) {
459
+ if (!options?.match?.length) throw new Error("[mono-import] `match` is required — an import needs a key to pair rows on.");
460
+ if (!options?.columns?.length) throw new Error("[mono-import] `columns` is required — nothing would be imported otherwise.");
461
+ const { headers, rows } = await parseSheet(options);
462
+ const headerIndex = buildHeaderIndex(headers, options.headerAliases);
463
+ const missingHeaders = [...options.match, ...options.columns].map((m) => m.excel).filter((h) => !headerIndex.has(normalizeHeader(h)));
464
+ const activeColumns = options.columns.filter((c) => headerIndex.has(normalizeHeader(c.excel)));
465
+ const activeMatch = options.match.filter((m) => headerIndex.has(normalizeHeader(m.excel)));
466
+ const target = options.target ?? await bridge.getData();
467
+ const result = {
468
+ ok: false,
469
+ total: 0,
470
+ matched: 0,
471
+ unmatched: 0,
472
+ ambiguous: 0,
473
+ changed: 0,
474
+ skipped: 0,
475
+ headers,
476
+ missingHeaders,
477
+ changes: [],
478
+ unmatchedRows: [],
479
+ ambiguousRows: [],
480
+ skippedRows: [],
481
+ merged: target,
482
+ apply: () => {}
483
+ };
484
+ if (!activeMatch.length || !activeColumns.length) {
485
+ if (options.debug) console.warn("[mono-import] nothing to do — missing headers:", missingHeaders);
486
+ return result;
487
+ }
488
+ const matcher = createMatcher(activeMatch, target, {
489
+ minKeyFields: options.minKeyFields,
490
+ targetFilter: options.targetFilter,
491
+ normalize: options.normalizeKey
492
+ });
493
+ const patchesByIndex = /* @__PURE__ */ new Map();
494
+ const numberFormat = options.numberFormat ?? "auto";
495
+ const allowNegative = options.allowNegative ?? true;
496
+ const chunkSize = Math.max(1, Math.floor(options.chunkSize ?? 300));
497
+ const yieldMs = Math.max(0, options.yieldMs ?? 0);
498
+ const cellOf = (raw, excel) => {
499
+ const i = headerIndex.get(normalizeHeader(excel));
500
+ return i === void 0 ? void 0 : raw[i];
501
+ };
502
+ for (let start = 0; start < rows.length; start += chunkSize) {
503
+ const end = Math.min(start + chunkSize, rows.length);
504
+ for (let ri = start; ri < end; ri += 1) {
505
+ const raw = rows[ri];
506
+ const record = toSheetRecord(headers, raw);
507
+ if (options.rowFilter && !options.rowFilter(record, ri)) continue;
508
+ result.total += 1;
509
+ const outcome = findMatch(matcher, (leg) => cellOf(raw, leg.excel));
510
+ if (outcome.kind === "miss") {
511
+ result.unmatched += 1;
512
+ result.unmatchedRows.push({
513
+ index: ri,
514
+ row: record
515
+ });
516
+ continue;
517
+ }
518
+ if (outcome.kind === "ambiguous") {
519
+ result.ambiguous += 1;
520
+ result.ambiguousRows.push({
521
+ index: ri,
522
+ row: record,
523
+ candidates: outcome.candidates,
524
+ reason: `matched ${outcome.candidates} rows on ${outcome.scheme.map((s) => s.field).join(" + ")}`
525
+ });
526
+ continue;
527
+ }
528
+ result.matched += 1;
529
+ const { row, index } = outcome.entry;
530
+ let touched = false;
531
+ for (const column of activeColumns) {
532
+ const veto = options.readOnly?.(row, column.field);
533
+ if (veto) {
534
+ result.skipped += 1;
535
+ result.skippedRows.push({
536
+ index: ri,
537
+ row: record,
538
+ reason: typeof veto === "string" ? veto : `${column.field} is read-only`
539
+ });
540
+ continue;
541
+ }
542
+ const rawCell = cellOf(raw, column.excel);
543
+ let value = coerceValue(rawCell, column.type, {
544
+ numberFormat,
545
+ allowNegative
546
+ });
547
+ if (value === void 0) continue;
548
+ if (column.transform) {
549
+ value = column.transform(value, {
550
+ row,
551
+ field: column.field,
552
+ raw: rawCell
553
+ });
554
+ if (value === void 0) continue;
555
+ }
556
+ const current = row[column.field];
557
+ if (isSameValue(current, value, column.type)) continue;
558
+ const entry = patchesByIndex.get(index) ?? {
559
+ row,
560
+ patch: {}
561
+ };
562
+ entry.patch[column.field] = value;
563
+ patchesByIndex.set(index, entry);
564
+ touched = true;
565
+ }
566
+ if (touched) result.changed += 1;
567
+ }
568
+ options.onProgress?.(end, rows.length);
569
+ if (yieldMs >= 0 && end < rows.length) await sleep(yieldMs);
570
+ }
571
+ result.changes = [...patchesByIndex.entries()].map(([index, { row, patch }]) => ({
572
+ rowKey: bridge.rowKeyOf(row, index),
573
+ key: bridge.serverKeyOf(row),
574
+ row,
575
+ patch
576
+ }));
577
+ result.merged = target.map((row, i) => {
578
+ const entry = patchesByIndex.get(i);
579
+ return entry ? {
580
+ ...row,
581
+ ...entry.patch
582
+ } : row;
583
+ });
584
+ result.ok = result.total > 0 && result.matched === result.total && result.unmatched === 0 && result.ambiguous === 0;
585
+ if (options.debug) console.debug("[mono-import]", {
586
+ headers,
587
+ missingHeaders,
588
+ schemes: matcher.schemes.map((s) => s.map((l) => l.field)),
589
+ total: result.total,
590
+ matched: result.matched,
591
+ unmatched: result.unmatched,
592
+ ambiguous: result.ambiguous,
593
+ changed: result.changed,
594
+ skipped: result.skipped
595
+ });
596
+ let applied = false;
597
+ result.apply = () => {
598
+ if (applied || !result.changes.length) return;
599
+ applied = true;
600
+ bridge.stageImported(result.changes);
601
+ };
602
+ if ((options.apply ?? "stage") === "stage") result.apply();
603
+ return result;
604
+ }
605
+ //#endregion
606
+ export { importTable };
@@ -0,0 +1 @@
1
+ export {}