nuxt-ui-tools 1.12.0 → 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 (321) 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/i18n/locales/en.js +251 -130
  9. package/dist/runtime/i18n/locales/fr.js +251 -130
  10. package/dist/runtime/i18n/types.d.ts +241 -119
  11. package/dist/runtime/shared/types/remote-options.d.ts +11 -0
  12. package/dist/runtime/shared/utils/define-remote-options.js +6 -0
  13. package/dist/runtime/shared/utils/file.d.ts +1 -1
  14. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.d.vue.ts → internal/spreadsheet-import-cell-editor.d.vue.ts} +8 -5
  15. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-cell-editor.vue +73 -0
  16. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.vue.d.ts → internal/spreadsheet-import-cell-editor.vue.d.ts} +8 -5
  17. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.d.vue.ts +17 -0
  18. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue +98 -0
  19. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue.d.ts +17 -0
  20. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.d.vue.ts +17 -0
  21. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue +20 -0
  22. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue.d.ts +17 -0
  23. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.d.vue.ts +10 -0
  24. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue +34 -0
  25. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue.d.ts +10 -0
  26. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.d.vue.ts +13 -0
  27. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue +113 -0
  28. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue.d.ts +13 -0
  29. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.d.vue.ts +35 -0
  30. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue +154 -0
  31. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue.d.ts +35 -0
  32. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.d.vue.ts +23 -0
  33. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue +83 -0
  34. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue.d.ts +23 -0
  35. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.d.vue.ts +19 -0
  36. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue +45 -0
  37. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue.d.ts +19 -0
  38. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.d.vue.ts → parts/spreadsheet-import-export-button.d.vue.ts} +3 -2
  39. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-export-button.vue +34 -0
  40. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.vue.d.ts → parts/spreadsheet-import-export-button.vue.d.ts} +3 -4
  41. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.d.vue.ts +17 -0
  42. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue +49 -0
  43. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue.d.ts +17 -0
  44. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.d.vue.ts +18 -0
  45. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue +101 -0
  46. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue.d.ts +18 -0
  47. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.d.vue.ts +22 -0
  48. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue +276 -0
  49. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue.d.ts +22 -0
  50. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.d.vue.ts +11 -0
  51. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue +164 -0
  52. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue.d.ts +11 -0
  53. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.d.vue.ts → parts/spreadsheet-import-stat.d.vue.ts} +7 -4
  54. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stat.vue +30 -0
  55. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.vue.d.ts → parts/spreadsheet-import-stat.vue.d.ts} +7 -4
  56. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.d.vue.ts +26 -0
  57. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue +55 -0
  58. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue.d.ts +26 -0
  59. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.vue.d.ts → parts/spreadsheet-import-submit-button.d.vue.ts} +3 -2
  60. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue +27 -0
  61. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue.d.ts +8 -0
  62. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.d.vue.ts +16 -0
  63. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue +51 -0
  64. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue.d.ts +16 -0
  65. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.d.vue.ts → parts/spreadsheet-import-table-toolbar.d.vue.ts} +2 -4
  66. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table-toolbar.vue +217 -0
  67. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-raw-preview-table.d.vue.ts → parts/spreadsheet-import-table-toolbar.vue.d.ts} +2 -2
  68. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.d.vue.ts +33 -0
  69. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue +302 -0
  70. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue.d.ts +33 -0
  71. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.d.vue.ts → parts/spreadsheet-import-template-button.d.vue.ts} +5 -4
  72. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-template-button.vue +31 -0
  73. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.vue.d.ts → parts/spreadsheet-import-template-button.vue.d.ts} +5 -4
  74. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.d.vue.ts +27 -0
  75. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue +162 -0
  76. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue.d.ts +27 -0
  77. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.d.vue.ts +24 -0
  78. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue +23 -0
  79. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue.d.ts +24 -0
  80. package/dist/runtime/spreadsheet/components/spreadsheet-import.d.vue.ts +21 -6
  81. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue +46 -262
  82. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue.d.ts +21 -6
  83. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.d.vue.ts → steps/spreadsheet-import-step-nav.d.vue.ts} +6 -2
  84. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step-nav.vue +116 -0
  85. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.vue.d.ts → steps/spreadsheet-import-step-nav.vue.d.ts} +6 -2
  86. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.d.vue.ts +26 -0
  87. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue +106 -0
  88. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue.d.ts +26 -0
  89. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.d.vue.ts +15 -0
  90. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue +131 -0
  91. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue.d.ts +15 -0
  92. package/dist/runtime/spreadsheet/composables/index.d.ts +2 -0
  93. package/dist/runtime/spreadsheet/composables/index.js +2 -0
  94. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.d.ts +8 -0
  95. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.js +19 -0
  96. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.d.ts +23 -0
  97. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.js +75 -0
  98. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +8 -45
  99. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +28 -32
  100. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.d.ts +11 -0
  101. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.js +25 -0
  102. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.d.ts +16 -0
  103. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.js +20 -0
  104. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.d.ts +14 -0
  105. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.js +44 -0
  106. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.d.ts +12 -0
  107. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.js +22 -0
  108. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +18 -7
  109. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +340 -109
  110. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.d.ts +36 -0
  111. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.js +95 -0
  112. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.d.ts +24 -0
  113. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.js +159 -0
  114. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.d.ts +14 -0
  115. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.js +11 -0
  116. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +37 -169
  117. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +148 -408
  118. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +48 -26
  119. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +334 -21
  120. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.d.ts +33 -0
  121. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.js +126 -0
  122. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.d.ts +37 -0
  123. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.js +136 -0
  124. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.d.ts +27 -0
  125. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.js +121 -0
  126. package/dist/runtime/spreadsheet/index.d.ts +0 -1
  127. package/dist/runtime/spreadsheet/index.js +0 -1
  128. package/dist/runtime/spreadsheet/schema/builder.d.ts +8 -0
  129. package/dist/runtime/spreadsheet/schema/builder.js +31 -0
  130. package/dist/runtime/spreadsheet/schema/index.d.ts +24 -32
  131. package/dist/runtime/spreadsheet/schema/index.js +4 -21
  132. package/dist/runtime/spreadsheet/types/columns.d.ts +252 -273
  133. package/dist/runtime/spreadsheet/types/fields.d.ts +64 -0
  134. package/dist/runtime/spreadsheet/types/importer.d.ts +308 -0
  135. package/dist/runtime/spreadsheet/types/index.d.ts +6 -10
  136. package/dist/runtime/spreadsheet/types/options.d.ts +47 -9
  137. package/dist/runtime/spreadsheet/types/rows.d.ts +57 -48
  138. package/dist/runtime/spreadsheet/types/schema.d.ts +162 -76
  139. package/dist/runtime/spreadsheet/types/shared.d.ts +19 -21
  140. package/dist/runtime/spreadsheet/types/source.d.ts +39 -15
  141. package/dist/runtime/spreadsheet/types/steps.d.ts +76 -0
  142. package/dist/runtime/spreadsheet/types/validation.d.ts +49 -69
  143. package/dist/runtime/spreadsheet/types/values.d.ts +77 -0
  144. package/dist/runtime/spreadsheet/utils/download.d.ts +2 -0
  145. package/dist/runtime/spreadsheet/utils/download.js +8 -0
  146. package/dist/runtime/spreadsheet/utils/export.d.ts +26 -0
  147. package/dist/runtime/spreadsheet/utils/export.js +50 -0
  148. package/dist/runtime/spreadsheet/utils/fields.d.ts +26 -0
  149. package/dist/runtime/spreadsheet/utils/fields.js +169 -0
  150. package/dist/runtime/spreadsheet/utils/guards.d.ts +18 -0
  151. package/dist/runtime/spreadsheet/utils/guards.js +27 -0
  152. package/dist/runtime/spreadsheet/utils/headers.d.ts +15 -0
  153. package/dist/runtime/spreadsheet/utils/headers.js +36 -0
  154. package/dist/runtime/spreadsheet/utils/identity.d.ts +24 -0
  155. package/dist/runtime/spreadsheet/utils/identity.js +57 -0
  156. package/dist/runtime/spreadsheet/utils/index.d.ts +15 -6
  157. package/dist/runtime/spreadsheet/utils/index.js +15 -6
  158. package/dist/runtime/spreadsheet/utils/layout.d.ts +12 -0
  159. package/dist/runtime/spreadsheet/utils/layout.js +37 -0
  160. package/dist/runtime/spreadsheet/utils/options.d.ts +31 -10
  161. package/dist/runtime/spreadsheet/utils/options.js +58 -30
  162. package/dist/runtime/spreadsheet/utils/parse.d.ts +6 -0
  163. package/dist/runtime/spreadsheet/utils/parse.js +147 -0
  164. package/dist/runtime/spreadsheet/utils/paths.d.ts +4 -0
  165. package/dist/runtime/spreadsheet/utils/paths.js +29 -0
  166. package/dist/runtime/spreadsheet/utils/rows.d.ts +69 -0
  167. package/dist/runtime/spreadsheet/utils/rows.js +168 -0
  168. package/dist/runtime/spreadsheet/utils/rules.d.ts +4 -0
  169. package/dist/runtime/spreadsheet/utils/rules.js +95 -0
  170. package/dist/runtime/spreadsheet/utils/suggestions.d.ts +20 -0
  171. package/dist/runtime/spreadsheet/utils/suggestions.js +43 -0
  172. package/dist/runtime/spreadsheet/utils/text.d.ts +9 -0
  173. package/dist/runtime/spreadsheet/utils/text.js +11 -0
  174. package/dist/runtime/spreadsheet/utils/workbook.d.ts +13 -0
  175. package/dist/runtime/spreadsheet/utils/workbook.js +121 -0
  176. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.d.vue.ts +2 -2
  177. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.vue.d.ts +2 -2
  178. package/dist/runtime/table/components/filters/tags/date-filter-tag.d.vue.ts +2 -2
  179. package/dist/runtime/table/components/filters/tags/date-filter-tag.vue.d.ts +2 -2
  180. package/dist/runtime/table/components/filters/tags/number-filter-tag.d.vue.ts +2 -2
  181. package/dist/runtime/table/components/filters/tags/number-filter-tag.vue.d.ts +2 -2
  182. package/dist/runtime/table/components/filters/tags/option-filter-tag.d.vue.ts +2 -2
  183. package/dist/runtime/table/components/filters/tags/option-filter-tag.vue.d.ts +2 -2
  184. package/dist/runtime/table/components/filters/tags/text-filter-tag.d.vue.ts +2 -2
  185. package/dist/runtime/table/components/filters/tags/text-filter-tag.vue.d.ts +2 -2
  186. package/dist/runtime/table/components/table/table-cell-ellipsis.d.ts +1 -1
  187. package/dist/runtime/table/utils/data-list-ui.d.ts +1 -1
  188. package/package.json +18 -3
  189. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-file-bar.vue +0 -31
  190. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.d.vue.ts +0 -24
  191. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue +0 -69
  192. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue.d.ts +0 -24
  193. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-header.vue +0 -36
  194. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-sidebar.vue +0 -63
  195. package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue +0 -67
  196. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue +0 -41
  197. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue.d.ts +0 -7
  198. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.d.vue.ts +0 -10
  199. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue +0 -25
  200. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue.d.ts +0 -10
  201. package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue +0 -201
  202. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.d.vue.ts +0 -11
  203. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue +0 -38
  204. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue.d.ts +0 -11
  205. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.d.vue.ts +0 -45
  206. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue +0 -219
  207. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue.d.ts +0 -45
  208. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.d.vue.ts +0 -51
  209. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue +0 -166
  210. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue.d.ts +0 -51
  211. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.d.vue.ts +0 -11
  212. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue +0 -26
  213. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue.d.ts +0 -11
  214. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.d.vue.ts +0 -41
  215. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue +0 -392
  216. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue.d.ts +0 -41
  217. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-overflow-alert.vue +0 -43
  218. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.d.vue.ts +0 -15
  219. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue +0 -40
  220. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue.d.ts +0 -15
  221. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.d.vue.ts +0 -7
  222. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue +0 -137
  223. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue.d.ts +0 -7
  224. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.d.vue.ts +0 -7
  225. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue +0 -222
  226. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue.d.ts +0 -7
  227. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.d.vue.ts +0 -7
  228. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue +0 -191
  229. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue.d.ts +0 -7
  230. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.d.vue.ts +0 -7
  231. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue +0 -62
  232. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue.d.ts +0 -7
  233. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.d.vue.ts +0 -8
  234. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue +0 -81
  235. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue.d.ts +0 -8
  236. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.d.vue.ts +0 -15
  237. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue +0 -95
  238. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue.d.ts +0 -15
  239. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.d.vue.ts +0 -15
  240. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue +0 -56
  241. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue.d.ts +0 -15
  242. package/dist/runtime/spreadsheet/components/types.d.ts +0 -41
  243. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +0 -18
  244. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +0 -62
  245. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +0 -629
  246. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +0 -68
  247. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.d.ts +0 -1
  248. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.js +0 -3
  249. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +0 -40
  250. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +0 -97
  251. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +0 -24
  252. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +0 -74
  253. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +0 -27
  254. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +0 -109
  255. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +0 -15
  256. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +0 -109
  257. package/dist/runtime/spreadsheet/schema/normalize.d.ts +0 -73
  258. package/dist/runtime/spreadsheet/schema/normalize.js +0 -136
  259. package/dist/runtime/spreadsheet/types/context.d.ts +0 -9
  260. package/dist/runtime/spreadsheet/types/import.d.ts +0 -55
  261. package/dist/runtime/spreadsheet/types/inference.d.ts +0 -83
  262. package/dist/runtime/spreadsheet/types/normalized.d.ts +0 -50
  263. package/dist/runtime/spreadsheet/types/normalized.js +0 -0
  264. package/dist/runtime/spreadsheet/types/pipeline.d.ts +0 -7
  265. package/dist/runtime/spreadsheet/types/pipeline.js +0 -0
  266. package/dist/runtime/spreadsheet/types/reference-session.d.ts +0 -43
  267. package/dist/runtime/spreadsheet/types/reference-session.js +0 -0
  268. package/dist/runtime/spreadsheet/types/references.d.ts +0 -32
  269. package/dist/runtime/spreadsheet/types/references.js +0 -0
  270. package/dist/runtime/spreadsheet/types/resolution.d.ts +0 -43
  271. package/dist/runtime/spreadsheet/types/resolution.js +0 -0
  272. package/dist/runtime/spreadsheet/utils/builders/core.d.ts +0 -17
  273. package/dist/runtime/spreadsheet/utils/builders/core.js +0 -262
  274. package/dist/runtime/spreadsheet/utils/builders/index.d.ts +0 -1
  275. package/dist/runtime/spreadsheet/utils/builders/index.js +0 -1
  276. package/dist/runtime/spreadsheet/utils/context.d.ts +0 -20
  277. package/dist/runtime/spreadsheet/utils/context.js +0 -25
  278. package/dist/runtime/spreadsheet/utils/display.d.ts +0 -6
  279. package/dist/runtime/spreadsheet/utils/display.js +0 -26
  280. package/dist/runtime/spreadsheet/utils/object.d.ts +0 -9
  281. package/dist/runtime/spreadsheet/utils/object.js +0 -78
  282. package/dist/runtime/spreadsheet/utils/references/candidates.d.ts +0 -6
  283. package/dist/runtime/spreadsheet/utils/references/candidates.js +0 -28
  284. package/dist/runtime/spreadsheet/utils/references/core.d.ts +0 -3
  285. package/dist/runtime/spreadsheet/utils/references/core.js +0 -3
  286. package/dist/runtime/spreadsheet/utils/references/guards.d.ts +0 -4
  287. package/dist/runtime/spreadsheet/utils/references/guards.js +0 -28
  288. package/dist/runtime/spreadsheet/utils/references/index.d.ts +0 -1
  289. package/dist/runtime/spreadsheet/utils/references/index.js +0 -1
  290. package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +0 -17
  291. package/dist/runtime/spreadsheet/utils/references/resolutions.js +0 -172
  292. package/dist/runtime/spreadsheet/utils/references/shared.d.ts +0 -3
  293. package/dist/runtime/spreadsheet/utils/references/shared.js +0 -26
  294. package/dist/runtime/spreadsheet/utils/references/sources.d.ts +0 -9
  295. package/dist/runtime/spreadsheet/utils/references/sources.js +0 -38
  296. package/dist/runtime/spreadsheet/utils/rows/core.d.ts +0 -4
  297. package/dist/runtime/spreadsheet/utils/rows/core.js +0 -4
  298. package/dist/runtime/spreadsheet/utils/rows/headers.d.ts +0 -2
  299. package/dist/runtime/spreadsheet/utils/rows/headers.js +0 -9
  300. package/dist/runtime/spreadsheet/utils/rows/index.d.ts +0 -1
  301. package/dist/runtime/spreadsheet/utils/rows/index.js +0 -1
  302. package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +0 -5
  303. package/dist/runtime/spreadsheet/utils/rows/matching.js +0 -209
  304. package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +0 -7
  305. package/dist/runtime/spreadsheet/utils/rows/parsing.js +0 -209
  306. package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +0 -17
  307. package/dist/runtime/spreadsheet/utils/rows/shared.js +0 -309
  308. package/dist/runtime/spreadsheet/utils/rows/summary.d.ts +0 -2
  309. package/dist/runtime/spreadsheet/utils/rows/summary.js +0 -10
  310. package/dist/runtime/spreadsheet/utils/source/core.d.ts +0 -9
  311. package/dist/runtime/spreadsheet/utils/source/core.js +0 -65
  312. package/dist/runtime/spreadsheet/utils/source/index.d.ts +0 -1
  313. package/dist/runtime/spreadsheet/utils/source/index.js +0 -1
  314. package/dist/runtime/spreadsheet/utils/validation/core.d.ts +0 -16
  315. package/dist/runtime/spreadsheet/utils/validation/core.js +0 -211
  316. package/dist/runtime/spreadsheet/utils/validation/index.d.ts +0 -1
  317. package/dist/runtime/spreadsheet/utils/validation/index.js +0 -1
  318. /package/dist/runtime/spreadsheet/{components/types.js → types/fields.js} +0 -0
  319. /package/dist/runtime/spreadsheet/types/{context.js → importer.js} +0 -0
  320. /package/dist/runtime/spreadsheet/types/{import.js → steps.js} +0 -0
  321. /package/dist/runtime/spreadsheet/types/{inference.js → values.js} +0 -0
