nuxt-ui-tools 1.12.0 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) 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/password/component.vue +4 -0
  9. package/dist/runtime/i18n/locales/en.js +251 -130
  10. package/dist/runtime/i18n/locales/fr.js +251 -130
  11. package/dist/runtime/i18n/types.d.ts +241 -119
  12. package/dist/runtime/shared/types/remote-options.d.ts +11 -0
  13. package/dist/runtime/shared/utils/define-remote-options.js +6 -0
  14. package/dist/runtime/shared/utils/file.d.ts +1 -1
  15. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.d.vue.ts → internal/spreadsheet-import-cell-editor.d.vue.ts} +8 -5
  16. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-cell-editor.vue +73 -0
  17. package/dist/runtime/spreadsheet/components/{steps/review/spreadsheet-review-overflow-alert.vue.d.ts → internal/spreadsheet-import-cell-editor.vue.d.ts} +8 -5
  18. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.d.vue.ts +17 -0
  19. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue +98 -0
  20. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-column-row.vue.d.ts +17 -0
  21. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.d.vue.ts +17 -0
  22. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue +20 -0
  23. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-heading.vue.d.ts +17 -0
  24. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.d.vue.ts +10 -0
  25. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue +34 -0
  26. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-status-badge.vue.d.ts +10 -0
  27. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.d.vue.ts +13 -0
  28. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue +113 -0
  29. package/dist/runtime/spreadsheet/components/internal/spreadsheet-import-value-row.vue.d.ts +13 -0
  30. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.d.vue.ts +35 -0
  31. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue +154 -0
  32. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-column-mapping.vue.d.ts +35 -0
  33. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.d.vue.ts +23 -0
  34. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue +83 -0
  35. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-dropzone.vue.d.ts +23 -0
  36. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.d.vue.ts +19 -0
  37. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue +45 -0
  38. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-expected-columns.vue.d.ts +19 -0
  39. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.d.vue.ts → parts/spreadsheet-import-export-button.d.vue.ts} +3 -2
  40. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-export-button.vue +34 -0
  41. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.vue.d.ts → parts/spreadsheet-import-export-button.vue.d.ts} +3 -4
  42. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.d.vue.ts +17 -0
  43. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue +49 -0
  44. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-file-card.vue.d.ts +17 -0
  45. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.d.vue.ts +18 -0
  46. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue +101 -0
  47. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-progress.vue.d.ts +18 -0
  48. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.d.vue.ts +22 -0
  49. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue +276 -0
  50. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-row-inspector.vue.d.ts +22 -0
  51. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.d.vue.ts +11 -0
  52. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue +164 -0
  53. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-source-settings.vue.d.ts +11 -0
  54. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.d.vue.ts → parts/spreadsheet-import-stat.d.vue.ts} +7 -4
  55. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stat.vue +30 -0
  56. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-value-preview.vue.d.ts → parts/spreadsheet-import-stat.vue.d.ts} +7 -4
  57. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.d.vue.ts +26 -0
  58. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue +55 -0
  59. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-stats.vue.d.ts +26 -0
  60. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-object-preview-table.vue.d.ts → parts/spreadsheet-import-submit-button.d.vue.ts} +3 -2
  61. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue +27 -0
  62. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-submit-button.vue.d.ts +8 -0
  63. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.d.vue.ts +16 -0
  64. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue +51 -0
  65. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-summary.vue.d.ts +16 -0
  66. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-file-bar.d.vue.ts → parts/spreadsheet-import-table-toolbar.d.vue.ts} +2 -4
  67. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table-toolbar.vue +217 -0
  68. package/dist/runtime/spreadsheet/components/{shared/spreadsheet-raw-preview-table.d.vue.ts → parts/spreadsheet-import-table-toolbar.vue.d.ts} +2 -2
  69. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.d.vue.ts +33 -0
  70. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue +302 -0
  71. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-table.vue.d.ts +33 -0
  72. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.d.vue.ts → parts/spreadsheet-import-template-button.d.vue.ts} +5 -4
  73. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-template-button.vue +31 -0
  74. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-sidebar.vue.d.ts → parts/spreadsheet-import-template-button.vue.d.ts} +5 -4
  75. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.d.vue.ts +27 -0
  76. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue +162 -0
  77. package/dist/runtime/spreadsheet/components/parts/spreadsheet-import-value-mapping.vue.d.ts +27 -0
  78. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.d.vue.ts +24 -0
  79. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue +23 -0
  80. package/dist/runtime/spreadsheet/components/spreadsheet-import-root.vue.d.ts +24 -0
  81. package/dist/runtime/spreadsheet/components/spreadsheet-import.d.vue.ts +21 -6
  82. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue +46 -262
  83. package/dist/runtime/spreadsheet/components/spreadsheet-import.vue.d.ts +21 -6
  84. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.d.vue.ts → steps/spreadsheet-import-step-nav.d.vue.ts} +6 -2
  85. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step-nav.vue +116 -0
  86. package/dist/runtime/spreadsheet/components/{layout/spreadsheet-import-header.vue.d.ts → steps/spreadsheet-import-step-nav.vue.d.ts} +6 -2
  87. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.d.vue.ts +26 -0
  88. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue +106 -0
  89. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-step.vue.d.ts +26 -0
  90. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.d.vue.ts +15 -0
  91. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue +131 -0
  92. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-stepper.vue.d.ts +15 -0
  93. package/dist/runtime/spreadsheet/composables/index.d.ts +2 -0
  94. package/dist/runtime/spreadsheet/composables/index.js +2 -0
  95. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.d.ts +8 -0
  96. package/dist/runtime/spreadsheet/composables/use-spreadsheet-answers.js +19 -0
  97. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.d.ts +23 -0
  98. package/dist/runtime/spreadsheet/composables/use-spreadsheet-columns.js +75 -0
  99. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.d.ts +8 -45
  100. package/dist/runtime/spreadsheet/composables/use-spreadsheet-context.js +28 -32
  101. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.d.ts +11 -0
  102. package/dist/runtime/spreadsheet/composables/use-spreadsheet-edits.js +25 -0
  103. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.d.ts +16 -0
  104. package/dist/runtime/spreadsheet/composables/use-spreadsheet-fields.js +20 -0
  105. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.d.ts +14 -0
  106. package/dist/runtime/spreadsheet/composables/use-spreadsheet-file.js +44 -0
  107. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.d.ts +12 -0
  108. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import-context.js +22 -0
  109. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.d.ts +18 -7
  110. package/dist/runtime/spreadsheet/composables/use-spreadsheet-import.js +340 -109
  111. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.d.ts +36 -0
  112. package/dist/runtime/spreadsheet/composables/use-spreadsheet-layout.js +95 -0
  113. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.d.ts +24 -0
  114. package/dist/runtime/spreadsheet/composables/use-spreadsheet-options.js +159 -0
  115. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.d.ts +14 -0
  116. package/dist/runtime/spreadsheet/composables/use-spreadsheet-queries.js +11 -0
  117. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.d.ts +37 -169
  118. package/dist/runtime/spreadsheet/composables/use-spreadsheet-review.js +148 -408
  119. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.d.ts +48 -26
  120. package/dist/runtime/spreadsheet/composables/use-spreadsheet-rows.js +334 -21
  121. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.d.ts +33 -0
  122. package/dist/runtime/spreadsheet/composables/use-spreadsheet-steps.js +126 -0
  123. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.d.ts +37 -0
  124. package/dist/runtime/spreadsheet/composables/use-spreadsheet-submit.js +136 -0
  125. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.d.ts +27 -0
  126. package/dist/runtime/spreadsheet/composables/use-spreadsheet-values.js +121 -0
  127. package/dist/runtime/spreadsheet/index.d.ts +0 -1
  128. package/dist/runtime/spreadsheet/index.js +0 -1
  129. package/dist/runtime/spreadsheet/schema/builder.d.ts +8 -0
  130. package/dist/runtime/spreadsheet/schema/builder.js +31 -0
  131. package/dist/runtime/spreadsheet/schema/index.d.ts +24 -32
  132. package/dist/runtime/spreadsheet/schema/index.js +4 -21
  133. package/dist/runtime/spreadsheet/types/columns.d.ts +252 -273
  134. package/dist/runtime/spreadsheet/types/fields.d.ts +64 -0
  135. package/dist/runtime/spreadsheet/types/importer.d.ts +308 -0
  136. package/dist/runtime/spreadsheet/types/index.d.ts +6 -10
  137. package/dist/runtime/spreadsheet/types/options.d.ts +47 -9
  138. package/dist/runtime/spreadsheet/types/rows.d.ts +57 -48
  139. package/dist/runtime/spreadsheet/types/schema.d.ts +162 -76
  140. package/dist/runtime/spreadsheet/types/shared.d.ts +19 -21
  141. package/dist/runtime/spreadsheet/types/source.d.ts +39 -15
  142. package/dist/runtime/spreadsheet/types/steps.d.ts +76 -0
  143. package/dist/runtime/spreadsheet/types/validation.d.ts +49 -69
  144. package/dist/runtime/spreadsheet/types/values.d.ts +77 -0
  145. package/dist/runtime/spreadsheet/utils/download.d.ts +2 -0
  146. package/dist/runtime/spreadsheet/utils/download.js +8 -0
  147. package/dist/runtime/spreadsheet/utils/export.d.ts +26 -0
  148. package/dist/runtime/spreadsheet/utils/export.js +50 -0
  149. package/dist/runtime/spreadsheet/utils/fields.d.ts +26 -0
  150. package/dist/runtime/spreadsheet/utils/fields.js +169 -0
  151. package/dist/runtime/spreadsheet/utils/guards.d.ts +18 -0
  152. package/dist/runtime/spreadsheet/utils/guards.js +27 -0
  153. package/dist/runtime/spreadsheet/utils/headers.d.ts +15 -0
  154. package/dist/runtime/spreadsheet/utils/headers.js +36 -0
  155. package/dist/runtime/spreadsheet/utils/identity.d.ts +24 -0
  156. package/dist/runtime/spreadsheet/utils/identity.js +57 -0
  157. package/dist/runtime/spreadsheet/utils/index.d.ts +15 -6
  158. package/dist/runtime/spreadsheet/utils/index.js +15 -6
  159. package/dist/runtime/spreadsheet/utils/layout.d.ts +12 -0
  160. package/dist/runtime/spreadsheet/utils/layout.js +37 -0
  161. package/dist/runtime/spreadsheet/utils/options.d.ts +31 -10
  162. package/dist/runtime/spreadsheet/utils/options.js +58 -30
  163. package/dist/runtime/spreadsheet/utils/parse.d.ts +6 -0
  164. package/dist/runtime/spreadsheet/utils/parse.js +147 -0
  165. package/dist/runtime/spreadsheet/utils/paths.d.ts +4 -0
  166. package/dist/runtime/spreadsheet/utils/paths.js +29 -0
  167. package/dist/runtime/spreadsheet/utils/rows.d.ts +69 -0
  168. package/dist/runtime/spreadsheet/utils/rows.js +168 -0
  169. package/dist/runtime/spreadsheet/utils/rules.d.ts +4 -0
  170. package/dist/runtime/spreadsheet/utils/rules.js +95 -0
  171. package/dist/runtime/spreadsheet/utils/suggestions.d.ts +20 -0
  172. package/dist/runtime/spreadsheet/utils/suggestions.js +43 -0
  173. package/dist/runtime/spreadsheet/utils/text.d.ts +9 -0
  174. package/dist/runtime/spreadsheet/utils/text.js +11 -0
  175. package/dist/runtime/spreadsheet/utils/workbook.d.ts +13 -0
  176. package/dist/runtime/spreadsheet/utils/workbook.js +121 -0
  177. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.d.vue.ts +2 -2
  178. package/dist/runtime/table/components/filters/tags/boolean-filter-tag.vue.d.ts +2 -2
  179. package/dist/runtime/table/components/filters/tags/date-filter-tag.d.vue.ts +2 -2
  180. package/dist/runtime/table/components/filters/tags/date-filter-tag.vue.d.ts +2 -2
  181. package/dist/runtime/table/components/filters/tags/number-filter-tag.d.vue.ts +2 -2
  182. package/dist/runtime/table/components/filters/tags/number-filter-tag.vue.d.ts +2 -2
  183. package/dist/runtime/table/components/filters/tags/option-filter-tag.d.vue.ts +2 -2
  184. package/dist/runtime/table/components/filters/tags/option-filter-tag.vue.d.ts +2 -2
  185. package/dist/runtime/table/components/filters/tags/text-filter-tag.d.vue.ts +2 -2
  186. package/dist/runtime/table/components/filters/tags/text-filter-tag.vue.d.ts +2 -2
  187. package/dist/runtime/table/components/table/table-cell-ellipsis.d.ts +1 -1
  188. package/dist/runtime/table/utils/data-list-ui.d.ts +1 -1
  189. package/package.json +18 -3
  190. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-file-bar.vue +0 -31
  191. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.d.vue.ts +0 -24
  192. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue +0 -69
  193. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-footer.vue.d.ts +0 -24
  194. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-header.vue +0 -36
  195. package/dist/runtime/spreadsheet/components/layout/spreadsheet-import-sidebar.vue +0 -63
  196. package/dist/runtime/spreadsheet/components/shared/spreadsheet-object-preview-table.vue +0 -67
  197. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue +0 -41
  198. package/dist/runtime/spreadsheet/components/shared/spreadsheet-raw-preview-table.vue.d.ts +0 -7
  199. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.d.vue.ts +0 -10
  200. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue +0 -25
  201. package/dist/runtime/spreadsheet/components/shared/spreadsheet-summary-stats.vue.d.ts +0 -10
  202. package/dist/runtime/spreadsheet/components/shared/spreadsheet-value-preview.vue +0 -201
  203. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.d.vue.ts +0 -11
  204. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue +0 -38
  205. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-summary.vue.d.ts +0 -11
  206. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.d.vue.ts +0 -45
  207. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue +0 -219
  208. package/dist/runtime/spreadsheet/components/steps/matching/spreadsheet-matching-table.vue.d.ts +0 -45
  209. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.d.vue.ts +0 -51
  210. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue +0 -166
  211. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-accordion.vue.d.ts +0 -51
  212. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.d.vue.ts +0 -11
  213. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue +0 -26
  214. package/dist/runtime/spreadsheet/components/steps/references/spreadsheet-references-summary.vue.d.ts +0 -11
  215. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.d.vue.ts +0 -41
  216. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue +0 -392
  217. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-inspection.vue.d.ts +0 -41
  218. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-overflow-alert.vue +0 -43
  219. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.d.vue.ts +0 -15
  220. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue +0 -40
  221. package/dist/runtime/spreadsheet/components/steps/review/spreadsheet-review-stats.vue.d.ts +0 -15
  222. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.d.vue.ts +0 -7
  223. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue +0 -137
  224. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-matching-step.vue.d.ts +0 -7
  225. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.d.vue.ts +0 -7
  226. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue +0 -222
  227. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-references-step.vue.d.ts +0 -7
  228. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.d.vue.ts +0 -7
  229. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue +0 -191
  230. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-review-step.vue.d.ts +0 -7
  231. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.d.vue.ts +0 -7
  232. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue +0 -62
  233. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-structure-step.vue.d.ts +0 -7
  234. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.d.vue.ts +0 -8
  235. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue +0 -81
  236. package/dist/runtime/spreadsheet/components/steps/spreadsheet-import-upload-step.vue.d.ts +0 -8
  237. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.d.vue.ts +0 -15
  238. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue +0 -95
  239. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-preview-table.vue.d.ts +0 -15
  240. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.d.vue.ts +0 -15
  241. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue +0 -56
  242. package/dist/runtime/spreadsheet/components/steps/structure/spreadsheet-structure-sheet-list.vue.d.ts +0 -15
  243. package/dist/runtime/spreadsheet/components/types.d.ts +0 -41
  244. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.d.ts +0 -18
  245. package/dist/runtime/spreadsheet/composables/use-spreadsheet-column-matching.js +0 -62
  246. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.d.ts +0 -629
  247. package/dist/runtime/spreadsheet/composables/use-spreadsheet-internals.js +0 -68
  248. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.d.ts +0 -1
  249. package/dist/runtime/spreadsheet/composables/use-spreadsheet-references.js +0 -3
  250. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.d.ts +0 -40
  251. package/dist/runtime/spreadsheet/composables/use-spreadsheet-resolutions.js +0 -97
  252. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.d.ts +0 -24
  253. package/dist/runtime/spreadsheet/composables/use-spreadsheet-row-state.js +0 -74
  254. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.d.ts +0 -27
  255. package/dist/runtime/spreadsheet/composables/use-spreadsheet-source.js +0 -109
  256. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.d.ts +0 -15
  257. package/dist/runtime/spreadsheet/composables/use-spreadsheet-view.js +0 -109
  258. package/dist/runtime/spreadsheet/schema/normalize.d.ts +0 -73
  259. package/dist/runtime/spreadsheet/schema/normalize.js +0 -136
  260. package/dist/runtime/spreadsheet/types/context.d.ts +0 -9
  261. package/dist/runtime/spreadsheet/types/import.d.ts +0 -55
  262. package/dist/runtime/spreadsheet/types/inference.d.ts +0 -83
  263. package/dist/runtime/spreadsheet/types/normalized.d.ts +0 -50
  264. package/dist/runtime/spreadsheet/types/normalized.js +0 -0
  265. package/dist/runtime/spreadsheet/types/pipeline.d.ts +0 -7
  266. package/dist/runtime/spreadsheet/types/pipeline.js +0 -0
  267. package/dist/runtime/spreadsheet/types/reference-session.d.ts +0 -43
  268. package/dist/runtime/spreadsheet/types/reference-session.js +0 -0
  269. package/dist/runtime/spreadsheet/types/references.d.ts +0 -32
  270. package/dist/runtime/spreadsheet/types/references.js +0 -0
  271. package/dist/runtime/spreadsheet/types/resolution.d.ts +0 -43
  272. package/dist/runtime/spreadsheet/types/resolution.js +0 -0
  273. package/dist/runtime/spreadsheet/utils/builders/core.d.ts +0 -17
  274. package/dist/runtime/spreadsheet/utils/builders/core.js +0 -262
  275. package/dist/runtime/spreadsheet/utils/builders/index.d.ts +0 -1
  276. package/dist/runtime/spreadsheet/utils/builders/index.js +0 -1
  277. package/dist/runtime/spreadsheet/utils/context.d.ts +0 -20
  278. package/dist/runtime/spreadsheet/utils/context.js +0 -25
  279. package/dist/runtime/spreadsheet/utils/display.d.ts +0 -6
  280. package/dist/runtime/spreadsheet/utils/display.js +0 -26
  281. package/dist/runtime/spreadsheet/utils/object.d.ts +0 -9
  282. package/dist/runtime/spreadsheet/utils/object.js +0 -78
  283. package/dist/runtime/spreadsheet/utils/references/candidates.d.ts +0 -6
  284. package/dist/runtime/spreadsheet/utils/references/candidates.js +0 -28
  285. package/dist/runtime/spreadsheet/utils/references/core.d.ts +0 -3
  286. package/dist/runtime/spreadsheet/utils/references/core.js +0 -3
  287. package/dist/runtime/spreadsheet/utils/references/guards.d.ts +0 -4
  288. package/dist/runtime/spreadsheet/utils/references/guards.js +0 -28
  289. package/dist/runtime/spreadsheet/utils/references/index.d.ts +0 -1
  290. package/dist/runtime/spreadsheet/utils/references/index.js +0 -1
  291. package/dist/runtime/spreadsheet/utils/references/resolutions.d.ts +0 -17
  292. package/dist/runtime/spreadsheet/utils/references/resolutions.js +0 -172
  293. package/dist/runtime/spreadsheet/utils/references/shared.d.ts +0 -3
  294. package/dist/runtime/spreadsheet/utils/references/shared.js +0 -26
  295. package/dist/runtime/spreadsheet/utils/references/sources.d.ts +0 -9
  296. package/dist/runtime/spreadsheet/utils/references/sources.js +0 -38
  297. package/dist/runtime/spreadsheet/utils/rows/core.d.ts +0 -4
  298. package/dist/runtime/spreadsheet/utils/rows/core.js +0 -4
  299. package/dist/runtime/spreadsheet/utils/rows/headers.d.ts +0 -2
  300. package/dist/runtime/spreadsheet/utils/rows/headers.js +0 -9
  301. package/dist/runtime/spreadsheet/utils/rows/index.d.ts +0 -1
  302. package/dist/runtime/spreadsheet/utils/rows/index.js +0 -1
  303. package/dist/runtime/spreadsheet/utils/rows/matching.d.ts +0 -5
  304. package/dist/runtime/spreadsheet/utils/rows/matching.js +0 -209
  305. package/dist/runtime/spreadsheet/utils/rows/parsing.d.ts +0 -7
  306. package/dist/runtime/spreadsheet/utils/rows/parsing.js +0 -209
  307. package/dist/runtime/spreadsheet/utils/rows/shared.d.ts +0 -17
  308. package/dist/runtime/spreadsheet/utils/rows/shared.js +0 -309
  309. package/dist/runtime/spreadsheet/utils/rows/summary.d.ts +0 -2
  310. package/dist/runtime/spreadsheet/utils/rows/summary.js +0 -10
  311. package/dist/runtime/spreadsheet/utils/source/core.d.ts +0 -9
  312. package/dist/runtime/spreadsheet/utils/source/core.js +0 -65
  313. package/dist/runtime/spreadsheet/utils/source/index.d.ts +0 -1
  314. package/dist/runtime/spreadsheet/utils/source/index.js +0 -1
  315. package/dist/runtime/spreadsheet/utils/validation/core.d.ts +0 -16
  316. package/dist/runtime/spreadsheet/utils/validation/core.js +0 -211
  317. package/dist/runtime/spreadsheet/utils/validation/index.d.ts +0 -1
  318. package/dist/runtime/spreadsheet/utils/validation/index.js +0 -1
  319. /package/dist/runtime/spreadsheet/{components/types.js → types/fields.js} +0 -0
  320. /package/dist/runtime/spreadsheet/types/{context.js → importer.js} +0 -0
  321. /package/dist/runtime/spreadsheet/types/{import.js → steps.js} +0 -0
  322. /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
+ }