@chelone/vue 0.7.0 → 0.10.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 (229) hide show
  1. package/dist/admin/admin.vue_vue_type_script_setup_true_lang.js +5 -4
  2. package/dist/admin/auth-gate.js +1 -3
  3. package/dist/admin/resource-view.d.ts +8 -0
  4. package/dist/admin/resource-view.js +19 -0
  5. package/dist/auth/permissions-hooks.js +1 -3
  6. package/dist/choices/choices-context.d.ts +1 -2
  7. package/dist/choices/use-choices.d.ts +3 -3
  8. package/dist/choices/use-choices.js +13 -10
  9. package/dist/choices/use-reference-input.js +4 -4
  10. package/dist/components/admin/auth/auth-error.vue_vue_type_script_setup_true_lang.js +4 -3
  11. package/dist/components/admin/auth/auth-layout.vue_vue_type_script_setup_true_lang.js +1 -1
  12. package/dist/components/admin/auth/can-access.vue.d.ts +2 -2
  13. package/dist/components/admin/auth/login-form.vue_vue_type_script_setup_true_lang.js +3 -2
  14. package/dist/components/admin/auth/login-with-email.vue_vue_type_script_setup_true_lang.js +1 -0
  15. package/dist/components/admin/buttons/bulk-update-button.vue.d.ts +19 -6
  16. package/dist/components/admin/buttons/bulk-update-button.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/components/admin/buttons/clone-button.vue.d.ts +19 -16
  18. package/dist/components/admin/buttons/clone-button.vue_vue_type_script_setup_true_lang.js +4 -5
  19. package/dist/components/admin/buttons/delete-button.vue.d.ts +19 -10
  20. package/dist/components/admin/buttons/delete-button.vue_vue_type_script_setup_true_lang.js +6 -7
  21. package/dist/components/admin/buttons/dual-approval-button.vue_vue_type_script_setup_true_lang.js +14 -2
  22. package/dist/components/admin/buttons/edit-button.vue.d.ts +19 -16
  23. package/dist/components/admin/buttons/edit-button.vue_vue_type_script_setup_true_lang.js +4 -5
  24. package/dist/components/admin/buttons/export-button.vue_vue_type_script_setup_true_lang.js +2 -2
  25. package/dist/components/admin/buttons/fields-selector.vue_vue_type_script_setup_true_lang.js +1 -2
  26. package/dist/components/admin/buttons/filter-button.vue_vue_type_script_setup_true_lang.js +1 -1
  27. package/dist/components/admin/buttons/record-button-props.d.ts +12 -0
  28. package/dist/components/admin/buttons/show-button.vue.d.ts +19 -16
  29. package/dist/components/admin/buttons/show-button.vue_vue_type_script_setup_true_lang.js +4 -5
  30. package/dist/components/admin/buttons/status-transition-button.vue_vue_type_script_setup_true_lang.js +3 -7
  31. package/dist/components/admin/buttons/update-button.vue.d.ts +28 -24
  32. package/dist/components/admin/buttons/update-button.vue_vue_type_script_setup_true_lang.js +3 -4
  33. package/dist/components/admin/common/application-updated-notification.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/components/admin/common/i18n-key-editor.vue_vue_type_script_setup_true_lang.js +1 -2
  35. package/dist/components/admin/csv-import/csv-import.vue_vue_type_script_setup_true_lang.js +2 -5
  36. package/dist/components/admin/feedback/error.vue_vue_type_script_setup_true_lang.js +1 -1
  37. package/dist/components/admin/feedback/linear-progress.vue_vue_type_script_setup_true_lang.js +1 -0
  38. package/dist/components/admin/feedback/loading.vue_vue_type_script_setup_true_lang.js +7 -6
  39. package/dist/components/admin/feedback/placeholder.vue_vue_type_script_setup_true_lang.js +4 -1
  40. package/dist/components/admin/fields/api-key-field.vue.d.ts +3 -3
  41. package/dist/components/admin/fields/api-key-field.vue_vue_type_script_setup_true_lang.js +6 -7
  42. package/dist/components/admin/fields/array-field.vue.d.ts +3 -3
  43. package/dist/components/admin/fields/badge-field.vue.d.ts +3 -3
  44. package/dist/components/admin/fields/boolean-field.vue.d.ts +3 -3
  45. package/dist/components/admin/fields/chip-field.vue.d.ts +3 -3
  46. package/dist/components/admin/fields/color-field.vue.d.ts +3 -3
  47. package/dist/components/admin/fields/cron-field.vue.d.ts +3 -3
  48. package/dist/components/admin/fields/currency-field.vue.d.ts +3 -3
  49. package/dist/components/admin/fields/date-field.vue.d.ts +3 -3
  50. package/dist/components/admin/fields/diff-viewer.vue.d.ts +3 -3
  51. package/dist/components/admin/fields/duration-field.vue.d.ts +3 -3
  52. package/dist/components/admin/fields/email-field.vue.d.ts +3 -3
  53. package/dist/components/admin/fields/field-props.d.ts +2 -2
  54. package/dist/components/admin/fields/file-field.vue.d.ts +3 -3
  55. package/dist/components/admin/fields/function-field.vue.d.ts +3 -3
  56. package/dist/components/admin/fields/image-field.vue.d.ts +3 -3
  57. package/dist/components/admin/fields/json-field.vue.d.ts +3 -3
  58. package/dist/components/admin/fields/number-field.vue.d.ts +3 -3
  59. package/dist/components/admin/fields/phone-field.vue.d.ts +3 -3
  60. package/dist/components/admin/fields/phone-field.vue_vue_type_script_setup_true_lang.js +3 -1
  61. package/dist/components/admin/fields/rating-field.vue.d.ts +3 -3
  62. package/dist/components/admin/fields/rating-field.vue_vue_type_script_setup_true_lang.js +5 -5
  63. package/dist/components/admin/fields/record-field.vue.d.ts +3 -3
  64. package/dist/components/admin/fields/reference-array-field.vue.d.ts +20 -10
  65. package/dist/components/admin/fields/reference-field.vue.d.ts +22 -35
  66. package/dist/components/admin/fields/reference-many-count.vue.d.ts +20 -5
  67. package/dist/components/admin/fields/reference-many-field.vue.d.ts +20 -12
  68. package/dist/components/admin/fields/reference-one-field.vue.d.ts +22 -12
  69. package/dist/components/admin/fields/select-field.vue.d.ts +3 -3
  70. package/dist/components/admin/fields/subscription-plan-field.vue.d.ts +3 -3
  71. package/dist/components/admin/fields/text-array-field.vue.d.ts +3 -3
  72. package/dist/components/admin/fields/text-field.vue.d.ts +3 -3
  73. package/dist/components/admin/fields/url-field.vue.d.ts +3 -3
  74. package/dist/components/admin/fields/usage-meter-field.vue.d.ts +3 -3
  75. package/dist/components/admin/fields/usage-meter-field.vue_vue_type_script_setup_true_lang.js +6 -6
  76. package/dist/components/admin/fields/webhook-endpoint-field.vue.d.ts +3 -3
  77. package/dist/components/admin/fields/webhook-endpoint-field.vue_vue_type_script_setup_true_lang.js +1 -1
  78. package/dist/components/admin/fields/wrapper-field.vue.d.ts +21 -11
  79. package/dist/components/admin/inputs/api-key-input.vue.d.ts +20 -5
  80. package/dist/components/admin/inputs/api-key-input.vue_vue_type_script_setup_true_lang.js +3 -4
  81. package/dist/components/admin/inputs/array-input-row.vue_vue_type_script_setup_true_lang.js +1 -1
  82. package/dist/components/admin/inputs/checkbox-group-input.vue_vue_type_script_setup_true_lang.js +1 -1
  83. package/dist/components/admin/inputs/date-input-format.d.ts +4 -1
  84. package/dist/components/admin/inputs/date-input-format.js +10 -1
  85. package/dist/components/admin/inputs/date-input.vue_vue_type_script_setup_true_lang.js +3 -2
  86. package/dist/components/admin/inputs/date-time-input.vue_vue_type_script_setup_true_lang.js +3 -2
  87. package/dist/components/admin/inputs/duration-input.vue_vue_type_script_setup_true_lang.js +1 -1
  88. package/dist/components/admin/inputs/image-input-thumbnail.vue_vue_type_script_setup_true_lang.js +6 -5
  89. package/dist/components/admin/inputs/image-input.vue.d.ts +1 -0
  90. package/dist/components/admin/inputs/image-input.vue_vue_type_script_setup_true_lang.js +4 -1
  91. package/dist/components/admin/inputs/in-place-editor-form.vue.d.ts +3 -3
  92. package/dist/components/admin/inputs/in-place-editor-form.vue_vue_type_script_setup_true_lang.js +1 -1
  93. package/dist/components/admin/inputs/in-place-editor.vue.d.ts +3 -3
  94. package/dist/components/admin/inputs/number-input.vue.d.ts +6 -0
  95. package/dist/components/admin/inputs/number-input.vue_vue_type_script_setup_true_lang.js +9 -0
  96. package/dist/components/admin/inputs/password-input.vue_vue_type_script_setup_true_lang.js +34 -30
  97. package/dist/components/admin/inputs/phone-input.vue_vue_type_script_setup_true_lang.js +1 -1
  98. package/dist/components/admin/inputs/radio-button-group-input.vue_vue_type_script_setup_true_lang.js +1 -1
  99. package/dist/components/admin/inputs/rating-input.vue_vue_type_script_setup_true_lang.js +24 -12
  100. package/dist/components/admin/inputs/reference-input.vue.d.ts +1 -1
  101. package/dist/components/admin/inputs/reference-input.vue_vue_type_script_setup_true_lang.js +2 -1
  102. package/dist/components/admin/inputs/resettable-text-input.vue.d.ts +6 -4
  103. package/dist/components/admin/inputs/resettable-text-input.vue_vue_type_script_setup_true_lang.js +44 -39
  104. package/dist/components/admin/inputs/subscription-plan-picker.vue_vue_type_script_setup_true_lang.js +2 -2
  105. package/dist/components/admin/inputs/text-input.vue.d.ts +13 -2
  106. package/dist/components/admin/inputs/text-input.vue_vue_type_script_setup_true_lang.js +9 -4
  107. package/dist/components/admin/inputs/time-input.vue_vue_type_script_setup_true_lang.js +3 -2
  108. package/dist/components/admin/inputs/use-choice-input.d.ts +2 -2
  109. package/dist/components/admin/layout/app-sidebar.vue.d.ts +12 -1
  110. package/dist/components/admin/layout/app-sidebar.vue_vue_type_script_setup_true_lang.js +15 -11
  111. package/dist/components/admin/layout/command-menu-content.vue_vue_type_script_setup_true_lang.js +1 -1
  112. package/dist/components/admin/layout/command-menu.vue.d.ts +1 -1
  113. package/dist/components/admin/layout/command-menu.vue_vue_type_script_setup_true_lang.js +9 -63
  114. package/dist/components/admin/layout/data-provider-devtools-entry.vue.d.ts +1 -1
  115. package/dist/components/admin/layout/data-provider-devtools-entry.vue_vue_type_script_setup_true_lang.js +3 -3
  116. package/dist/components/admin/layout/data-provider-devtools.vue_vue_type_script_setup_true_lang.js +62 -28
  117. package/dist/components/admin/layout/icons.d.ts +2 -0
  118. package/dist/components/admin/layout/icons.js +3 -1
  119. package/dist/components/admin/layout/layout.vue_vue_type_script_setup_true_lang.js +1 -1
  120. package/dist/components/admin/layout/menu-item-link.vue.d.ts +5 -0
  121. package/dist/components/admin/layout/menu-item-link.vue_vue_type_script_setup_true_lang.js +27 -8
  122. package/dist/components/admin/layout/onboarding-tour-overlay.vue_vue_type_script_setup_true_lang.js +1 -2
  123. package/dist/components/admin/layout/resource-menu-item-group.vue.d.ts +8 -1
  124. package/dist/components/admin/layout/resource-menu-item-group.vue_vue_type_script_setup_true_lang.js +8 -7
  125. package/dist/components/admin/layout/theme-provider.vue_vue_type_script_setup_true_lang.js +2 -1
  126. package/dist/components/admin/layout/title-portal-id.d.ts +1 -1
  127. package/dist/components/admin/layout/title-portal-id.js +1 -9
  128. package/dist/components/admin/layout/top-toolbar.vue_vue_type_script_setup_true_lang.js +4 -1
  129. package/dist/components/admin/list/approval-queue-row.vue.d.ts +2 -2
  130. package/dist/components/admin/list/approval-queue-row.vue_vue_type_script_setup_true_lang.js +2 -2
  131. package/dist/components/admin/list/approval-queue.vue.d.ts +3 -3
  132. package/dist/components/admin/list/calendar-agenda-view.vue.d.ts +23 -15
  133. package/dist/components/admin/list/calendar-event.vue.d.ts +21 -8
  134. package/dist/components/admin/list/calendar-list.vue.d.ts +29 -56
  135. package/dist/components/admin/list/calendar-list.vue_vue_type_script_setup_true_lang.js +12 -8
  136. package/dist/components/admin/list/calendar-month-view.vue.d.ts +26 -20
  137. package/dist/components/admin/list/calendar-month-view.vue_vue_type_script_setup_true_lang.js +2 -6
  138. package/dist/components/admin/list/calendar-week-view.vue.d.ts +24 -17
  139. package/dist/components/admin/list/data-table-col.vue_vue_type_script_setup_true_lang.js +8 -5
  140. package/dist/components/admin/list/data-table-context.d.ts +9 -6
  141. package/dist/components/admin/list/data-table-context.js +9 -1
  142. package/dist/components/admin/list/data-table-row.vue.d.ts +19 -15
  143. package/dist/components/admin/list/data-table-row.vue_vue_type_script_setup_true_lang.js +5 -9
  144. package/dist/components/admin/list/data-table.vue.d.ts +35 -23
  145. package/dist/components/admin/list/data-table.vue_vue_type_script_setup_true_lang.js +4 -7
  146. package/dist/components/admin/list/list-pagination.vue_vue_type_script_setup_true_lang.js +2 -2
  147. package/dist/components/admin/list/pivot-grid.vue.d.ts +3 -3
  148. package/dist/components/admin/list/record-timeline.vue.d.ts +3 -3
  149. package/dist/components/admin/list/record-timeline.vue_vue_type_script_setup_true_lang.js +1 -1
  150. package/dist/components/admin/list/simple-list-item.vue.d.ts +21 -19
  151. package/dist/components/admin/list/simple-list-item.vue_vue_type_script_setup_true_lang.js +3 -7
  152. package/dist/components/admin/list/simple-list.vue.d.ts +28 -20
  153. package/dist/components/admin/list/single-field-list-record.vue.d.ts +19 -9
  154. package/dist/components/admin/list/single-field-list.vue.d.ts +21 -11
  155. package/dist/components/admin/list/tree-list-context.d.ts +11 -6
  156. package/dist/components/admin/list/tree-list-node.vue.d.ts +19 -4
  157. package/dist/components/admin/list/tree-list.vue.d.ts +28 -37
  158. package/dist/components/admin/realtime/comments-thread.vue_vue_type_script_setup_true_lang.js +56 -44
  159. package/dist/components/admin/realtime/menu-live.vue.d.ts +3 -1
  160. package/dist/components/admin/realtime/menu-live.vue_vue_type_script_setup_true_lang.js +42 -12
  161. package/dist/components/admin/supabase/forgot-password-form.vue_vue_type_script_setup_true_lang.js +4 -3
  162. package/dist/components/admin/supabase/set-password-form.vue_vue_type_script_setup_true_lang.js +4 -3
  163. package/dist/components/admin/supabase/use-password-recovery.js +11 -1
  164. package/dist/components/admin/view/create.vue_vue_type_script_setup_true_lang.js +1 -1
  165. package/dist/components/admin/view/edit.vue_vue_type_script_setup_true_lang.js +1 -1
  166. package/dist/components/admin/view/show.vue_vue_type_script_setup_true_lang.js +1 -1
  167. package/dist/components/admin/widgets/job-monitor-row.vue.d.ts +24 -11
  168. package/dist/components/admin/widgets/job-monitor.vue.d.ts +3 -3
  169. package/dist/components/admin/widgets/job-monitor.vue_vue_type_script_setup_true_lang.js +2 -2
  170. package/dist/components/block-editor/block-doc-field.vue.d.ts +3 -3
  171. package/dist/components/block-editor/block-drag-handle.vue_vue_type_script_setup_true_lang.js +3 -4
  172. package/dist/components/block-editor/image-block-config.vue_vue_type_script_setup_true_lang.js +2 -3
  173. package/dist/components/charts/bar-chart.vue.d.ts +6 -2
  174. package/dist/components/charts/bar-chart.vue_vue_type_script_setup_true_lang.js +6 -4
  175. package/dist/components/charts/series-chart.d.ts +1 -1
  176. package/dist/components/charts/series-chart.js +9 -3
  177. package/dist/components/index.js +2 -2
  178. package/dist/components/inspector/configurable.vue.d.ts +0 -21
  179. package/dist/components/inspector/configurable.vue_vue_type_script_setup_true_lang.js +2 -2
  180. package/dist/components/inspector/inspector.vue_vue_type_script_setup_true_lang.js +6 -8
  181. package/dist/components/kanban/kanban-board.vue.d.ts +3 -3
  182. package/dist/components/kanban/kanban-board.vue_vue_type_script_setup_true_lang.js +7 -2
  183. package/dist/components/maps/bbox-field.vue_vue_type_script_setup_true_lang.js +4 -4
  184. package/dist/components/maps/geo-json-field.vue_vue_type_script_setup_true_lang.js +4 -4
  185. package/dist/components/maps/geo-json-layers.vue_vue_type_script_setup_true_lang.js +3 -3
  186. package/dist/components/maps/geo-json-view.vue_vue_type_script_setup_true_lang.js +3 -2
  187. package/dist/components/maps/lat-lng-field.vue_vue_type_script_setup_true_lang.js +4 -3
  188. package/dist/components/maps/lat-lng-input.vue_vue_type_script_setup_true_lang.js +5 -7
  189. package/dist/components/maps/map-canvas.vue_vue_type_script_setup_true_lang.js +3 -3
  190. package/dist/components/maps/use-map.js +1 -3
  191. package/dist/components/maps-draw/shape-input.vue_vue_type_script_setup_true_lang.js +5 -5
  192. package/dist/components/maps-draw/simplify-input.vue_vue_type_script_setup_true_lang.js +2 -2
  193. package/dist/components/maps-osm/geocoding-input.vue_vue_type_script_setup_true_lang.js +2 -1
  194. package/dist/components/maps-osm/map-with-search.vue_vue_type_script_setup_true_lang.js +2 -2
  195. package/dist/components/mdx-editor/mdx-editor-theme.css +47 -0
  196. package/dist/components/mdx-editor/mdx-field.vue.d.ts +21 -11
  197. package/dist/components/mdx-editor/mdx-input.vue_vue_type_script_setup_true_lang.js +4 -1
  198. package/dist/components/monaco/internal/use-json-schema.js +1 -2
  199. package/dist/components/monaco/internal/use-monaco-markers.d.ts +0 -6
  200. package/dist/components/monaco/internal/use-monaco-markers.js +4 -2
  201. package/dist/components/monaco/monaco-json-field-lazy.vue.d.ts +2 -2
  202. package/dist/components/monaco/monaco-json-field-lazy.vue_vue_type_script_setup_true_lang.js +3 -2
  203. package/dist/components/monaco/monaco-json-field.vue.d.ts +3 -3
  204. package/dist/components/monaco/monaco-json-input-lazy.vue_vue_type_script_setup_true_lang.js +4 -4
  205. package/dist/components/rich-text-input/rich-text-field.vue.d.ts +3 -3
  206. package/dist/components/ui/avatar.js +1 -1
  207. package/dist/components/ui/badge.js +4 -4
  208. package/dist/components/ui/button-variants.js +1 -1
  209. package/dist/components/ui/chart/chart-container.vue_vue_type_script_setup_true_lang.js +1 -1
  210. package/dist/components/ui/checkbox.vue_vue_type_script_setup_true_lang.js +1 -1
  211. package/dist/components/ui/command/command-dialog.vue_vue_type_script_setup_true_lang.js +1 -1
  212. package/dist/components/ui/sidebar/sidebar-menu-button.vue_vue_type_script_setup_true_lang.js +1 -1
  213. package/dist/components/ui/sidebar/sidebar-parts.js +2 -2
  214. package/dist/components/ui/sidebar/sidebar.vue_vue_type_script_setup_true_lang.js +2 -2
  215. package/dist/controllers/use-controller-for-id.d.ts +2 -2
  216. package/dist/controllers/use-prev-next-controller.d.ts +2 -2
  217. package/dist/controllers/use-reference-many-field-controller.d.ts +4 -4
  218. package/dist/controllers/use-reference-one-field-controller.d.ts +4 -4
  219. package/dist/create-resource-components.d.ts +225 -117
  220. package/dist/data/undoable.js +2 -2
  221. package/dist/form/use-form.d.ts +5 -3
  222. package/dist/form/use-form.js +1 -1
  223. package/dist/form/use-input.d.ts +0 -2
  224. package/dist/form/use-input.js +1 -2
  225. package/dist/index.js +2 -2
  226. package/dist/resource-context.d.ts +5 -1
  227. package/dist/resource-context.js +4 -0
  228. package/dist/router/use-get-path-for-record.d.ts +3 -3
  229. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link DurationField}. */