@@ -1,18 +1,33 @@
1
1
  import type { UiToolsLocale, UiToolsMessages } from '#ui-tools/i18n';
2
- import type { SpreadsheetComponentApi } from './types.js';
2
+ import type { SpreadsheetImporter, SpreadsheetStep } from '../types/index.js';
3
+ /**
4
+ * A ready-made import wizard built from the public parts: file, columns and values when needed,
5
+ * review, and import. Pass `steps` to reorder them or add your own; a slot named after a step key
6
+ * replaces its content.
7
+ */
3
8
  type __VLS_Props = {
4
- spreadsheet: SpreadsheetComponentApi;
9
+ importer: SpreadsheetImporter;
10
+ steps?: readonly SpreadsheetStep[];
5
11
  title?: string;
6
- description?: string;
7
- onDownloadTemplate?: () => void;
8
12
  closable?: boolean;
9
- mode?: 'inline' | 'fullscreen';
10
13
  locale?: UiToolsLocale<UiToolsMessages>;
11
14
  };
12
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ declare var __VLS_28: string, __VLS_29: {
16
+ step: import("../types/index.js").SpreadsheetStepStatus;
17
+ };
18
+ type __VLS_Slots = {} & {
19
+ [K in NonNullable<typeof __VLS_28>]?: (props: typeof __VLS_29) => any;
20
+ };
21
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
22
  close: () => any;
