nuxt-ui-tools 1.11.2 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/README.md +11 -5
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +46 -0
  4. package/dist/runtime/dashboard/components/dashboard-stat.d.vue.ts +1 -1
  5. package/dist/runtime/dashboard/components/dashboard-stat.vue.d.ts +1 -1
  6. package/dist/runtime/file-preview/components/shell/file-preview-stage.d.vue.ts +2 -2
  7. package/dist/runtime/file-preview/components/shell/file-preview-stage.vue.d.ts +2 -2
  8. package/dist/runtime/form/fields/array-collapse/component.vue +2 -1
  9. package/dist/runtime/form/fields/array-list/component.vue +72 -63
  10. package/dist/runtime/form/fields/array-list/use-array-items.d.ts +1 -0
  11. package/dist/runtime/form/fields/array-list/use-array-items.js +4 -0
  12. package/dist/runtime/form/fields/array-table/component.vue +2 -1
  13. package/dist/runtime/form/types/api.d.ts +10 -2
  14. package/dist/runtime/i18n/locales/en.js +252 -130
  15. package/dist/runtime/i18n/locales/fr.js +252 -130
  16. package/dist/runtime/i18n/types.d.ts +242 -119
  17. package/dist/runtime/shared/types/query.d.ts +14 -4
  18. package/dist/runtime/shared/types/remote-options.d.ts +11 -0
  19. package/dist/runtime/shared/utils/define-remote-options.js +6 -0
  20. package/dist/runtime/shared/utils/file.d.ts +1 -1
  21. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.d.vue.ts → internal/spreadsheet-import-cell-editor.d.vue.ts} +8 -5
  22. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-cell-editor.vue +73 -0
  23. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.vue.d.ts → internal/spreadsheet-import-cell-editor.vue.d.ts} +8 -5
  24. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.d.vue.ts +17 -0
  25. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue +98 -0
  26. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue.d.ts +17 -0
  27. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.d.vue.ts +17 -0
  28. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue +20 -0
  29. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue.d.ts +17 -0
  30. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.d.vue.ts +10 -0
  31. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue +34 -0
  32. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue.d.ts +10 -0
  33. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.d.vue.ts +13 -0
  34. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue +113 -0
  35. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue.d.ts +13 -0
  36. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.d.vue.ts +35 -0
  37. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue +154 -0
  38. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue.d.ts +35 -0
  39. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.d.vue.ts +23 -0
  40. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue +83 -0
  41. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue.d.ts +23 -0
  42. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.d.vue.ts +19 -0
  43. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue +45 -0
  44. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue.d.ts +19 -0
  45. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.d.vue.ts → parts/spreadsheet-import-export-button.d.vue.ts} +3 -2
  46. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-export-button.vue +34 -0
  47. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.vue.d.ts → parts/spreadsheet-import-export-button.vue.d.ts} +3 -4
  48. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.d.vue.ts +17 -0
  49. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue +49 -0
  50. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue.d.ts +17 -0
  51. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.d.vue.ts +18 -0
  52. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue +101 -0
  53. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue.d.ts +18 -0
  54. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.d.vue.ts +22 -0
  55. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue +276 -0
  56. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue.d.ts +22 -0
  57. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.d.vue.ts +11 -0
  58. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue +164 -0
  59. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue.d.ts +11 -0
  60. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.d.vue.ts → parts/spreadsheet-import-stat.d.vue.ts} +7 -4
  61. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stat.vue +30 -0
  62. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.vue.d.ts → parts/spreadsheet-import-stat.vue.d.ts} +7 -4
  63. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.d.vue.ts +26 -0
  64. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue +55 -0
  65. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue.d.ts +26 -0
  66. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.vue.d.ts → parts/spreadsheet-import-submit-button.d.vue.ts} +3 -2
  67. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue +27 -0
  68. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue.d.ts +8 -0
  69. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.d.vue.ts +16 -0
  70. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue +51 -0
  71. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue.d.ts +16 -0
  72. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.d.vue.ts → parts/spreadsheet-import-table-toolbar.d.vue.ts} +2 -4
  73. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table-toolbar.vue +217 -0
  74. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-raw-preview-table.d.vue.ts → parts/spreadsheet-import-table-toolbar.vue.d.ts} +2 -2
  75. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.d.vue.ts +33 -0
  76. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue +302 -0
  77. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue.d.ts +33 -0
  78. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.d.vue.ts → parts/spreadsheet-import-template-button.d.vue.ts} +5 -4
  79. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-template-button.vue +31 -0
  80. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.vue.d.ts → parts/spreadsheet-import-template-button.vue.d.ts} +5 -4
  81. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.d.vue.ts +27 -0
  82. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue +162 -0
  83. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue.d.ts +27 -0
  84. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.d.vue.ts +24 -0
  85. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue +23 -0
  86. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue.d.ts +24 -0
  87. package/dist/runtime/spreadsheet/components/spreadsheet-import.d.vue.ts +21 -6
  88. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue +46 -262
  89. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue.d.ts +21 -6
  90. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.d.vue.ts → steps/spreadsheet-import-step-nav.d.vue.ts} +6 -2
  91. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step-nav.vue +116 -0
  92. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.vue.d.ts → steps/spreadsheet-import-step-nav.vue.d.ts} +6 -2
  93. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.d.vue.ts +26 -0
  94. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue +106 -0
  95. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue.d.ts +26 -0
  96. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.d.vue.ts +15 -0
  97. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue +131 -0
  98. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue.d.ts +15 -0
  99. package/dist/runtime/spreadsheet/composables/index.d.ts +2 -0
  100. package/dist/runtime/spreadsheet/composables/index.js +2 -0
  101. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.d.ts +8 -0
  102. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.js +19 -0
  103. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.d.ts +23 -0
  104. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.js +75 -0
  105. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +8 -45
  106. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +28 -32
  107. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.d.ts +11 -0
  108. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.js +25 -0
  109. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.d.ts +16 -0
  110. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.js +20 -0
  111. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.d.ts +14 -0
  112. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.js +44 -0
  113. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.d.ts +12 -0
  114. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.js +22 -0
  115. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +18 -7
  116. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +340 -109
  117. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.d.ts +36 -0
  118. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.js +95 -0
  119. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.d.ts +24 -0
  120. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.js +159 -0
  121. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.d.ts +14 -0
  122. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.js +11 -0
  123. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +37 -169
  124. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +148 -408
  125. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +48 -26
  126. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +334 -21
  127. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.d.ts +33 -0
  128. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.js +126 -0
  129. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.d.ts +37 -0
  130. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.js +136 -0
  131. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.d.ts +27 -0
  132. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.js +121 -0
  133. package/dist/runtime/spreadsheet/index.d.ts +0 -1
  134. package/dist/runtime/spreadsheet/index.js +0 -1
  135. package/dist/runtime/spreadsheet/schema/builder.d.ts +8 -0
  136. package/dist/runtime/spreadsheet/schema/builder.js +31 -0
  137. package/dist/runtime/spreadsheet/schema/index.d.ts +24 -32
  138. package/dist/runtime/spreadsheet/schema/index.js +4 -21
  139. package/dist/runtime/spreadsheet/types/columns.d.ts +252 -273
  140. package/dist/runtime/spreadsheet/types/fields.d.ts +64 -0
  141. package/dist/runtime/spreadsheet/types/importer.d.ts +308 -0
  142. package/dist/runtime/spreadsheet/types/index.d.ts +6 -10
  143. package/dist/runtime/spreadsheet/types/options.d.ts +47 -9
  144. package/dist/runtime/spreadsheet/types/rows.d.ts +57 -48
  145. package/dist/runtime/spreadsheet/types/schema.d.ts +162 -76
  146. package/dist/runtime/spreadsheet/types/shared.d.ts +19 -21
  147. package/dist/runtime/spreadsheet/types/source.d.ts +39 -15
  148. package/dist/runtime/spreadsheet/types/steps.d.ts +76 -0
  149. package/dist/runtime/spreadsheet/types/validation.d.ts +49 -69
  150. package/dist/runtime/spreadsheet/types/values.d.ts +77 -0
  151. package/dist/runtime/spreadsheet/utils/download.d.ts +2 -0
  152. package/dist/runtime/spreadsheet/utils/download.js +8 -0
  153. package/dist/runtime/spreadsheet/utils/export.d.ts +26 -0
  154. package/dist/runtime/spreadsheet/utils/export.js +50 -0
  155. package/dist/runtime/spreadsheet/utils/fields.d.ts +26 -0
  156. package/dist/runtime/spreadsheet/utils/fields.js +169 -0
  157. package/dist/runtime/spreadsheet/utils/guards.d.ts +18 -0
  158. package/dist/runtime/spreadsheet/utils/guards.js +27 -0
  159. package/dist/runtime/spreadsheet/utils/headers.d.ts +15 -0
  160. package/dist/runtime/spreadsheet/utils/headers.js +36 -0
  161. package/dist/runtime/spreadsheet/utils/identity.d.ts +24 -0
  162. package/dist/runtime/spreadsheet/utils/identity.js +57 -0
  163. package/dist/runtime/spreadsheet/utils/index.d.ts +15 -6
  164. package/dist/runtime/spreadsheet/utils/index.js +15 -6
  165. package/dist/runtime/spreadsheet/utils/layout.d.ts +12 -0
  166. package/dist/runtime/spreadsheet/utils/layout.js +37 -0
  167. package/dist/runtime/spreadsheet/utils/options.d.ts +31 -10
  168. package/dist/runtime/spreadsheet/utils/options.js +58 -30
  169. package/dist/runtime/spreadsheet/utils/parse.d.ts +6 -0
  170. package/dist/runtime/spreadsheet/utils/parse.js +147 -0
  171. package/dist/runtime/spreadsheet/utils/paths.d.ts +4 -0
  172. package/dist/runtime/spreadsheet/utils/paths.js +29 -0
  173. package/dist/runtime/spreadsheet/utils/rows.d.ts +69 -0
  174. package/dist/runtime/spreadsheet/utils/rows.js +168 -0
  175. package/dist/runtime/spreadsheet/utils/rules.d.ts +4 -0
  176. package/dist/runtime/spreadsheet/utils/rules.js +95 -0
  177. package/dist/runtime/spreadsheet/utils/suggestions.d.ts +20 -0
  178. package/dist/runtime/spreadsheet/utils/suggestions.js +43 -0
  179. package/dist/runtime/spreadsheet/utils/text.d.ts +9 -0
  180. package/dist/runtime/spreadsheet/utils/text.js +11 -0
  181. package/dist/runtime/spreadsheet/utils/workbook.d.ts +13 -0
  182. package/dist/runtime/spreadsheet/utils/workbook.js +121 -0
  183. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.d.vue.ts +2 -2
  184. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.vue.d.ts +2 -2
  185. package/dist/runtime/table/components/filters/tags/date-filter-tag.d.vue.ts +2 -2
  186. package/dist/runtime/table/components/filters/tags/date-filter-tag.vue.d.ts +2 -2
  187. package/dist/runtime/table/components/filters/tags/number-filter-tag.d.vue.ts +2 -2
  188. package/dist/runtime/table/components/filters/tags/number-filter-tag.vue.d.ts +2 -2
  189. package/dist/runtime/table/components/filters/tags/option-filter-tag.d.vue.ts +2 -2
  190. package/dist/runtime/table/components/filters/tags/option-filter-tag.vue.d.ts +2 -2
  191. package/dist/runtime/table/components/filters/tags/text-filter-tag.d.vue.ts +2 -2
  192. package/dist/runtime/table/components/filters/tags/text-filter-tag.vue.d.ts +2 -2
  193. package/dist/runtime/table/components/table/table-cell-ellipsis.d.ts +1 -1
  194. package/dist/runtime/table/composables/use-table-actions.d.ts +1 -1
  195. package/dist/runtime/table/composables/use-table-actions.js +11 -3
  196. package/dist/runtime/table/composables/use-table-internals.d.ts +3 -3
  197. package/dist/runtime/table/types/actions.d.ts +8 -1
  198. package/dist/runtime/table/utils/data-list-ui.d.ts +1 -1
  199. package/package.json +18 -3
  200. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-file-bar.vue +0 -31
  201. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.d.vue.ts +0 -24
  202. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue +0 -69
  203. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue.d.ts +0 -24
  204. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-header.vue +0 -36
  205. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-sidebar.vue +0 -63
  206. package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue +0 -67
  207. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue +0 -41
  208. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue.d.ts +0 -7
  209. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.d.vue.ts +0 -10
  210. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue +0 -25
  211. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue.d.ts +0 -10
  212. package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue +0 -201
  213. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.d.vue.ts +0 -11
  214. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue +0 -38
  215. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue.d.ts +0 -11
  216. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.d.vue.ts +0 -45
  217. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue +0 -219
  218. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue.d.ts +0 -45
  219. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.d.vue.ts +0 -51
  220. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue +0 -166
  221. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue.d.ts +0 -51
  222. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.d.vue.ts +0 -11
  223. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue +0 -26
  224. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue.d.ts +0 -11
  225. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.d.vue.ts +0 -41
  226. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue +0 -392
  227. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue.d.ts +0 -41
  228. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-overflow-alert.vue +0 -43
  229. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.d.vue.ts +0 -15
  230. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue +0 -40
  231. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue.d.ts +0 -15
  232. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.d.vue.ts +0 -7
  233. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue +0 -137
  234. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue.d.ts +0 -7
  235. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.d.vue.ts +0 -7
  236. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue +0 -222
  237. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue.d.ts +0 -7
  238. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.d.vue.ts +0 -7
  239. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue +0 -191
  240. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue.d.ts +0 -7
  241. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.d.vue.ts +0 -7
  242. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue +0 -62
  243. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue.d.ts +0 -7
  244. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.d.vue.ts +0 -8
  245. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue +0 -81
  246. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue.d.ts +0 -8
  247. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.d.vue.ts +0 -15
  248. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue +0 -95
  249. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue.d.ts +0 -15
  250. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.d.vue.ts +0 -15
  251. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue +0 -56
  252. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue.d.ts +0 -15
  253. package/dist/runtime/spreadsheet/components/types.d.ts +0 -41
  254. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +0 -18
  255. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +0 -62
  256. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +0 -629
  257. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +0 -68
  258. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.d.ts +0 -1
  259. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.js +0 -3
  260. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +0 -40
  261. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +0 -97
  262. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +0 -24
  263. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +0 -74
  264. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +0 -27
  265. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +0 -109
  266. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +0 -15
  267. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +0 -109
  268. package/dist/runtime/spreadsheet/schema/normalize.d.ts +0 -73
  269. package/dist/runtime/spreadsheet/schema/normalize.js +0 -136
  270. package/dist/runtime/spreadsheet/types/context.d.ts +0 -9
  271. package/dist/runtime/spreadsheet/types/import.d.ts +0 -55
  272. package/dist/runtime/spreadsheet/types/inference.d.ts +0 -83
  273. package/dist/runtime/spreadsheet/types/normalized.d.ts +0 -50
  274. package/dist/runtime/spreadsheet/types/normalized.js +0 -0
  275. package/dist/runtime/spreadsheet/types/pipeline.d.ts +0 -7
  276. package/dist/runtime/spreadsheet/types/pipeline.js +0 -0
  277. package/dist/runtime/spreadsheet/types/reference-session.d.ts +0 -43
  278. package/dist/runtime/spreadsheet/types/reference-session.js +0 -0
  279. package/dist/runtime/spreadsheet/types/references.d.ts +0 -32
  280. package/dist/runtime/spreadsheet/types/references.js +0 -0
  281. package/dist/runtime/spreadsheet/types/resolution.d.ts +0 -43
  282. package/dist/runtime/spreadsheet/types/resolution.js +0 -0
  283. package/dist/runtime/spreadsheet/utils/builders/core.d.ts +0 -17
  284. package/dist/runtime/spreadsheet/utils/builders/core.js +0 -262
  285. package/dist/runtime/spreadsheet/utils/builders/index.d.ts +0 -1
  286. package/dist/runtime/spreadsheet/utils/builders/index.js +0 -1
  287. package/dist/runtime/spreadsheet/utils/context.d.ts +0 -20
  288. package/dist/runtime/spreadsheet/utils/context.js +0 -25
  289. package/dist/runtime/spreadsheet/utils/display.d.ts +0 -6
  290. package/dist/runtime/spreadsheet/utils/display.js +0 -26
  291. package/dist/runtime/spreadsheet/utils/object.d.ts +0 -9
  292. package/dist/runtime/spreadsheet/utils/object.js +0 -78
  293. package/dist/runtime/spreadsheet/utils/references/candidates.d.ts +0 -6
  294. package/dist/runtime/spreadsheet/utils/references/candidates.js +0 -28
  295. package/dist/runtime/spreadsheet/utils/references/core.d.ts +0 -3
  296. package/dist/runtime/spreadsheet/utils/references/core.js +0 -3
  297. package/dist/runtime/spreadsheet/utils/references/guards.d.ts +0 -4
  298. package/dist/runtime/spreadsheet/utils/references/guards.js +0 -28
  299. package/dist/runtime/spreadsheet/utils/references/index.d.ts +0 -1
  300. package/dist/runtime/spreadsheet/utils/references/index.js +0 -1
  301. package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +0 -17
  302. package/dist/runtime/spreadsheet/utils/references/resolutions.js +0 -172
  303. package/dist/runtime/spreadsheet/utils/references/shared.d.ts +0 -3
  304. package/dist/runtime/spreadsheet/utils/references/shared.js +0 -26
  305. package/dist/runtime/spreadsheet/utils/references/sources.d.ts +0 -9
  306. package/dist/runtime/spreadsheet/utils/references/sources.js +0 -38
  307. package/dist/runtime/spreadsheet/utils/rows/core.d.ts +0 -4
  308. package/dist/runtime/spreadsheet/utils/rows/core.js +0 -4
  309. package/dist/runtime/spreadsheet/utils/rows/headers.d.ts +0 -2
  310. package/dist/runtime/spreadsheet/utils/rows/headers.js +0 -9
  311. package/dist/runtime/spreadsheet/utils/rows/index.d.ts +0 -1
  312. package/dist/runtime/spreadsheet/utils/rows/index.js +0 -1
  313. package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +0 -5
  314. package/dist/runtime/spreadsheet/utils/rows/matching.js +0 -209
  315. package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +0 -7
  316. package/dist/runtime/spreadsheet/utils/rows/parsing.js +0 -209
  317. package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +0 -17
  318. package/dist/runtime/spreadsheet/utils/rows/shared.js +0 -309
  319. package/dist/runtime/spreadsheet/utils/rows/summary.d.ts +0 -2
  320. package/dist/runtime/spreadsheet/utils/rows/summary.js +0 -10
  321. package/dist/runtime/spreadsheet/utils/source/core.d.ts +0 -9
  322. package/dist/runtime/spreadsheet/utils/source/core.js +0 -65
  323. package/dist/runtime/spreadsheet/utils/source/index.d.ts +0 -1
  324. package/dist/runtime/spreadsheet/utils/source/index.js +0 -1
  325. package/dist/runtime/spreadsheet/utils/validation/core.d.ts +0 -16
  326. package/dist/runtime/spreadsheet/utils/validation/core.js +0 -211
  327. package/dist/runtime/spreadsheet/utils/validation/index.d.ts +0 -1
  328. package/dist/runtime/spreadsheet/utils/validation/index.js +0 -1
  329. /package/dist/runtime/spreadsheet/{components/types.js → types/fields.js} +0 -0
  330. /package/dist/runtime/spreadsheet/types/{context.js → importer.js} +0 -0
  331. /package/dist/runtime/spreadsheet/types/{import.js → steps.js} +0 -0
  332. /package/dist/runtime/spreadsheet/types/{inference.js → values.js} +0 -0