3
- export interface DurationFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface DurationFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -11,7 +11,7 @@ export interface DurationFieldProps<RecordType extends LooseRecord = LooseRecord
11
11
  }
12
12
  declare const _default: typeof __VLS_export;
13
13
  export default _default;
14
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
14
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
15
15
  props: import("vue").PublicProps & __VLS_PrettifyLocal<DurationFieldProps<RecordType>> & (typeof globalThis extends {
16
16
  __VLS_PROPS_FALLBACK: infer P;
17
17
  } ? P : {});
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link EmailField}. */
3
- export interface EmailFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface EmailFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -9,7 +9,7 @@ export interface EmailFieldProps<RecordType extends LooseRecord = LooseRecord> {
9
9
  }
10
10
  declare const _default: typeof __VLS_export;
11
11
  export default _default;
12
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
12
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
13
13
  props: import("vue").PublicProps & __VLS_PrettifyLocal<EmailFieldProps<RecordType>> & (typeof globalThis extends {
14
14
  __VLS_PROPS_FALLBACK: infer P;
15
15
  } ? P : {});
@@ -6,8 +6,8 @@
6
6
  * `lib/field-types.ts`, narrowed to the keys the Vue fields actually carry
7
7
  * (no `resource`, no DataTable column keys, `class` where React has `className`).