14
23
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
24
  onClose?: (() => any) | undefined;
16
25
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
27
  declare const _default: typeof __VLS_export;
18
28
  export default _default;
29
+ type __VLS_WithSlots<T, S> = T & {
30
+ new (): {
31
+ $slots: S;
32
+ };
33
+ };
@@ -1,6 +1,10 @@
1
+ import type { SpreadsheetImporter, SpreadsheetSteps } from '../../types/index.js';
1
2
  type __VLS_Props = {
2
- title: string;
3
- description?: string;
3
+ importer?: SpreadsheetImporter;
4
+ steps?: SpreadsheetSteps;
5
+ /** Page the Cancel button of the first step goes to. */
6
+ cancelTo?: string;
7
+ /** Shows Cancel on the first step and Close after the import, emitting `close`. */
4
8
  closable?: boolean;
5
9
  };
6
10
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -0,0 +1,116 @@
1
+ <script setup>
2
+ import UButton from "@nuxt/ui/components/Button.vue";
3
+ import { computed } from "vue";
4
+ import { useUiToolsLocale } from "#ui-tools/i18n";
5
+ import {
6
+ useSpreadsheetImporter,
7
+ useSpreadsheetStepsContext
8
+ } from "../../composables/use-spreadsheet-import-context";
9
+ import SpreadsheetImportSubmitButton from "../parts/spreadsheet-import-submit-button.vue";
10
+ const props = defineProps({
11
+ importer: { type: Object, required: false },
12
+ steps: { type: Object, required: false },
13
+ cancelTo: { type: String, required: false },
14
+ closable: { type: Boolean, required: false }
15
+ });
16
+ const emit = defineEmits(["close"]);
17
+ const importer = useSpreadsheetImporter(() => props.importer);
18
+ const steps = useSpreadsheetStepsContext(() => props.steps);
19
+ const { t } = useUiToolsLocale();
20
+ const step = computed(() => steps.value?.step ?? null);
21
+ const submitting = computed(() => step.value?.builtIn === "submit");
22
+ const status = computed(() => importer.value.submit.status);
23
+ const hint = computed(() => {
24
+ const current = step.value;
25
+ if (!current) return { blocking: false, text: "" };
26
+ if (current.builtIn === "file" && !importer.value.file.loaded)
27
+ return { blocking: false, text: t("spreadsheet.nav.blockers.file") };
28
+ if (current.builtIn === "columns" && current.blockers)
29
+ return {
30
+ blocking: true,
31
+ text: t("spreadsheet.nav.blockers.columns", { count: current.blockers })
32
+ };
33
+ if (current.builtIn === "values" && current.blockers)
34
+ return {
35
+ blocking: true,
36
+ text: t("spreadsheet.nav.blockers.values", { count: current.blockers })
37
+ };
38
+ if (current.builtIn === "review") {
39
+ if (!importer.value.readiness.importable)
40
+ return { blocking: true, text: t("spreadsheet.nav.blockers.review") };
41
+ const invalid = importer.value.readiness.invalidRows;
42
+ return {
43
+ blocking: false,
44
+ text: invalid ? t("spreadsheet.nav.blockers.invalid", { count: invalid }) : ""
45
+ };
46
+ }
47
+ return { blocking: false, text: "" };
48
+ });
49
+ function next() {
50
+ steps.value?.next();
51
+ }
52
+ function back() {
53
+ steps.value?.back();
54
+ }
55
+ function another() {
56
+ importer.value.reset();
57
+ steps.value?.reset();
58
+ }
59
+ </script>
60
+
61
+ <template>
62
+ <div v-if="steps" data-spreadsheet-step-nav class="flex flex-wrap items-center gap-x-3 gap-y-2">
63
+ <UButton
64
+ v-if="steps.canBack && status !== 'running' && status !== 'done'"
65
+ color="neutral"
66
+ variant="outline"
67
+ icon="i-lucide-arrow-left"
68
+ :label="t('spreadsheet.nav.back')"
69
+ @click="back"
70
+ />
71
+ <UButton
72
+ v-else-if="!steps.canBack && cancelTo"
73
+ color="neutral"
74
+ variant="ghost"
75
+ :to="cancelTo"
76
+ :label="t('spreadsheet.nav.cancel')"
77
+ />
78
+ <UButton
79
+ v-else-if="!steps.canBack && closable"
80
+ color="neutral"
81
+ variant="ghost"
82
+ :label="t('spreadsheet.nav.cancel')"
83
+ @click="emit('close')"
84
+ />
85
+ <span
86
+ v-if="hint.text"
87
+ class="order-last basis-full text-sm sm:order-none sm:ms-auto sm:basis-auto sm:text-end"
88
+ :class="hint.blocking ? 'font-medium text-error' : 'text-muted'"
89
+ >
90
+ {{ hint.text }}
91
+ </span>
92
+ <div class="ms-auto flex gap-2" :class="hint.text ? 'sm:ms-0' : ''">
93
+ <template v-if="submitting">
94
+ <SpreadsheetImportSubmitButton v-if="status === 'idle' || status === 'running'" />
95
+ <template v-else-if="status === 'done'">
96
+ <UButton
97
+ color="neutral"
98
+ variant="outline"
99
+ :label="t('spreadsheet.nav.another')"
100
+ @click="another"
101
+ />
102
+ <UButton v-if="closable" :label="t('spreadsheet.nav.close')" @click="emit('close')" />
103
+ <UButton v-else-if="cancelTo" :to="cancelTo" :label="t('spreadsheet.nav.close')" />
104
+ </template>
105
+ </template>
106
+ <UButton
107
+ v-else
108
+ data-spreadsheet-next
109
+ trailing-icon="i-lucide-arrow-right"
110
+ :label="t('spreadsheet.nav.continue')"
111
+ :disabled="!steps.canNext"
112
+ @click="next"
113
+ />
114
+ </div>
115
+ </div>
116
+ </template>
@@ -1,6 +1,10 @@
1
+ import type { SpreadsheetImporter, SpreadsheetSteps } from '../../types/index.js';
1
2
  type __VLS_Props = {
2
- title: string;
3
- description?: string;
3
+ importer?: SpreadsheetImporter;
4
+ steps?: SpreadsheetSteps;
5
+ /** Page the Cancel button of the first step goes to. */
6
+ cancelTo?: string;
7
+ /** Shows Cancel on the first step and Close after the import, emitting `close`. */
4
8
  closable?: boolean;
5
9
  };
6
10
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -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,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
+ }