@@ -0,0 +1,106 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { useUiToolsLocale } from "#ui-tools/i18n";
4
+ import {
5
+ useSpreadsheetImporter,
6
+ useSpreadsheetStepsContext
7
+ } from "../../composables/use-spreadsheet-import-context";
8
+ import SpreadsheetImportHeading from "../internal/spreadsheet-import-heading.vue";
9
+ import SpreadsheetImportColumnMapping from "../parts/spreadsheet-import-column-mapping.vue";
10
+ import SpreadsheetImportDropzone from "../parts/spreadsheet-import-dropzone.vue";
11
+ import SpreadsheetImportExpectedColumns from "../parts/spreadsheet-import-expected-columns.vue";
12
+ import SpreadsheetImportExportButton from "../parts/spreadsheet-import-export-button.vue";
13
+ import SpreadsheetImportFileCard from "../parts/spreadsheet-import-file-card.vue";
14
+ import SpreadsheetImportProgress from "../parts/spreadsheet-import-progress.vue";
15
+ import SpreadsheetImportRowInspector from "../parts/spreadsheet-import-row-inspector.vue";
16
+ import SpreadsheetImportSourceSettings from "../parts/spreadsheet-import-source-settings.vue";
17
+ import SpreadsheetImportStats from "../parts/spreadsheet-import-stats.vue";
18
+ import SpreadsheetImportSummary from "../parts/spreadsheet-import-summary.vue";
19
+ import SpreadsheetImportTableToolbar from "../parts/spreadsheet-import-table-toolbar.vue";
20
+ import SpreadsheetImportTable from "../parts/spreadsheet-import-table.vue";
21
+ import SpreadsheetImportTemplateButton from "../parts/spreadsheet-import-template-button.vue";
22
+ import SpreadsheetImportValueMapping from "../parts/spreadsheet-import-value-mapping.vue";
23
+ const props = defineProps({
24
+ importer: { type: Object, required: false },
25
+ steps: { type: Object, required: false },
26
+ headings: { type: Boolean, required: false }
27
+ });
28
+ const importer = useSpreadsheetImporter(() => props.importer);
29
+ const steps = useSpreadsheetStepsContext(() => props.steps);
30
+ const { t } = useUiToolsLocale();
31
+ const step = computed(() => steps.value?.step ?? null);
32
+ </script>
33
+
34
+ <template>
35
+ <div v-if="step" :key="step.key" :data-spreadsheet-step="step.key" class="grid min-w-0 gap-5">
36
+ <slot :name="step.key" :step="step">
37
+ <template v-if="step.builtIn === 'file'">
38
+ <SpreadsheetImportHeading
39
+ v-if="headings"
40
+ :title="t('spreadsheet.headings.file.title')"
41
+ :description="t('spreadsheet.headings.file.description')"
42
+ >
43
+ <SpreadsheetImportTemplateButton v-if="!importer.file.loaded" />
44
+ </SpreadsheetImportHeading>
45
+ <template v-if="importer.file.loaded">
46
+ <SpreadsheetImportFileCard />
47
+ <SpreadsheetImportSourceSettings />
48
+ </template>
49
+ <template v-else>
50
+ <SpreadsheetImportDropzone />
51
+ <SpreadsheetImportExpectedColumns />
52
+ </template>
53
+ </template>
54
+ <template v-else-if="step.builtIn === 'columns'">
55
+ <SpreadsheetImportHeading
56
+ v-if="headings"
57
+ :title="t('spreadsheet.headings.columns.title')"
58
+ :description="t('spreadsheet.headings.columns.description')"
59
+ />
60
+ <SpreadsheetImportColumnMapping />
61
+ </template>
62
+ <template v-else-if="step.builtIn === 'values'">
63
+ <SpreadsheetImportHeading
64
+ v-if="headings"
65
+ :title="t('spreadsheet.headings.values.title')"
66
+ :description="t('spreadsheet.headings.values.description')"
67
+ />
68
+ <SpreadsheetImportValueMapping />
69
+ </template>
70
+ <template v-else-if="step.builtIn === 'review'">
71
+ <SpreadsheetImportHeading
72
+ v-if="headings"
73
+ :title="t('spreadsheet.headings.review.title')"
74
+ :description="t('spreadsheet.headings.review.description')"
75
+ >
76
+ <SpreadsheetImportExportButton />
77
+ </SpreadsheetImportHeading>
78
+ <SpreadsheetImportStats />
79
+ <div class="min-w-0 overflow-hidden rounded-xl border border-default">
80
+ <SpreadsheetImportTableToolbar />
81
+ <div
82
+ class="grid min-w-0"
83
+ :class="importer.review.inspected ? 'lg:grid-cols-[minmax(0,1fr)_24rem]' : ''"
84
+ >
85
+ <SpreadsheetImportTable />
86
+ <SpreadsheetImportRowInspector
87
+ v-if="importer.review.inspected"
88
+ class="border-default max-lg:border-t lg:border-s"
89
+ />
90
+ </div>
91
+ </div>
92
+ </template>
93
+ <template v-else-if="step.builtIn === 'submit'">
94
+ <SpreadsheetImportProgress v-if="importer.submit.status !== 'idle'" />
95
+ <template v-else>
96
+ <SpreadsheetImportHeading
97
+ v-if="headings"
98
+ :title="t('spreadsheet.headings.submit.title')"
99
+ :description="t('spreadsheet.headings.submit.description')"
100
+ />
101
+ <SpreadsheetImportSummary />
102
+ </template>
103
+ </template>
104
+ </slot>
105
+ </div>
106
+ </template>
@@ -0,0 +1,26 @@
1
+ import type { SpreadsheetImporter, SpreadsheetSteps } from '../../types/index.js';
2
+ /**
3
+ * The current step. A slot named after the step key replaces its content; built-in steps
4
+ * otherwise render their default parts.
5
+ */
6
+ type __VLS_Props = {
7
+ importer?: SpreadsheetImporter;
8
+ steps?: SpreadsheetSteps;
9
+ /** Shows the built-in title and description above the default content. */
10
+ headings?: boolean;
11
+ };
12
+ declare var __VLS_2: string, __VLS_3: {
13
+ step: import("../../types/index.js").SpreadsheetStepStatus;
14
+ };
15
+ type __VLS_Slots = {} & {
16
+ [K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
17
+ };
18
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ type __VLS_WithSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1,15 @@
1
+ import type { SpreadsheetSteps } from '../../types/index.js';
2
+ type __VLS_Props = {
3
+ steps?: SpreadsheetSteps;
4
+ /** `vertical` lists steps with their hints from `lg` up, and a row of steps below. */
5
+ orientation?: 'horizontal' | 'vertical';
6
+ /** Vertical only: numbers without labels, for a narrow rail. */
7
+ compact?: boolean;
8
+ };
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ compact: boolean;
11
+ steps: SpreadsheetSteps;
12
+ orientation: "horizontal" | "vertical";
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -0,0 +1,131 @@
1
+ <script setup>
2
+ import UIcon from "@nuxt/ui/components/Icon.vue";
3
+ import { computed } from "vue";
4
+ import { useUiToolsLocale } from "#ui-tools/i18n";
5
+ import { resolveTextValue } from "#ui-tools/shared/utils/render";
6
+ import { useSpreadsheetStepsContext } from "../../composables/use-spreadsheet-import-context";
7
+ const props = defineProps({
8
+ steps: { type: Object, required: false, default: void 0 },
9
+ orientation: { type: String, required: false, default: "horizontal" },
10
+ compact: { type: Boolean, required: false, default: false }
11
+ });
12
+ const steps = useSpreadsheetStepsContext(() => props.steps);
13
+ const { t } = useUiToolsLocale();
14
+ const entries = computed(
15
+ () => (steps.value?.list ?? []).map((step) => ({
16
+ ...step,
17
+ hintText: resolveTextValue(
18
+ step.hint,
19
+ step.builtIn ? t(`spreadsheet.stepHints.${step.builtIn}`) : ""
20
+ ),
21
+ labelText: resolveTextValue(
22
+ step.label,
23
+ step.builtIn ? t(`spreadsheet.steps.${step.builtIn}`) : step.key
24
+ )
25
+ }))
26
+ );
27
+ function open(step) {
28
+ if (step.state === "done") steps.value?.goTo(step.key);
29
+ }
30
+ function markerClass(state) {
31
+ return {
32
+ current: "border-primary bg-primary text-[var(--nut-sheet-accent-fg,var(--ui-text-inverted))]",
33
+ done: "border-inverted bg-inverted text-inverted",
34
+ skipped: "border-transparent bg-accented text-muted",
35
+ upcoming: "border-accented bg-default text-muted"
36
+ }[state];
37
+ }
38
+ </script>
39
+
40
+ <template>
41
+ <ol
42
+ v-if="orientation === 'vertical'"
43
+ data-spreadsheet-stepper="vertical"
44
+ class="flex gap-1 overflow-x-auto lg:flex-col lg:gap-0.5 lg:overflow-visible"
45
+ >
46
+ <li v-for="entry in entries" :key="entry.key" class="shrink-0 lg:shrink">
47
+ <button
48
+ type="button"
49
+ class="flex w-full items-start gap-3 rounded-lg p-2.5 text-start transition-colors"
50
+ :class="[
51
+ entry.state === 'current' ? 'bg-default shadow-xs ring-1 ring-default' : '',
52
+ entry.state === 'done' ? 'cursor-pointer hover:bg-default/60' : 'cursor-default',
53
+ compact ? 'lg:justify-center' : ''
54
+ ]"
55
+ :aria-current="entry.state === 'current' ? 'step' : void 0"
56
+ :tabindex="entry.state === 'done' ? 0 : -1"
57
+ :title="compact ? entry.labelText : void 0"
58
+ @click="open(entry)"
59
+ >
60
+ <span
61
+ class="grid size-6 shrink-0 place-items-center rounded-full border-[1.5px] text-[11.5px] font-semibold tabular-nums"
62
+ :class="markerClass(entry.state)"
63
+ >
64
+ <UIcon
65
+ v-if="entry.state === 'done' || entry.state === 'skipped'"
66
+ name="i-lucide-check"
67
+ class="size-3"
68
+ />
69
+ <template v-else>{{ entry.position }}</template>
70
+ </span>
71
+ <span class="grid min-w-0 gap-px pt-0.5" :class="compact ? 'lg:sr-only' : ''">
72
+ <span
73
+ class="flex items-baseline gap-1.5 text-[13.5px] leading-5 whitespace-nowrap"
74
+ :class="{
75
+ 'font-semibold text-highlighted': entry.state === 'current',
76
+ 'font-medium text-toned': entry.state === 'done',
77
+ 'font-medium text-muted': entry.state === 'upcoming' || entry.state === 'skipped'
78
+ }"
79
+ >
80
+ {{ entry.labelText }}
81
+ <small v-if="entry.skipped" class="text-[11px] font-normal text-dimmed">{{
82
+ t("spreadsheet.steps.auto")
83
+ }}</small>
84
+ </span>
85
+ <span v-if="entry.hintText" class="hidden text-xs leading-4 text-dimmed lg:block">{{
86
+ entry.hintText
87
+ }}</span>
88
+ </span>
89
+ </button>
90
+ </li>
91
+ </ol>
92
+ <ol v-else data-spreadsheet-stepper="horizontal" class="flex border-b border-default">
93
+ <li
94
+ v-for="entry in entries"
95
+ :key="entry.key"
96
+ class="min-w-0 flex-1"
97
+ :class="entry.state === 'current' ? 'max-sm:flex-[3]' : ''"
98
+ >
99
+ <button
100
+ type="button"
101
+ class="relative flex w-full items-center gap-2 pb-3 text-start text-sm"
102
+ :class="[
103
+ entry.state === 'current' ? 'font-semibold text-highlighted' : 'text-muted',
104
+ entry.state === 'done' ? 'cursor-pointer text-toned hover:text-highlighted' : 'cursor-default'
105
+ ]"
106
+ :aria-current="entry.state === 'current' ? 'step' : void 0"
107
+ :tabindex="entry.state === 'done' ? 0 : -1"
108
+ @click="open(entry)"
109
+ >
110
+ <span
111
+ class="grid size-[22px] shrink-0 place-items-center rounded-full border-[1.5px] text-[11px] font-semibold tabular-nums"
112
+ :class="markerClass(entry.state)"
113
+ >
114
+ <UIcon
115
+ v-if="entry.state === 'done' || entry.state === 'skipped'"
116
+ name="i-lucide-check"
117
+ class="size-3"
118
+ />
119
+ <template v-else>{{ entry.position }}</template>
120
+ </span>
121
+ <span class="truncate" :class="entry.state === 'current' ? 'inline' : 'hidden sm:inline'">{{
122
+ entry.labelText
123
+ }}</span>
124
+ <span
125
+ v-if="entry.state === 'current'"
126
+ class="absolute inset-x-0 -bottom-px h-0.5 rounded-full bg-primary"
127
+ />
128
+ </button>
129
+ </li>
130
+ </ol>
131
+ </template>
@@ -0,0 +1,15 @@
1
+ import type { SpreadsheetSteps } from '../../types/index.js';
2
+ type __VLS_Props = {
3
+ steps?: SpreadsheetSteps;
4
+ /** `vertical` lists steps with their hints from `lg` up, and a row of steps below. */
5
+ orientation?: 'horizontal' | 'vertical';
6
+ /** Vertical only: numbers without labels, for a narrow rail. */
7
+ compact?: boolean;
8
+ };
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ compact: boolean;
11
+ steps: SpreadsheetSteps;
12
+ orientation: "horizontal" | "vertical";
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
@@ -1 +1,3 @@
1
1
  export * from './use-spreadsheet-import.js';