8
8
  */
9
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
10
- export interface FieldProps<RecordType extends LooseRecord = LooseRecord> {
9
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
10
+ export interface FieldProps<RecordType extends ResourceRecord = LooseRecord> {
11
11
  /** Name of the property to display (dot/bracket path). */
12
12
  source: SourceProp<RecordType>;
13
13
  /** The record to render. Defaults to the ambient `RecordContext` value. */
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link FileField}. */
3
- export interface FileFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface FileFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -17,7 +17,7 @@ export interface FileFieldProps<RecordType extends LooseRecord = LooseRecord> {
17
17
  }
18
18
  declare const _default: typeof __VLS_export;
19
19
  export default _default;
20
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
20
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
21
21
  props: import("vue").PublicProps & __VLS_PrettifyLocal<FileFieldProps<RecordType>> & (typeof globalThis extends {
22
22
  __VLS_PROPS_FALLBACK: infer P;
23
23
  } ? P : {});
@@ -11,9 +11,9 @@
11
11
  * Renders nothing until an ambient (or overridden) record resolves.
12
12
  */
13
13
  import type { VNode } from "vue";
14
- import type { LooseRecord, SourceProp } from "@chelone/core";
14
+ import type { LooseRecord, ResourceRecord, SourceProp } from "@chelone/core";
15
15
  /** Props for {@link FunctionField}. */
16
- export interface FunctionFieldProps<RecordType extends LooseRecord = LooseRecord> {
16
+ export interface FunctionFieldProps<RecordType extends ResourceRecord = LooseRecord> {
17
17
  record?: RecordType;
18
18
  /** Optional source, forwarded to the default slot for convenience. */
19
19
  source?: SourceProp<RecordType>;
@@ -21,7 +21,7 @@ export interface FunctionFieldProps<RecordType extends LooseRecord = LooseRecord
21
21
  }
22
22
  declare const _default: typeof __VLS_export;
23
23
  export default _default;
24
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
24
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
25
25
  props: import("vue").PublicProps & __VLS_PrettifyLocal<FunctionFieldProps<RecordType>> & (typeof globalThis extends {
26
26
  __VLS_PROPS_FALLBACK: infer P;
27
27
  } ? P : {});
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link ImageField}. */
3
- export interface ImageFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface ImageFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -13,7 +13,7 @@ export interface ImageFieldProps<RecordType extends LooseRecord = LooseRecord> {
13
13
  }
14
14
  declare const _default: typeof __VLS_export;
15
15
  export default _default;
16
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
16
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
17
  props: import("vue").PublicProps & __VLS_PrettifyLocal<ImageFieldProps<RecordType>> & (typeof globalThis extends {
18
18
  __VLS_PROPS_FALLBACK: infer P;
19
19
  } ? P : {});
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link JsonField}. */
3
- export interface JsonFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface JsonFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -11,7 +11,7 @@ export interface JsonFieldProps<RecordType extends LooseRecord = LooseRecord> {
11
11
  }
12
12
  declare const _default: typeof __VLS_export;
13
13
  export default _default;
14
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
14
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
15
15
  props: import("vue").PublicProps & __VLS_PrettifyLocal<JsonFieldProps<RecordType>> & (typeof globalThis extends {
16
16
  __VLS_PROPS_FALLBACK: infer P;
17
17
  } ? P : {});
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link NumberField}. */
3
- export interface NumberFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface NumberFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -15,7 +15,7 @@ export interface NumberFieldProps<RecordType extends LooseRecord = LooseRecord>
15
15
  }
16
16
  declare const _default: typeof __VLS_export;
17
17
  export default _default;
18
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
18
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
19
19
  props: import("vue").PublicProps & __VLS_PrettifyLocal<NumberFieldProps<RecordType>> & (typeof globalThis extends {
20
20
  __VLS_PROPS_FALLBACK: infer P;
21
21
  } ? P : {});
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link PhoneField}. */
3
- export interface PhoneFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface PhoneFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -13,7 +13,7 @@ export interface PhoneFieldProps<RecordType extends LooseRecord = LooseRecord> {
13
13
  }
14
14
  declare const _default: typeof __VLS_export;
15
15
  export default _default;
16
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
16
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
17
  props: import("vue").PublicProps & __VLS_PrettifyLocal<PhoneFieldProps<RecordType>> & (typeof globalThis extends {
18
18
  __VLS_PROPS_FALLBACK: infer P;
19
19
  } ? P : {});