2
+ export * from './use-spreadsheet-steps.js';
3
+ export * from './use-spreadsheet-import-context.js';
@@ -1 +1,3 @@
1
1
  export * from "./use-spreadsheet-import.js";
2
+ export * from "./use-spreadsheet-steps.js";
3
+ export * from "./use-spreadsheet-import-context.js";
@@ -0,0 +1,8 @@
1
+ import type { SpreadsheetValueAnswer } from '../types/index.js';
2
+ /** Answers given by the user to values that match no option, by field and normalized value. */
3
+ export declare function useSpreadsheetAnswers(): {
4
+ answers: import("vue").ShallowRef<Readonly<Record<string, Readonly<Record<string, SpreadsheetValueAnswer>>>>, Readonly<Record<string, Readonly<Record<string, SpreadsheetValueAnswer>>>>>;
5
+ clear: () => void;
6
+ remove: (field: string, key: string) => void;
7
+ set: (field: string, key: string, answer: SpreadsheetValueAnswer) => void;
8
+ };
@@ -0,0 +1,19 @@
1
+ import { shallowRef } from "vue";
2
+ export function useSpreadsheetAnswers() {
3
+ const answers = shallowRef({});
4
+ function set(field, key, answer) {
5
+ answers.value = { ...answers.value, [field]: { ...answers.value[field], [key]: answer } };
6
+ }
7
+ function remove(field, key) {
8
+ const current = answers.value[field];
9
+ if (!current || !(key in current)) return;
10
+ answers.value = {
11
+ ...answers.value,
12
+ [field]: Object.fromEntries(Object.entries(current).filter(([entry]) => entry !== key))
13
+ };
14
+ }
15
+ function clear() {
16
+ answers.value = {};
17
+ }
18
+ return { answers, clear, remove, set };
19
+ }
@@ -0,0 +1,23 @@
1
+ import type { SpreadsheetFieldState } from '../types/index.js';
2
+ import type { useSpreadsheetContext } from './use-spreadsheet-context.js';
3
+ import type { useSpreadsheetFields } from './use-spreadsheet-fields.js';
4
+ import type { useSpreadsheetLayout } from './use-spreadsheet-layout.js';
5
+ export interface UseSpreadsheetColumnsParams {
6
+ fields: ReturnType<typeof useSpreadsheetFields>;
7
+ layout: ReturnType<typeof useSpreadsheetLayout>;
8
+ context: ReturnType<typeof useSpreadsheetContext>;
9
+ }
10
+ /**
11
+ * Which column each field reads. Headers name fields exactly; the user can choose another column
12
+ * or none. Choices are kept while the header texts stay the same.
13
+ */
14
+ export declare function useSpreadsheetColumns(params: UseSpreadsheetColumnsParams): {
15
+ assign: (field: string, header: number) => void;
16
+ clear: () => void;
17
+ ignore: (field: string) => void;
18
+ manual: import("vue").ShallowRef<Readonly<Record<string, number | null>>, Readonly<Record<string, number | null>>>;
19
+ matches: import("vue").ComputedRef<Map<string, number>>;
20
+ reset: (field: string) => void;
21
+ states: import("vue").ComputedRef<SpreadsheetFieldState<string>[]>;
22
+ unusedHeaders: import("vue").ComputedRef<import("..").SpreadsheetHeaderCell[]>;
23
+ };
@@ -0,0 +1,75 @@
1
+ import { computed, shallowRef, watch } from "vue";
2
+ import { matchSpreadsheetHeaders } from "../utils/index.js";
3
+ export function useSpreadsheetColumns(params) {
4
+ const manual = shallowRef({});
5
+ const headerSignature = computed(
6
+ () => params.layout.headers.value.map((header) => header.normalized).join("|")
7
+ );
8
+ watch(headerSignature, () => {
9
+ manual.value = {};
10
+ });
11
+ const matches = computed(
12
+ () => matchSpreadsheetHeaders({
13
+ ctx: params.context.ctx.value,
14
+ fields: params.fields.columnFields.value,
15
+ headers: params.layout.headers.value,
16
+ manual: manual.value
17
+ })
18
+ );
19
+ function samplesOf(column) {
20
+ const values = [];
21
+ for (const row of params.layout.dataRows.value) {
22
+ const text = String(row[column] ?? "").trim();
23
+ if (text && !values.includes(text)) values.push(text);
24
+ if (values.length === 3) break;
25
+ }
26
+ return values;
27
+ }
28
+ const states = computed(
29
+ () => params.fields.fields.value.map((field) => {
30
+ const from = field.select?.from ?? null;
31
+ const column = from ? matches.value.get(from) : matches.value.get(field.path);
32
+ const header = column === void 0 ? null : params.layout.headers.value[column] ?? null;
33
+ const status = header !== null ? "matched" : field.hasDefault ? "default" : field.required ? "missing" : "unmatched";
34
+ return {
35
+ assignedBy: header === null ? null : field.path in manual.value ? "user" : "file",
36
+ description: field.description,
37
+ example: field.example,
38
+ from,
39
+ group: field.group,
40
+ header,
41
+ kind: field.kind,
42
+ label: field.label,
43
+ name: field.name,
44
+ path: field.path,
45
+ required: field.required,
46
+ samples: column === void 0 ? [] : samplesOf(column),
47
+ status,
48
+ suggestion: null
49
+ };
50
+ })
51
+ );
52
+ const unusedHeaders = computed(() => {
53
+ const used = new Set(matches.value.values());
54
+ return params.layout.headers.value.filter((header) => header.text && !used.has(header.index));
55
+ });
56
+ function assign(field, header) {
57
+ const next = {};
58
+ for (const [path, index] of Object.entries(manual.value))
59
+ if (index !== header) next[path] = index;
60
+ next[field] = header;
61
+ manual.value = next;
62
+ }
63
+ function ignore(field) {
64
+ manual.value = { ...manual.value, [field]: null };
65
+ }
66
+ function reset(field) {
67
+ manual.value = Object.fromEntries(
68
+ Object.entries(manual.value).filter(([path]) => path !== field)
69
+ );
70
+ }
71
+ function clear() {
72
+ manual.value = {};
73
+ }
74
+ return { assign, clear, ignore, manual, matches, reset, states, unusedHeaders };
75
+ }
@@ -1,49 +1,12 @@
1
- import type { ComputedRef } from 'vue';
2
- import type { SpreadsheetNormalizedSchema } from '../types/index.js';
1
+ import type { MaybeRefOrGetter } from 'vue';
3
2
  export interface UseSpreadsheetContextParams {
4
- schema: ComputedRef<SpreadsheetNormalizedSchema>;
3
+ /** Entries of `options.context`: values, refs, getters, or queries. */
4
+ input: MaybeRefOrGetter<Readonly<Record<string, unknown>> | undefined>;
5
5
  }