@@ -1,5 +1,6 @@
1
1
  import { useFieldValue } from "../../../record/use-field-value.js";
2
2
  import { useTranslate } from "../../../i18n/use-translate.js";
3
+ import { cn } from "../../../lib/utils.js";
3
4
  import { Fragment, computed, createCommentVNode, createElementBlock, defineComponent, normalizeClass, openBlock, toDisplayString } from "vue";
4
5
  import { parsePhoneNumber } from "libphonenumber-js";
5
6
  // src/components/admin/fields/phone-field.vue?vue&type=script&setup=true&lang.ts
@@ -29,6 +30,7 @@ var phone_field_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
29
30
  */
30
31
  const props = __props;
31
32
  const displayFormat = computed(() => props.displayFormat ?? "national");
33
+ const linkClass = computed(() => cn("underline hover:no-underline", props.class));
32
34
  const value = useFieldValue({
33
35
  source: props.source,
34
36
  record: props.record,
@@ -62,7 +64,7 @@ var phone_field_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
62
64
  key: 0,
63
65
  "data-slot": "phone-field",
64
66
  href: parsed.value.href,
65
- class: normalizeClass(props.class)
67
+ class: normalizeClass(linkClass.value)
66
68
  }, toDisplayString(parsed.value.formatted), 11, _hoisted_1)) : (openBlock(), createElementBlock("span", {
67
69
  key: 1,
68
70
  "data-slot": "phone-field",
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceKey, SourceProp, SourceValue } from "@chelone/core";
1
+ import { type LooseRecord, type ResourceRecord, type SourceKey, type SourceProp, type SourceValue } from "@chelone/core";
2
2
  /** Props for {@link RatingField}. */
3
- export interface RatingFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface RatingFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  /** The record to render. Defaults to the ambient `RecordContext` value. */
6
6
  record?: RecordType;
@@ -19,7 +19,7 @@ export interface RatingFieldProps<RecordType extends LooseRecord = LooseRecord>
19
19
  }
20
20
  declare const _default: typeof __VLS_export;
21
21
  export default _default;
22
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
22
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
23
23
  props: import("vue").PublicProps & __VLS_PrettifyLocal<RatingFieldProps<RecordType>> & (typeof globalThis extends {
24
24
  __VLS_PROPS_FALLBACK: infer P;
25
25
  } ? P : {});
@@ -1,7 +1,8 @@
1
1
  import { useFieldValue } from "../../../record/use-field-value.js";
2
- import { RecordContextKey } from "../../../record/record-context.js";
2
+ import { useRecordContextRef } from "../../../record/record-context.js";
3
3
  import { useTranslate } from "../../../i18n/use-translate.js";
4
- import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, inject, normalizeClass, openBlock, renderList, toDisplayString } from "vue";
4
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString } from "vue";
5
+ import { getAtPath } from "@chelone/core";
5
6
  // src/components/admin/fields/rating-field.vue?vue&type=script&setup=true&lang.ts
6
7
  var _hoisted_1 = ["aria-label"];
7
8
  var _hoisted_2 = { class: "inline-flex" };
@@ -39,13 +40,12 @@ var rating_field_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
39
40
  record: props.record,
40
41
  defaultValue: props.defaultValue
41
42
  });
42
- const injectedRecord = inject(RecordContextKey, null);
43
- const ctxRecord = computed(() => props.record ?? injectedRecord?.value);
43
+ const ctxRecord = useRecordContextRef(() => props.record);
44
44
  const translate = useTranslate();
45
45
  const count = computed(() => {
46
46
  const rec = ctxRecord.value;
47
47
  if (!props.countSource || !rec) return void 0;
48
- const c = rec[props.countSource];
48
+ const c = getAtPath(rec, props.countSource);
49
49
  return typeof c === "number" ? c : void 0;
50
50
  });
51
51
  const emptyText = computed(() => props.empty ? translate(props.empty, { _: props.empty }) : null);
@@ -15,9 +15,9 @@
15
15
  */
16
16
  import { type VNode } from "vue";
17
17
  import type { Component } from "vue";
18
- import type { LooseRecord, SourceProp } from "@chelone/core";
18
+ import type { LooseRecord, ResourceRecord, SourceProp } from "@chelone/core";
19
19
  /** Props for {@link RecordField}. */
20
- export interface RecordFieldProps<RecordType extends LooseRecord = LooseRecord> {
20
+ export interface RecordFieldProps<RecordType extends ResourceRecord = LooseRecord> {
21
21
  source?: SourceProp<RecordType>;
22
22
  /** Explicit label, or `false`/`""` to hide it. Absent → humanized `source`. */
23
23
  label?: string | false;
@@ -33,7 +33,7 @@ export interface RecordFieldProps<RecordType extends LooseRecord = LooseRecord>
33
33
  }
34
34
  declare const _default: typeof __VLS_export;
35
35
  export default _default;
36
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
36
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
37
37
  props: import("vue").PublicProps & __VLS_PrettifyLocal<RecordFieldProps<RecordType>> & (typeof globalThis extends {
38
38
  __VLS_PROPS_FALLBACK: infer P;
39
39
  } ? P : {});
@@ -1,12 +1,12 @@
1
- import type { FilterPayload, LooseRecord, SortPayload, SourceProp } from "@chelone/core";
1
+ import type { FilterPayload, LooseRecord, ResourceRecord, SortPayload, SourceProp } from "@chelone/core";
2
2
  /** Props for {@link ReferenceArrayField}. */
3
- export interface ReferenceArrayFieldProps {
3
+ export interface ReferenceArrayFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  /** The FK-array field on the current record (e.g. `"tag_ids"`). */
5
- source: SourceProp;
5
+ source: SourceProp<RecordType>;
6
6
  /** The referenced resource the ids point at (e.g. `"tags"`). */
7
7
  reference: string;
8
8
  /** The record to read the FK array off. Defaults to the ambient record. */
9
- record?: LooseRecord;
9
+ record?: RecordType;
10
10
  /** Client-side sort for the resolved list. */
11
11
  sort?: SortPayload;
12
12
  /** Client-side filter for the resolved list. */
@@ -16,11 +16,21 @@ export interface ReferenceArrayFieldProps {
16
16
  }
17
17
  declare const _default: typeof __VLS_export;
18
18
  export default _default;
19
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ReferenceArrayFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ReferenceArrayFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
20
- default?: (props: {}) => any;
21
- }>;
22
- type __VLS_WithSlots<T, S> = T & {
23
- new (): {
24
- $slots: S;
19
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
20
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<ReferenceArrayFieldProps<RecordType>> & (typeof globalThis extends {
21
+ __VLS_PROPS_FALLBACK: infer P;
22
+ } ? P : {});
23
+ expose: (exposed: {}) => void;
24
+ attrs: any;
25
+ slots: {
26
+ default?: (props: {}) => any;
25
27
  };
28
+ emit: {};
29
+ }>) => import("vue").VNode & {
30
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
26
31
  };
32
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
33
+ [K in keyof T]: T[K];
34
+ } : {
35
+ [K in keyof T as K]: T[K];
36
+ }) & {};
@@ -1,31 +1,10 @@
1
- /**
2
- * `<ReferenceField>` — follows a foreign key to a related record and displays
3
- * it. The Vue analog of `@chelone/react`'s `fields/reference-field.tsx`. Reads
4
- * the FK at `source` off the ambient record, fetches the referenced record with
5
- * `useGetManyAggregate` (vue-query, enabled only when the FK is present), and renders
6
- * either the default slot (against the referenced record's `RecordContext`) or —
7
- * with no slot — the reference's record representation.
8
- *
9
- * Rebridge note (mirrors the React twin): Chelone carries no
10
- * `ReferenceFieldBase` stack — this field resolves the single record directly
11
- * with `useGetManyAggregate` and publishes it via `provideRecordContext`.
12
- *
13
- * The content is wrapped in a `<RouterLink>` to the referenced record when
14
- * `useGetPathForRecord` yields a path. The link stops click propagation so a
15
- * `<DataTable>` row click does not also fire.
16
- *
17
- * The content is wrapped in a `<RouterLink>` to the referenced record when
18
- * `useGetPathForRecord` yields a path; the link stops click propagation so a
19
- * `<DataTable>` row click does not also fire.
20
- */
21
- import { type LooseRecord } from "@chelone/core";
22
- import type { SourceProp } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp } from "@chelone/core";
23
2
  import type { LinkToType } from "../../../router/index.js";
24
3
  /** Props for {@link ReferenceField}. */