6
+ /** The context passed to every schema callback: plain entries as they are, queries once loaded. */
6
7
  export declare function useSpreadsheetContext(params: UseSpreadsheetContextParams): {
7
- context: Readonly<import("vue").Ref<{
8
- key: string;
9
- data?: unknown;
10
- error?: unknown;
11
- isPending?: boolean;
12
- isFetching?: boolean;
13
- isSuccess?: boolean;
14
- isRefetching?: boolean;
15
- refetch: () => Promise<import("../types/index.js").SpreadsheetValue>;
16
- }[], {
17
- key: string;
18
- data?: unknown;
19
- error?: unknown;
20
- isPending?: boolean;
21
- isFetching?: boolean;
22
- isSuccess?: boolean;
23
- isRefetching?: boolean;
24
- refetch: () => Promise<import("../types/index.js").SpreadsheetValue>;
25
- }[]>>;
26
- contextData: ComputedRef<Partial<{
27
- [x: string]: unknown;
28
- }>>;
29
- contextItems: ComputedRef<readonly import("../types/index.js").SpreadsheetContextItem<string, unknown>[]>;
30
- contextResults: ComputedRef<{
31
- key: string;
32
- data?: unknown;
33
- error?: unknown;
34
- isPending?: boolean;
35
- isFetching?: boolean;
36
- isSuccess?: boolean;
37
- isRefetching?: boolean;
38
- refetch: () => Promise<import("../types/index.js").SpreadsheetValue>;
39
- }[]>;
40
- error: ComputedRef<unknown>;
41
- refreshContext: () => Promise<unknown[]>;
42
- status: ComputedRef<{
43
- initialized: boolean;
44
- isFetching: boolean;
45
- isPending: boolean;
46
- isReady: boolean;
47
- isRefreshing: boolean;
48
- }>;
8
+ ctx: import("vue").ComputedRef<Record<string, unknown>>;
9
+ error: import("vue").ComputedRef<Error | null>;
10
+ loading: import("vue").ComputedRef<boolean>;
11
+ ready: import("vue").ComputedRef<boolean>;
49
12
  };