25
- export interface ReferenceFieldProps {
26
- source: SourceProp;
4
+ export interface ReferenceFieldProps<RecordType extends ResourceRecord = LooseRecord> {
5
+ source: SourceProp<RecordType>;
27
6
  reference: string;
28
- record?: LooseRecord;
7
+ record?: RecordType;
29
8
  empty?: string;
30
9
  /**
31
10
  * Where the value links. Omit to infer the referenced record's show page, else
@@ -35,15 +14,23 @@ export interface ReferenceFieldProps {
35
14
  }
36
15
  declare const _default: typeof __VLS_export;
37
16
  export default _default;
38
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ReferenceFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ReferenceFieldProps> & Readonly<{}>, {
39
- link: LinkToType;
40
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
41
- default?: (props: {}) => any;
42
- } & {
43
- default?: (props: {}) => any;
44
- }>;
45
- type __VLS_WithSlots<T, S> = T & {
46
- new (): {
47
- $slots: S;
17
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
18
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<ReferenceFieldProps<RecordType>> & (typeof globalThis extends {
19
+ __VLS_PROPS_FALLBACK: infer P;
20
+ } ? P : {});
21
+ expose: (exposed: {}) => void;
22
+ attrs: any;
23
+ slots: {
24
+ default?: (props: {}) => any;
25
+ } & {
26
+ default?: (props: {}) => any;
48
27
  };
28
+ emit: {};
29
+ }>) => import("vue").VNode & {
30
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
49
31
  };
32
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
33
+ [K in keyof T]: T[K];
34
+ } : {
35
+ [K in keyof T as K]: T[K];
36
+ }) & {};
@@ -1,14 +1,14 @@
1
- import type { FilterPayload, LooseRecord, SourceProp } from "@chelone/core";
1
+ import type { FilterPayload, LooseRecord, ResourceRecord, SourceProp } from "@chelone/core";
2
2
  /** Props for {@link ReferenceManyCount}. */
3
- export interface ReferenceManyCountProps {
3
+ export interface ReferenceManyCountProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  /** The referenced resource holding the reverse FK (e.g. `"books"`). */
5
5
  reference: string;
6
6
  /** The FK field on the reference pointing back at this record (e.g. `"author_id"`). */
7
7
  target: string;
8
8
  /** The field on the current record the `target` matches. Default `"id"`. */
9
- source?: SourceProp;
9
+ source?: SourceProp<RecordType>;
10
10
  /** The record whose id is matched. Defaults to the ambient record. */
11
- record?: LooseRecord;
11
+ record?: RecordType;
12
12
  /** Permanent filter merged into the lookup, so only matching rows are counted. */
13
13
  filter?: FilterPayload;
14
14
  /** Shown while the count is loading. Nothing by default. */
@@ -20,4 +20,19 @@ export interface ReferenceManyCountProps {
20
20
  }
21
21
  declare const _default: typeof __VLS_export;
22
22
  export default _default;
23
- declare const __VLS_export: import("vue").DefineComponent<ReferenceManyCountProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ReferenceManyCountProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
24
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<ReferenceManyCountProps<RecordType>> & (typeof globalThis extends {
25
+ __VLS_PROPS_FALLBACK: infer P;
26
+ } ? P : {});
27
+ expose: (exposed: {}) => void;
28
+ attrs: any;
29
+ slots: {};
30
+ emit: {};
31
+ }>) => import("vue").VNode & {
32
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
33
+ };
34
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
35
+ [K in keyof T]: T[K];
36
+ } : {
37
+ [K in keyof T as K]: T[K];
38
+ }) & {};
@@ -1,14 +1,14 @@
1
- import type { FilterPayload, LooseRecord, SortPayload, SourceProp } from "@chelone/core";
1
+ import type { FilterPayload, LooseRecord, ResourceRecord, SortPayload, SourceProp } from "@chelone/core";
2
2
  /** Props for {@link ReferenceManyField}. */
3
- export interface ReferenceManyFieldProps {
3
+ export interface ReferenceManyFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  /** The referenced resource holding the reverse FK (e.g. `"books"`). */
5
5
  reference: string;
6
6
  /** The FK field on the reference pointing back at this record (e.g. `"author_id"`). */
7
7
  target: string;
8
8
  /** The field on the current record the `target` matches. Default `"id"`. */
9
- source?: SourceProp;
9
+ source?: SourceProp<RecordType>;
10
10
  /** The record whose id is matched. Defaults to the ambient record. */
11
- record?: LooseRecord;
11
+ record?: RecordType;
12
12
  /** Initial sort of the related list. Default id ascending. */
13
13
  sort?: SortPayload;
14
14
  /** Permanent filter merged into the reference lookup. */
@@ -22,13 +22,21 @@ export interface ReferenceManyFieldProps {
22
22
  }
23
23
  declare const _default: typeof __VLS_export;
24
24
  export default _default;
25
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ReferenceManyFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ReferenceManyFieldProps> & Readonly<{}>, {
26
- storeKey: string | false;
27
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
28
- default?: (props: {}) => any;
29
- }>;
30
- type __VLS_WithSlots<T, S> = T & {
31
- new (): {
32
- $slots: S;
25
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
26
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<ReferenceManyFieldProps<RecordType>> & (typeof globalThis extends {
27
+ __VLS_PROPS_FALLBACK: infer P;
28
+ } ? P : {});
29
+ expose: (exposed: {}) => void;
30
+ attrs: any;
31
+ slots: {
32
+ default?: (props: {}) => any;
33
33
  };
34
+ emit: {};
35
+ }>) => import("vue").VNode & {
36
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
34
37
  };
38
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
39
+ [K in keyof T]: T[K];
40
+ } : {
41
+ [K in keyof T as K]: T[K];
42
+ }) & {};
@@ -1,14 +1,14 @@
1
- import type { FilterPayload, LooseRecord, SortPayload, SourceProp } from "@chelone/core";
1
+ import type { FilterPayload, LooseRecord, ResourceRecord, SortPayload, SourceProp } from "@chelone/core";
2
2
  /** Props for {@link ReferenceOneField}. */