@@ -1,35 +1,31 @@
1
- import { useQueries } from "@tanstack/vue-query";
2
- import { computed } from "vue";
3
- import {
4
- createSpreadsheetContextData,
5
- createSpreadsheetContextQueries,
6
- createSpreadsheetContextStatus
7
- } from "../utils/index.js";
1
+ import { computed, toValue } from "vue";
2
+ import { isSpreadsheetQueryDefinition } from "../utils/index.js";
3
+ import { useSpreadsheetQueries } from "./use-spreadsheet-queries.js";
8
4
  export function useSpreadsheetContext(params) {
9
- const contextItems = computed(() => params.schema.value.context);
10
- const context = useQueries({
11
- combine: (results) => results.map((result, index) => ({
12
- key: contextItems.value[index]?.key,
13
- ...result
14
- })),
15
- queries: () => createSpreadsheetContextQueries(contextItems.value)
16
- });
17
- const contextResults = computed(() => context.value);
18
- const contextData = computed(
19
- () => createSpreadsheetContextData(contextItems.value, contextResults.value)
5
+ const entries = computed(
6
+ () => Object.entries(toValue(params.input) ?? {}).map(([key, entry]) => {
7
+ const resolved = toValue(entry);
8
+ return isSpreadsheetQueryDefinition(resolved) ? { key, kind: "query", query: resolved } : { key, kind: "value", value: resolved };
9
+ })
10
+ );
11
+ const queries = computed(
12
+ () => entries.value.flatMap((entry) => entry.kind === "query" ? [entry.query] : [])
20
13
  );
21
- const status = computed(() => createSpreadsheetContextStatus(contextResults.value));
22
- const error = computed(() => contextResults.value.find((result) => result.error)?.error);
23
- function refreshContext() {
24
- return Promise.all(contextResults.value.map((result) => result.refetch()));
25
- }
26
- return {
27
- context,
28
- contextData,
29
- contextItems,
30
- contextResults,
31
- error,
32
- refreshContext,
33
- status
34
- };
14
+ const results = useSpreadsheetQueries(() => queries.value);
15
+ const ctx = computed(() => {
16
+ let queryIndex = 0;
17
+ const data = {};
18
+ for (const entry of entries.value) {
19
+ if (entry.kind === "value") data[entry.key] = entry.value;
20
+ else {
21
+ data[entry.key] = results.value[queryIndex]?.data;
22
+ queryIndex += 1;
23
+ }
24
+ }
25
+ return data;
26
+ });
27
+ const loading = computed(() => results.value.some((result) => result.pending));
28
+ const error = computed(() => results.value.find((result) => result.error)?.error ?? null);
29
+ const ready = computed(() => !loading.value && !error.value);
30
+ return { ctx, error, loading, ready };
35
31
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Cell edits made in review, by row and field. An edit replaces the cell text and goes through the
3
+ * same parsing, options, and rules as the file.
4
+ */
5
+ export declare function useSpreadsheetEdits(): {
6
+ clear: () => void;
7
+ count: import("vue").ComputedRef<number>;
8
+ edits: import("vue").ShallowRef<ReadonlyMap<number, Readonly<Record<string, string>>>, ReadonlyMap<number, Readonly<Record<string, string>>>>;
9
+ revert: (index: number, field: string) => void;
10
+ set: (index: number, field: string, text: string) => void;
11
+ };
@@ -0,0 +1,25 @@
1
+ import { computed, shallowRef } from "vue";
2
+ export function useSpreadsheetEdits() {
3
+ const edits = shallowRef(/* @__PURE__ */ new Map());
4
+ function set(index, field, text) {
5
+ const next = new Map(edits.value);
6
+ next.set(index, { ...next.get(index), [field]: text });
7
+ edits.value = next;
8
+ }
9
+ function revert(index, field) {
10
+ const current = edits.value.get(index);
11
+ if (!current || !(field in current)) return;
12
+ const next = new Map(edits.value);
13
+ const rest = Object.fromEntries(Object.entries(current).filter(([key]) => key !== field));
14
+ if (Object.keys(rest).length) next.set(index, rest);
15
+ else next.delete(index);
16
+ edits.value = next;
17
+ }
18
+ function clear() {
19
+ edits.value = /* @__PURE__ */ new Map();
20
+ }
21
+ const count = computed(
22
+ () => [...edits.value.values()].reduce((total, fields) => total + Object.keys(fields).length, 0)
23
+ );
24
+ return { clear, count, edits, revert, set };
25
+ }
@@ -0,0 +1,16 @@
1
+ import type { ComputedRef } from 'vue';
2
+ import type { UiToolsTranslator } from '#ui-tools/i18n';
3
+ import type { SpreadsheetRuntimeSchema } from '../types/index.js';
4
+ import type { useSpreadsheetContext } from './use-spreadsheet-context.js';
5
+ export interface UseSpreadsheetFieldsParams {
6
+ schema: ComputedRef<SpreadsheetRuntimeSchema>;
7
+ context: ReturnType<typeof useSpreadsheetContext>;
8
+ t: UiToolsTranslator;
9
+ }
10
+ /** The schema's columns resolved for the current context, once the context is loaded. */
11
+ export declare function useSpreadsheetFields(params: UseSpreadsheetFieldsParams): {
12
+ byPath: ComputedRef<Map<string, import("..").SpreadsheetField>>;
13
+ columnFields: ComputedRef<import("..").SpreadsheetField[]>;
14
+ fields: ComputedRef<import("..").SpreadsheetField[]>;
15
+ groups: ComputedRef<import("..").SpreadsheetFieldGroup[]>;
16
+ };
@@ -0,0 +1,20 @@
1
+ import { computed } from "vue";
2
+ import { createSpreadsheetColumnsBuilder } from "../schema/builder.js";
3
+ import { resolveSpreadsheetFields } from "../utils/index.js";
4
+ export function useSpreadsheetFields(params) {
5
+ const builder = createSpreadsheetColumnsBuilder();
6
+ const entries = computed(() => params.schema.value.columns(builder)["~entries"]);
7
+ const resolved = computed(() => {
8
+ if (!params.context.ready.value) return { fields: [], groups: [] };
9
+ return resolveSpreadsheetFields({
10
+ ctx: params.context.ctx.value,
11
+ entries: entries.value,
12
+ t: params.t
13
+ });
14
+ });
15
+ const fields = computed(() => resolved.value.fields);
16
+ const groups = computed(() => resolved.value.groups);
17
+ const byPath = computed(() => new Map(fields.value.map((field) => [field.path, field])));
18
+ const columnFields = computed(() => fields.value.filter((field) => !field.select?.from));
19
+ return { byPath, columnFields, fields, groups };
20
+ }
@@ -0,0 +1,14 @@
1
+ import type { SpreadsheetFileSource, SpreadsheetWorkbook } from '../types/index.js';
2
+ /** The file being imported: reading, errors, and its sheets. */
3
+ export declare function useSpreadsheetFile(): {
4
+ clear: () => void;
5
+ error: import("vue").ShallowRef<unknown, unknown>;
6
+ load: (source: SpreadsheetFileSource, name?: string) => Promise<void>;
7
+ paste: (text: string, name?: string) => void;
8
+ reading: import("vue").ShallowRef<boolean, boolean>;
9
+ sheets: import("vue").ComputedRef<{
10
+ name: string;
11
+ rowCount: number;
12
+ }[]>;
13
+ workbook: import("vue").ShallowRef<SpreadsheetWorkbook | null, SpreadsheetWorkbook | null>;
14
+ };