3
- export interface ReferenceOneFieldProps {
3
+ export interface ReferenceOneFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  /** The referenced resource holding the one-to-one record (e.g. `"bios"`). */
5
5
  reference: string;
6
6
  /** The FK field on the reference pointing back at this record (e.g. `"author_id"`). */
7
7
  target: string;
8
8
  /** The field on the current record the `target` matches. Default `"id"`. */
9
- source?: SourceProp;
9
+ source?: SourceProp<RecordType>;
10
10
  /** The record whose id is matched. Defaults to the ambient record. */
11
- record?: LooseRecord;
11
+ record?: RecordType;
12
12
  /** Sort applied to the reference lookup (the first match is used). Read when the record id changes; remount with a `key` to change it otherwise. */
13
13
  sort?: SortPayload;
14
14
  /** Permanent filter merged into the reference lookup. Read when the record id changes; remount with a `key` to change it otherwise. */
@@ -22,13 +22,23 @@ export interface ReferenceOneFieldProps {
22
22
  }
23
23
  declare const _default: typeof __VLS_export;
24
24
  export default _default;
25
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ReferenceOneFieldProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ReferenceOneFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
26
- default?: (props: {
27
- record: LooseRecord;
28
- }) => any;
29
- }>;
30
- type __VLS_WithSlots<T, S> = T & {
31
- new (): {
32
- $slots: S;
25
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
26
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<ReferenceOneFieldProps<RecordType>> & (typeof globalThis extends {
27
+ __VLS_PROPS_FALLBACK: infer P;
28
+ } ? P : {});
29
+ expose: (exposed: {}) => void;
30
+ attrs: any;
31
+ slots: {
32
+ default?: (props: {
33
+ record: LooseRecord;
34
+ }) => any;
33
35
  };
36
+ emit: {};
37
+ }>) => import("vue").VNode & {
38
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
34
39
  };
40
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
41
+ [K in keyof T]: T[K];
42
+ } : {
43
+ [K in keyof T as K]: T[K];
44
+ }) & {};
@@ -1,7 +1,7 @@
1
- import type { LooseRecord, SourcePath, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourcePath, SourceProp, SourceValue } from "@chelone/core";
2
2
  import type { ChoiceRecord, OptionText } from "../../../choices/use-choices.js";
3
3
  /** Props for {@link SelectField}. */
4
- export interface SelectFieldProps<TChoice extends ChoiceRecord = ChoiceRecord, RecordType extends LooseRecord = LooseRecord> {
4
+ export interface SelectFieldProps<TChoice extends ChoiceRecord = ChoiceRecord, RecordType extends ResourceRecord = LooseRecord> {
5
5
  source: SourceProp<RecordType>;
6
6
  record?: RecordType;
7
7
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -18,7 +18,7 @@ export interface SelectFieldProps<TChoice extends ChoiceRecord = ChoiceRecord, R
18
18
  }
19
19
  declare const _default: typeof __VLS_export;
20
20
  export default _default;
21
- declare const __VLS_export: <TChoice extends ChoiceRecord = ChoiceRecord, RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
21
+ declare const __VLS_export: <TChoice extends ChoiceRecord = ChoiceRecord, RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
22
22
  props: import("vue").PublicProps & __VLS_PrettifyLocal<SelectFieldProps<TChoice, RecordType>> & (typeof globalThis extends {
23
23
  __VLS_PROPS_FALLBACK: infer P;
24
24
  } ? P : {});
@@ -1,8 +1,8 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  import type { SubscriptionPlan } from "../inputs/subscription-plan-picker.vue.js";
3
3
  export type { SubscriptionPlan };
4
4
  /** Props for {@link SubscriptionPlanField}. */
5
- export interface SubscriptionPlanFieldProps<RecordType extends LooseRecord = LooseRecord> {
5
+ export interface SubscriptionPlanFieldProps<RecordType extends ResourceRecord = LooseRecord> {
6
6
  source: SourceProp<RecordType>;
7
7
  record?: RecordType;
8
8
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -13,7 +13,7 @@ export interface SubscriptionPlanFieldProps<RecordType extends LooseRecord = Loo
13
13
  }
14
14
  declare const _default: typeof __VLS_export;
15
15
  export default _default;
16
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
16
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
17
17
  props: import("vue").PublicProps & __VLS_PrettifyLocal<SubscriptionPlanFieldProps<RecordType>> & (typeof globalThis extends {
18
18
  __VLS_PROPS_FALLBACK: infer P;
19
19
  } ? P : {});
@@ -1,14 +1,14 @@
1
- import type { LooseRecord } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord } from "@chelone/core";
2
2
  import type { BadgeVariant } from "../../ui/badge.js";
3
3
  import type { FieldProps } from "./field-props.js";
4
4
  /** Props for {@link TextArrayField}. */
5
- export interface TextArrayFieldProps<RecordType extends LooseRecord = LooseRecord> extends FieldProps<RecordType> {
5
+ export interface TextArrayFieldProps<RecordType extends ResourceRecord = LooseRecord> extends FieldProps<RecordType> {
6
6
  /** Badge variant. Default `outline` (parity with the React twin). */
7
7
  variant?: BadgeVariant;
8
8
  }
9
9
  declare const _default: typeof __VLS_export;
10
10
  export default _default;
11
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
11
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
12
12
  props: import("vue").PublicProps & __VLS_PrettifyLocal<TextArrayFieldProps<RecordType>> & (typeof globalThis extends {
13
13
  __VLS_PROPS_FALLBACK: infer P;
14
14
  } ? P : {});
@@ -1,6 +1,6 @@
1
- import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
1
+ import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
2
2
  /** Props for {@link TextField}. */
3
- export interface TextFieldProps<RecordType extends LooseRecord = LooseRecord> {
3
+ export interface TextFieldProps<RecordType extends ResourceRecord = LooseRecord> {
4
4
  source: SourceProp<RecordType>;
5
5
  record?: RecordType;
6
6
  defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
@@ -8,7 +8,7 @@ export interface TextFieldProps<RecordType extends LooseRecord = LooseRecord> {
8
8
  }
9
9
  declare const _default: typeof __VLS_export;
10
10
  export default _default;
11
- declare const __VLS_export: <RecordType extends LooseRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
11
+ declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
12
12
  props: import("vue").PublicProps & __VLS_PrettifyLocal<TextFieldProps<RecordType>> & (typeof globalThis extends {
13
13
  __VLS_PROPS_FALLBACK: infer P;
14
14
  } ? P : {});