@chelone/vue 0.10.0 → 0.11.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 (113) hide show
  1. package/dist/admin/admin-shell.vue_vue_type_script_setup_true_lang.js +15 -2
  2. package/dist/admin/resource-registry.d.ts +6 -2
  3. package/dist/admin/resource-registry.js +0 -18
  4. package/dist/admin/resource.vue.d.ts +6 -2
  5. package/dist/choices/choices-context.d.ts +9 -9
  6. package/dist/choices/use-reference-input.js +2 -2
  7. package/dist/components/admin/auth/access-denied.vue.d.ts +2 -2
  8. package/dist/components/admin/auth/access-denied.vue_vue_type_script_setup_true_lang.js +2 -2
  9. package/dist/components/admin/auth/auth-error.vue.d.ts +2 -2
  10. package/dist/components/admin/auth/auth-error.vue_vue_type_script_setup_true_lang.js +3 -3
  11. package/dist/components/admin/auth/authentication-error.vue.d.ts +2 -2
  12. package/dist/components/admin/auth/authentication-error.vue_vue_type_script_setup_true_lang.js +2 -2
  13. package/dist/components/admin/auth/login-form.vue_vue_type_script_setup_true_lang.js +2 -2
  14. package/dist/components/admin/auth/login-with-email.vue.d.ts +1 -1
  15. package/dist/components/admin/auth/login-with-email.vue_vue_type_script_setup_true_lang.js +2 -2
  16. package/dist/components/admin/auth/logout.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/components/admin/auth/permission-matrix.vue_vue_type_script_setup_true_lang.js +1 -1
  18. package/dist/components/admin/buttons/bulk-delete-button.vue.d.ts +2 -2
  19. package/dist/components/admin/buttons/bulk-delete-button.vue_vue_type_script_setup_true_lang.js +3 -3
  20. package/dist/components/admin/buttons/bulk-export-button.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/components/admin/buttons/bulk-update-button.vue_vue_type_script_setup_true_lang.js +2 -2
  22. package/dist/components/admin/buttons/cancel-button.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/components/admin/buttons/clone-button.vue_vue_type_script_setup_true_lang.js +1 -1
  24. package/dist/components/admin/buttons/columns-button.vue_vue_type_script_setup_true_lang.js +1 -1
  25. package/dist/components/admin/buttons/create-button.vue_vue_type_script_setup_true_lang.js +1 -1
  26. package/dist/components/admin/buttons/delete-button.vue.d.ts +2 -2
  27. package/dist/components/admin/buttons/delete-button.vue_vue_type_script_setup_true_lang.js +3 -3
  28. package/dist/components/admin/buttons/edit-button.vue_vue_type_script_setup_true_lang.js +1 -1
  29. package/dist/components/admin/buttons/export-button.vue_vue_type_script_setup_true_lang.js +1 -1
  30. package/dist/components/admin/buttons/fields-selector.vue_vue_type_script_setup_true_lang.js +5 -5
  31. package/dist/components/admin/buttons/filter-button.vue_vue_type_script_setup_true_lang.js +2 -2
  32. package/dist/components/admin/buttons/list-button.vue_vue_type_script_setup_true_lang.js +1 -1
  33. package/dist/components/admin/buttons/locales-menu.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/components/admin/buttons/refresh-button.vue_vue_type_script_setup_true_lang.js +1 -1
  35. package/dist/components/admin/buttons/refresh-icon-button.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/components/admin/buttons/save-button.vue_vue_type_script_setup_true_lang.js +2 -2
  37. package/dist/components/admin/buttons/select-all-button.vue_vue_type_script_setup_true_lang.js +1 -1
  38. package/dist/components/admin/buttons/show-button.vue_vue_type_script_setup_true_lang.js +1 -1
  39. package/dist/components/admin/buttons/sidebar-toggle-button.vue_vue_type_script_setup_true_lang.js +1 -1
  40. package/dist/components/admin/buttons/skip-navigation-button.vue.d.ts +1 -1
  41. package/dist/components/admin/buttons/skip-navigation-button.vue_vue_type_script_setup_true_lang.js +1 -1
  42. package/dist/components/admin/buttons/sort-button.vue_vue_type_script_setup_true_lang.js +2 -2
  43. package/dist/components/admin/buttons/update-button.vue.d.ts +2 -2
  44. package/dist/components/admin/buttons/update-button.vue_vue_type_script_setup_true_lang.js +3 -3
  45. package/dist/components/admin/common/application-updated-notification.vue_vue_type_script_setup_true_lang.js +2 -2
  46. package/dist/components/admin/csv-import/csv-import.vue.d.ts +24 -14
  47. package/dist/components/admin/csv-import/csv-import.vue_vue_type_script_setup_true_lang.js +18 -18
  48. package/dist/components/admin/feedback/confirm.vue.d.ts +2 -2
  49. package/dist/components/admin/feedback/confirm.vue_vue_type_script_setup_true_lang.js +2 -2
  50. package/dist/components/admin/feedback/error.vue_vue_type_script_setup_true_lang.js +3 -3
  51. package/dist/components/admin/feedback/loading-indicator.vue_vue_type_script_setup_true_lang.js +2 -2
  52. package/dist/components/admin/feedback/loading.vue.d.ts +2 -2
  53. package/dist/components/admin/feedback/loading.vue_vue_type_script_setup_true_lang.js +2 -2
  54. package/dist/components/admin/feedback/not-found.vue_vue_type_script_setup_true_lang.js +3 -3
  55. package/dist/components/admin/feedback/notification.vue_vue_type_script_setup_true_lang.js +1 -1
  56. package/dist/components/admin/feedback/offline.vue_vue_type_script_setup_true_lang.js +1 -1
  57. package/dist/components/admin/fields/boolean-field.vue_vue_type_script_setup_true_lang.js +1 -1
  58. package/dist/components/admin/form/translatable-inputs-tab.vue_vue_type_script_setup_true_lang.js +1 -1
  59. package/dist/components/admin/inputs/array-input-row.vue_vue_type_script_setup_true_lang.js +3 -3
  60. package/dist/components/admin/inputs/array-input.vue_vue_type_script_setup_true_lang.js +3 -3
  61. package/dist/components/admin/inputs/autocomplete-array-input.vue_vue_type_script_setup_true_lang.js +3 -3
  62. package/dist/components/admin/inputs/autocomplete-input.vue_vue_type_script_setup_true_lang.js +2 -2
  63. package/dist/components/admin/inputs/datagrid-input.vue_vue_type_script_setup_true_lang.js +2 -2
  64. package/dist/components/admin/inputs/file-input-preview.vue_vue_type_script_setup_true_lang.js +2 -2
  65. package/dist/components/admin/inputs/file-input.vue_vue_type_script_setup_true_lang.js +2 -2
  66. package/dist/components/admin/inputs/image-input.vue_vue_type_script_setup_true_lang.js +2 -2
  67. package/dist/components/admin/inputs/in-place-editor-form.vue_vue_type_script_setup_true_lang.js +4 -4
  68. package/dist/components/admin/inputs/in-place-editor.vue_vue_type_script_setup_true_lang.js +1 -1
  69. package/dist/components/admin/inputs/nullable-boolean-input.vue_vue_type_script_setup_true_lang.js +3 -3
  70. package/dist/components/admin/inputs/password-input.vue_vue_type_script_setup_true_lang.js +1 -1
  71. package/dist/components/admin/inputs/resettable-text-input.vue_vue_type_script_setup_true_lang.js +1 -1
  72. package/dist/components/admin/inputs/search-input.vue_vue_type_script_setup_true_lang.js +2 -2
  73. package/dist/components/admin/inputs/select-array-input.vue_vue_type_script_setup_true_lang.js +2 -2
  74. package/dist/components/admin/inputs/text-array-input.vue_vue_type_script_setup_true_lang.js +1 -1
  75. package/dist/components/admin/layout/command-menu-logout.vue_vue_type_script_setup_true_lang.js +2 -2
  76. package/dist/components/admin/layout/dashboard-menu-item.vue.d.ts +1 -1
  77. package/dist/components/admin/layout/dashboard-menu-item.vue_vue_type_script_setup_true_lang.js +1 -1
  78. package/dist/components/admin/layout/theme-mode-toggle.vue_vue_type_script_setup_true_lang.js +1 -1
  79. package/dist/components/admin/layout/user-menu-inner.vue_vue_type_script_setup_true_lang.js +1 -1
  80. package/dist/components/admin/list/approval-queue-row.vue_vue_type_script_setup_true_lang.js +1 -1
  81. package/dist/components/admin/list/bulk-actions-toolbar.vue_vue_type_script_setup_true_lang.js +2 -2
  82. package/dist/components/admin/list/bulk-edit-drawer.vue_vue_type_script_setup_true_lang.js +4 -4
  83. package/dist/components/admin/list/calendar-agenda-view.vue_vue_type_script_setup_true_lang.js +1 -1
  84. package/dist/components/admin/list/calendar-header.vue_vue_type_script_setup_true_lang.js +5 -5
  85. package/dist/components/admin/list/calendar-list.vue_vue_type_script_setup_true_lang.js +2 -2
  86. package/dist/components/admin/list/count.vue_vue_type_script_setup_true_lang.js +1 -1
  87. package/dist/components/admin/list/filter-form.vue_vue_type_script_setup_true_lang.js +1 -1
  88. package/dist/components/admin/list/filter-list-item.vue_vue_type_script_setup_true_lang.js +1 -1
  89. package/dist/components/admin/list/filter-live-search.vue_vue_type_script_setup_true_lang.js +1 -1
  90. package/dist/components/admin/list/list-no-results.vue_vue_type_script_setup_true_lang.js +2 -2
  91. package/dist/components/admin/list/list-pagination.vue_vue_type_script_setup_true_lang.js +5 -5
  92. package/dist/components/admin/list/prev-next-buttons.vue_vue_type_script_setup_true_lang.js +5 -5
  93. package/dist/components/admin/list/saved-queries-list.vue_vue_type_script_setup_true_lang.js +5 -5
  94. package/dist/components/admin/list/tree-list-node.vue_vue_type_script_setup_true_lang.js +1 -1
  95. package/dist/components/admin/supabase/forgot-password-form.vue_vue_type_script_setup_true_lang.js +1 -1
  96. package/dist/components/admin/supabase/set-password-form.vue_vue_type_script_setup_true_lang.js +3 -3
  97. package/dist/components/admin/supabase/supabase-login-page.vue_vue_type_script_setup_true_lang.js +1 -1
  98. package/dist/components/admin/view/create.vue_vue_type_script_setup_true_lang.js +1 -1
  99. package/dist/components/admin/view/infinite-list.vue_vue_type_script_setup_true_lang.js +1 -1
  100. package/dist/components/admin/view/list.vue_vue_type_script_setup_true_lang.js +1 -1
  101. package/dist/components/admin/view/translatable-fields-tab.vue_vue_type_script_setup_true_lang.js +1 -1
  102. package/dist/components/admin/widgets/job-monitor-row.vue_vue_type_script_setup_true_lang.js +1 -1
  103. package/dist/components/inspector/inspector.vue_vue_type_script_setup_true_lang.js +1 -1
  104. package/dist/controllers/reference-field-options.d.ts +18 -0
  105. package/dist/controllers/reference-field-test-harness.d.ts +3 -2
  106. package/dist/controllers/use-infinite-list-controller.d.ts +3 -3
  107. package/dist/controllers/use-list-controller.d.ts +4 -4
  108. package/dist/controllers/use-reference-many-field-controller.d.ts +8 -15
  109. package/dist/controllers/use-reference-one-field-controller.d.ts +8 -17
  110. package/dist/list/list-context.d.ts +10 -4
  111. package/dist/list/use-list.d.ts +3 -3
  112. package/dist/store/use-saved-queries.d.ts +5 -5
  113. package/package.json +5 -5
@@ -62,15 +62,15 @@ var nullable_boolean_input_vue_vue_type_script_setup_true_lang_default = /*@__PU
62
62
  const options = computed(() => [
63
63
  {
64
64
  value: "",
65
- label: props.nullLabel ? translate(props.nullLabel, { _: props.nullLabel }) : translate("ra.boolean.null", { _: "" })
65
+ label: props.nullLabel ? translate(props.nullLabel, { _: props.nullLabel }) : translate("chelone.boolean.null", { _: "" })
66
66
  },
67
67
  {
68
68
  value: "false",
69
- label: props.falseLabel ? translate(props.falseLabel, { _: props.falseLabel }) : translate("ra.boolean.false", { _: "No" })
69
+ label: props.falseLabel ? translate(props.falseLabel, { _: props.falseLabel }) : translate("chelone.boolean.false", { _: "No" })
70
70
  },
71
71
  {
72
72
  value: "true",
73
- label: props.trueLabel ? translate(props.trueLabel, { _: props.trueLabel }) : translate("ra.boolean.true", { _: "Yes" })
73
+ label: props.trueLabel ? translate(props.trueLabel, { _: props.trueLabel }) : translate("chelone.boolean.true", { _: "Yes" })
74
74
  }
75
75
  ]);
76
76
  function onChange(next) {
@@ -61,7 +61,7 @@ var password_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
61
61
  const props = __props;
62
62
  const visible = ref(props.initiallyVisible === true);
63
63
  const translate = useTranslate();
64
- const toggleLabel = computed(() => visible.value ? translate("ra.input.password.toggle_visible", { _: "Hide password" }) : translate("ra.input.password.toggle_hidden", { _: "Show password" }));
64
+ const toggleLabel = computed(() => visible.value ? translate("chelone.input.password.toggle_visible", { _: "Hide password" }) : translate("chelone.input.password.toggle_hidden", { _: "Show password" }));
65
65
  return (_ctx, _cache) => {
66
66
  return openBlock(), createBlock(text_input_default, {
67
67
  source: __props.source,
@@ -61,7 +61,7 @@ var resettable_text_input_vue_vue_type_script_setup_true_lang_default = /*@__PUR
61
61
  return v != null && v !== "";
62
62
  });
63
63
  const showClearButton = computed(() => props.resettable && (props.clearAlwaysVisible || hasValue.value));
64
- const clearLabel = computed(() => translate("ra.action.clear_input_value", { _: "Clear value" }));
64
+ const clearLabel = computed(() => translate("chelone.action.clear_input_value", { _: "Clear value" }));
65
65
  function handleClear() {
66
66
  form.ambient.setFieldValue(wrappedSource, "");
67
67
  }
@@ -45,8 +45,8 @@ var search_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
45
45
  return v != null && v !== "";
46
46
  });
47
47
  const showClearButton = computed(() => !props.disableClearable && hasValue.value);
48
- const searchPlaceholder = computed(() => props.placeholder ?? translate("ra.action.search", { _: "Search" }));
49
- const clearLabel = computed(() => translate("ra.action.clear_search", { _: "Clear search" }));
48
+ const searchPlaceholder = computed(() => props.placeholder ?? translate("chelone.action.search", { _: "Search" }));
49
+ const clearLabel = computed(() => translate("chelone.action.clear_search", { _: "Clear search" }));
50
50
  function handleClear() {
51
51
  form.ambient.setFieldValue(wrappedSource, "");
52
52
  }
@@ -141,13 +141,13 @@ var select_array_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
141
141
  role: "button",
142
142
  tabindex: "0",
143
143
  class: "cursor-pointer text-muted-foreground opacity-50 hover:opacity-100",
144
- "aria-label": unref(translate)("ra.action.clear_input_value", { _: "Clear value" }),
144
+ "aria-label": unref(translate)("chelone.action.clear_input_value", { _: "Clear value" }),
145
145
  onClick: withModifiers(onClear, ["stop"]),
146
146
  onKeydown: [withKeys(withModifiers(onClear, ["prevent"]), ["enter"]), withKeys(withModifiers(onClear, ["prevent"]), ["space"])]
147
147
  }, "×", 40, _hoisted_7)) : createCommentVNode("", true), _cache[1] || (_cache[1] = createElementVNode("span", {
148
148
  "aria-hidden": "true",
149
149
  class: "opacity-50"
150
- }, "▾", -1))])], 8, _hoisted_3), open.value ? (openBlock(), createElementBlock("div", _hoisted_8, [unref(allChoices).length === 0 ? (openBlock(), createElementBlock("p", _hoisted_9, toDisplayString(unref(translate)("ra.navigation.no_results", { _: "No results" })), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(allChoices), (choice) => {
150
+ }, "▾", -1))])], 8, _hoisted_3), open.value ? (openBlock(), createElementBlock("div", _hoisted_8, [unref(allChoices).length === 0 ? (openBlock(), createElementBlock("p", _hoisted_9, toDisplayString(unref(translate)("chelone.navigation.no_results", { _: "No results" })), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(allChoices), (choice) => {
151
151
  return openBlock(), createElementBlock("label", {
152
152
  key: String(unref(getChoiceValue)(choice)),
153
153
  for: `${unref(id)}-${String(unref(getChoiceValue)(choice))}`,
@@ -98,7 +98,7 @@ var text_array_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
98
98
  disabled: __props.disabled || __props.readonly,
99
99
  onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent", "stop"])),
100
100
  onClick: withModifiers(($event) => removeValue(index), ["prevent"])
101
- }, [createElementVNode("span", _hoisted_4, toDisplayString(unref(translate)("ra.action.remove", { _: "Remove" })), 1), _cache[2] || (_cache[2] = createElementVNode("span", { "aria-hidden": "true" }, "×", -1))], 40, _hoisted_3)]);
101
+ }, [createElementVNode("span", _hoisted_4, toDisplayString(unref(translate)("chelone.action.remove", { _: "Remove" })), 1), _cache[2] || (_cache[2] = createElementVNode("span", { "aria-hidden": "true" }, "×", -1))], 40, _hoisted_3)]);
102
102
  }), 128)), withDirectives(createElementVNode("input", {
103
103
  id: unref(id),
104
104
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inputValue.value = $event),
@@ -23,11 +23,11 @@ var command_menu_logout_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
23
23
  return (_ctx, _cache) => {
24
24
  return openBlock(), createBlock(unref(command_group_default), { heading: unref(translate)("chelone.command_menu.account", { _: "Account" }) }, {
25
25
  default: withCtx(() => [createVNode(unref(command_item_default), {
26
- value: unref(translate)("ra.auth.logout", { _: "Log out" }),
26
+ value: unref(translate)("chelone.auth.logout", { _: "Log out" }),
27
27
  keywords: ["sign out"],
28
28
  onSelect
29
29
  }, {
30
- default: withCtx(() => [createVNode(unref(LogOutIcon)), createTextVNode(" " + toDisplayString(unref(translate)("ra.auth.logout", { _: "Log out" })), 1)]),
30
+ default: withCtx(() => [createVNode(unref(LogOutIcon)), createTextVNode(" " + toDisplayString(unref(translate)("chelone.auth.logout", { _: "Log out" })), 1)]),
31
31
  _: 1
32
32
  }, 8, ["value"])]),
33
33
  _: 1
@@ -5,7 +5,7 @@ export interface DashboardMenuItemProps {
5
5
  class?: string;
6
6
  /** Replaces the default `House` icon. */
7
7
  icon?: Component;
8
- /** Replaces the default translated label (`ra.page.dashboard`, default "Dashboard"). */
8
+ /** Replaces the default translated label (`chelone.page.dashboard`, default "Dashboard"). */
9
9
  label?: string;
10
10
  /** Click handler invoked alongside the default navigation (e.g. close the drawer). */
11
11
  onClick?: () => void;
@@ -22,7 +22,7 @@ var dashboard_menu_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
22
22
  const props = __props;
23
23
  const translate = useTranslate();
24
24
  const to = `${useBasename()}/`;
25
- const label = computed(() => props.label ?? translate("ra.page.dashboard", { _: "Dashboard" }));
25
+ const label = computed(() => props.label ?? translate("chelone.page.dashboard", { _: "Dashboard" }));
26
26
  const icon = computed(() => props.icon ?? HouseIcon);
27
27
  return (_ctx, _cache) => {
28
28
  return openBlock(), createBlock(menu_item_link_default, {
@@ -62,7 +62,7 @@ var theme_mode_toggle_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
62
62
  const index = CYCLE.indexOf(theme.value);
63
63
  setTheme(CYCLE[(index + 1) % CYCLE.length] ?? "system");
64
64
  }
65
- const label = computed(() => translate("ra.action.toggle_theme", { _: "Toggle theme" }));
65
+ const label = computed(() => translate("chelone.action.toggle_theme", { _: "Toggle theme" }));
66
66
  return (_ctx, _cache) => {
67
67
  return openBlock(), createBlock(button_default, {
68
68
  variant: "ghost",
@@ -33,7 +33,7 @@ var user_menu_inner_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
33
33
  const props = __props;
34
34
  const { isPending, data: identity } = useGetIdentity();
35
35
  const translate = useTranslate();
36
- const ariaLabel = computed(() => props.label != null ? translate(props.label, { _: props.label }) : identity.value?.fullName || translate("ra.auth.user_menu", { _: "User menu" }));
36
+ const ariaLabel = computed(() => props.label != null ? translate(props.label, { _: props.label }) : identity.value?.fullName || translate("chelone.auth.user_menu", { _: "User menu" }));
37
37
  const initial = computed(() => identity.value?.fullName?.charAt(0) ?? "");
38
38
  return (_ctx, _cache) => {
39
39
  return unref(isPending) ? (openBlock(), createBlock(skeleton_default, {
@@ -181,7 +181,7 @@ var approval_queue_row_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
181
181
  variant: "ghost",
182
182
  onClick: close
183
183
  }, {
184
- default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("ra.action.cancel", { _: "Cancel" })), 1)]),
184
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("chelone.action.cancel", { _: "Cancel" })), 1)]),
185
185
  _: 1
186
186
  }), createVNode(button_default, {
187
187
  type: "submit",
@@ -33,8 +33,8 @@ var bulk_actions_toolbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE
33
33
  const translate = useTranslate();
34
34
  const count = computed(() => list.selectedIds?.length ?? 0);
35
35
  const visible = computed(() => count.value > 0);
36
- const unselectLabel = computed(() => translate("ra.action.unselect", { _: "Unselect" }));
37
- const countLabel = computed(() => translate("ra.action.bulk_actions", {
36
+ const unselectLabel = computed(() => translate("chelone.action.unselect", { _: "Unselect" }));
37
+ const countLabel = computed(() => translate("chelone.action.bulk_actions", {
38
38
  smart_count: count.value,
39
39
  _: `${count.value} rows selected`
40
40
  }));
@@ -62,7 +62,7 @@ var bulk_edit_drawer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
62
62
  onSubmit: async () => {
63
63
  const nested = Object.entries(form.store.state.fieldMeta).find(([path, meta]) => meta?.isDirty && /[.[]/.test(path));
64
64
  if (nested) {
65
- notifications?.notify("ra.message.bulk_edit_nested_source", {
65
+ notifications?.notify("chelone.message.bulk_edit_nested_source", {
66
66
  type: "error",
67
67
  messageArgs: {
68
68
  source: nested[0],
@@ -108,15 +108,15 @@ var bulk_edit_drawer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
108
108
  const count = computed(() => list.selectedIds?.length ?? 0);
109
109
  const label = computed(() => translate(props.label, { _: props.label }));
110
110
  const title = computed(() => props.title ? translate(props.title, { _: props.title }) : label.value);
111
- const description = computed(() => translate("ra.message.bulk_edit_description", {
111
+ const description = computed(() => translate("chelone.message.bulk_edit_description", {
112
112
  smart_count: count.value,
113
113
  _: "Only the fields you change are applied to {smart_count} selected record(s)."
114
114
  }));
115
- const applyLabel = computed(() => translate("ra.action.bulk_edit_apply", {
115
+ const applyLabel = computed(() => translate("chelone.action.bulk_edit_apply", {
116
116
  smart_count: count.value,
117
117
  _: "Apply to {smart_count} record(s)"
118
118
  }));
119
- const cancelLabel = computed(() => translate("ra.action.cancel", { _: "Cancel" }));
119
+ const cancelLabel = computed(() => translate("chelone.action.cancel", { _: "Cancel" }));
120
120
  return (_ctx, _cache) => {
121
121
  return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(button_default, {
122
122
  type: "button",
@@ -42,7 +42,7 @@ var calendar_agenda_view_vue_vue_type_script_setup_true_lang_default = /*@__PURE
42
42
  "aria-label": __props.label,
43
43
  role: "region",
44
44
  "data-slot": "calendar-agenda"
45
- }, [groups.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(unref(translate)("ra.calendar.no_events", { _: "No events in this range" })), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(groups.value, (group) => {
45
+ }, [groups.value.length === 0 ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(unref(translate)("chelone.calendar.no_events", { _: "No events in this range" })), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(groups.value, (group) => {
46
46
  return openBlock(), createElementBlock("section", {
47
47
  key: group.key,
48
48
  "data-slot": "calendar-agenda-day",
@@ -31,13 +31,13 @@ var calendar_header_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
31
31
  */
32
32
  const emit = __emit;
33
33
  const translate = useTranslate();
34
- const viewLabel = (view) => view === "month" ? translate("ra.calendar.month", { _: "Month" }) : view === "week" ? translate("ra.calendar.week", { _: "Week" }) : translate("ra.calendar.agenda", { _: "Agenda" });
34
+ const viewLabel = (view) => view === "month" ? translate("chelone.calendar.month", { _: "Month" }) : view === "week" ? translate("chelone.calendar.week", { _: "Week" }) : translate("chelone.calendar.agenda", { _: "Agenda" });
35
35
  return (_ctx, _cache) => {
36
36
  return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("h2", _hoisted_2, toDisplayString(__props.title), 1), createElementVNode("div", _hoisted_3, [__props.views && __props.views.length > 1 ? (openBlock(), createElementBlock("div", {
37
37
  key: 0,
38
38
  "data-slot": "calendar-view-switcher",
39
39
  role: "group",
40
- "aria-label": unref(translate)("ra.calendar.view", { _: "View" }),
40
+ "aria-label": unref(translate)("chelone.calendar.view", { _: "View" }),
41
41
  class: "flex items-center gap-1"
42
42
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.views, (option) => {
43
43
  return openBlock(), createBlock(button_default, {
@@ -60,7 +60,7 @@ var calendar_header_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
60
60
  createVNode(button_default, {
61
61
  variant: "ghost",
62
62
  size: "icon",
63
- "aria-label": unref(translate)("ra.calendar.previous", { _: "Previous" }),
63
+ "aria-label": unref(translate)("chelone.calendar.previous", { _: "Previous" }),
64
64
  onClick: _cache[0] || (_cache[0] = ($event) => emit("navigate", "previous"))
65
65
  }, {
66
66
  default: withCtx(() => [createVNode(unref(ChevronLeftIcon))]),
@@ -71,13 +71,13 @@ var calendar_header_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
71
71
  size: "sm",
72
72
  onClick: _cache[1] || (_cache[1] = ($event) => emit("navigate", "today"))
73
73
  }, {
74
- default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("ra.calendar.today", { _: "Today" })), 1)]),
74
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("chelone.calendar.today", { _: "Today" })), 1)]),
75
75
  _: 1
76
76
  }),
77
77
  createVNode(button_default, {
78
78
  variant: "ghost",
79
79
  size: "icon",
80
- "aria-label": unref(translate)("ra.calendar.next", { _: "Next" }),
80
+ "aria-label": unref(translate)("chelone.calendar.next", { _: "Next" }),
81
81
  onClick: _cache[2] || (_cache[2] = ($event) => emit("navigate", "next"))
82
82
  }, {
83
83
  default: withCtx(() => [createVNode(unref(ChevronRightIcon))]),
@@ -121,13 +121,13 @@ var calendar_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
121
121
  colorMap: props.colorMap,
122
122
  getTitle: getRepresentation
123
123
  }));
124
- const rangeValue = computed(() => props.rangeFilter ? props.rangeFilter(range.value) : calendarRangeFilter(props.startSource, range.value, props.endSource));
124
+ const rangeValue = computed(() => props.rangeFilter ? props.rangeFilter(range.value) : calendarRangeFilter(pathOf(props.startSource), range.value, pathOfOptional(props.endSource)));
125
125
  const rangeStartISO = computed(() => range.value.start.toISOString());
126
126
  const rangeEndISO = computed(() => range.value.end.toISOString());
127
127
  const originalPerPage = list.perPage === props.perPage ? list.defaultPerPage ?? DEFAULT_PER_PAGE : list.perPage;
128
128
  let appliedKeys = [];
129
129
  const without = (filter, keys) => Object.fromEntries(Object.entries(filter).filter(([key]) => !keys.includes(key)));
130
- const staleKeys = computed(() => props.rangeFilter ? [] : staleCalendarRangeKeys(props.startSource, props.endSource));
130
+ const staleKeys = computed(() => props.rangeFilter ? [] : staleCalendarRangeKeys(pathOf(props.startSource), pathOfOptional(props.endSource)));
131
131
  const inSync = computed(() => list.perPage === props.perPage && staleKeys.value.every((key) => !(key in list.filter)) && Object.entries(rangeValue.value).every(([key, value]) => list.filter[key] === value));
132
132
  watch([
133
133
  rangeStartISO,
@@ -56,7 +56,7 @@ var count_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
56
56
  }, null, 8, ["timeout", "class"])) : unref(error) ? (openBlock(), createElementBlock("span", {
57
57
  key: 1,
58
58
  role: "img",
59
- "aria-label": unref(translate)("ra.notification.http_error", { _: "Error" }),
59
+ "aria-label": unref(translate)("chelone.notification.http_error_label", { _: "Error" }),
60
60
  class: normalizeClass(unref(cn)("inline-flex text-destructive", props.class))
61
61
  }, [createVNode(unref(CircleXIcon))], 10, _hoisted_1)) : unref(data)?.total != null ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [__props.link ? (openBlock(), createBlock(unref(RouterLink), {
62
62
  key: 0,
@@ -98,7 +98,7 @@ var filter_form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
98
98
  key: 0,
99
99
  type: "button",
100
100
  class: "hide-filter inline-flex size-9 shrink-0 cursor-pointer items-center justify-center rounded-md mt-auto hover:bg-accent hover:text-accent-foreground",
101
- title: unref(translate)("ra.action.remove_filter", { _: "Remove filter" }),
101
+ title: unref(translate)("chelone.action.remove_filter", { _: "Remove filter" }),
102
102
  onClick: ($event) => unref(list).hideFilter(entry.source)
103
103
  }, [createVNode(unref(MinusCircleIcon))], 8, _hoisted_2)) : createCommentVNode("", true)], 8, _hoisted_1)) : createCommentVNode("", true)], 64);
104
104
  }), 128)), renderSlot(_ctx.$slots, "default")], 32);
@@ -50,7 +50,7 @@ var filter_list_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
50
50
  variant: "ghost",
51
51
  size: "icon",
52
52
  class: "size-8",
53
- "aria-label": unref(translate)("ra.action.remove_filter", { _: "Remove filter" }),
53
+ "aria-label": unref(translate)("chelone.action.remove_filter", { _: "Remove filter" }),
54
54
  onClick: toggle
55
55
  }, {
56
56
  default: withCtx(() => [..._cache[0] || (_cache[0] = [createElementVNode("span", { "aria-hidden": "true" }, "×", -1)])]),
@@ -30,7 +30,7 @@ var filter_live_search_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
30
30
  const translate = useTranslate();
31
31
  return (_ctx, _cache) => {
32
32
  return openBlock(), createBlock(filter_form_default, null, {
33
- default: withCtx(() => [createVNode(search_input_default, mergeProps(props, { placeholder: props.placeholder ?? unref(translate)("ra.action.search", { _: "Search" }) }), null, 16, ["placeholder"])]),
33
+ default: withCtx(() => [createVNode(search_input_default, mergeProps(props, { placeholder: props.placeholder ?? unref(translate)("chelone.action.search", { _: "Search" }) }), null, 16, ["placeholder"])]),
34
34
  _: 1
35
35
  });
36
36
  };
@@ -22,13 +22,13 @@ var list_no_results_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
22
22
  if (!resource) throw new Error("<ListNoResults> must be used inside a <List> component");
23
23
  const filtered = computed(() => Object.keys(list.filter ?? {}).length > 0);
24
24
  return (_ctx, _cache) => {
25
- return openBlock(), createElementBlock("div", { class: normalizeClass(unref(cn)("flex flex-col items-center gap-2 p-6 text-center text-sm", props.class)) }, [createElementVNode("p", _hoisted_1, toDisplayString(filtered.value ? unref(translate)("ra.navigation.no_filtered_results", { _: "No results found with the current filters." }) : unref(translate)("ra.navigation.no_results", { _: "No results found" })), 1), filtered.value ? (openBlock(), createBlock(button_default, {
25
+ return openBlock(), createElementBlock("div", { class: normalizeClass(unref(cn)("flex flex-col items-center gap-2 p-6 text-center text-sm", props.class)) }, [createElementVNode("p", _hoisted_1, toDisplayString(filtered.value ? unref(translate)("chelone.navigation.no_filtered_results", { _: "No results found with the current filters." }) : unref(translate)("chelone.navigation.no_results", { _: "No results found" })), 1), filtered.value ? (openBlock(), createBlock(button_default, {
26
26
  key: 0,
27
27
  variant: "outline",
28
28
  size: "sm",
29
29
  onClick: _cache[0] || (_cache[0] = ($event) => unref(list).setFilters({}, {}))
30
30
  }, {
31
- default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("ra.navigation.clear_filters", { _: "Clear filters" })), 1)]),
31
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("chelone.navigation.clear_filters", { _: "Clear filters" })), 1)]),
32
32
  _: 1
33
33
  })) : createCommentVNode("", true)], 2);
34
34
  };
@@ -99,14 +99,14 @@ var list_pagination_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
99
99
  for (const p of endPages) pushPage(p);
100
100
  return tokens;
101
101
  });
102
- const previousLabel = computed(() => translate("ra.navigation.previous", { _: "Previous" }));
103
- const nextLabel = computed(() => translate("ra.navigation.next", { _: "Next" }));
104
- const rowsPerPageLabel = computed(() => translate("ra.navigation.page_rows_per_page", { _: "Rows per page" }));
105
- const rangeLabel = computed(() => isPartial.value ? translate("ra.navigation.partial_page_range_info", {
102
+ const previousLabel = computed(() => translate("chelone.navigation.previous", { _: "Previous" }));
103
+ const nextLabel = computed(() => translate("chelone.navigation.next", { _: "Next" }));
104
+ const rowsPerPageLabel = computed(() => translate("chelone.navigation.page_rows_per_page", { _: "Rows per page" }));
105
+ const rangeLabel = computed(() => isPartial.value ? translate("chelone.navigation.partial_page_range_info", {
106
106
  offsetBegin: pageStart.value,
107
107
  offsetEnd: pageEnd.value,
108
108
  _: `${pageStart.value}-${pageEnd.value}`
109
- }) : translate("ra.navigation.page_range_info", {
109
+ }) : translate("chelone.navigation.page_range_info", {
110
110
  offsetBegin: pageStart.value,
111
111
  offsetEnd: pageEnd.value,
112
112
  total: totalDisplay.value,
@@ -61,7 +61,7 @@ var prev_next_buttons_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
61
61
  }, null, 8, ["class"])) : unref(controller).error ? (openBlock(), createElementBlock("span", {
62
62
  key: 1,
63
63
  role: "img",
64
- "aria-label": unref(translate)("ra.notification.http_error", { _: "Error" }),
64
+ "aria-label": unref(translate)("chelone.notification.http_error_label", { _: "Error" }),
65
65
  class: normalizeClass(unref(cn)("inline-flex text-destructive", props.class))
66
66
  }, [createVNode(unref(AlertCircleIcon))], 10, _hoisted_1)) : !unref(controller).hasPrev && !unref(controller).hasNext ? (openBlock(), createElementBlock("div", {
67
67
  key: 2,
@@ -75,7 +75,7 @@ var prev_next_buttons_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
75
75
  unref(controller).prevPath ? (openBlock(), createBlock(unref(RouterLink), {
76
76
  key: 0,
77
77
  to: unref(controller).prevPath,
78
- "aria-label": unref(translate)("ra.navigation.previous", { _: "Previous" }),
78
+ "aria-label": unref(translate)("chelone.navigation.previous", { _: "Previous" }),
79
79
  class: normalizeClass(unref(ghostIcon))
80
80
  }, {
81
81
  default: withCtx(() => [createVNode(unref(ChevronLeftIcon))]),
@@ -88,7 +88,7 @@ var prev_next_buttons_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
88
88
  key: 1,
89
89
  variant: "ghost",
90
90
  size: "icon",
91
- "aria-label": unref(translate)("ra.navigation.previous", { _: "Previous" }),
91
+ "aria-label": unref(translate)("chelone.navigation.previous", { _: "Previous" }),
92
92
  disabled: ""
93
93
  }, {
94
94
  default: withCtx(() => [createVNode(unref(ChevronLeftIcon))]),
@@ -98,7 +98,7 @@ var prev_next_buttons_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
98
98
  unref(controller).nextPath ? (openBlock(), createBlock(unref(RouterLink), {
99
99
  key: 3,
100
100
  to: unref(controller).nextPath,
101
- "aria-label": unref(translate)("ra.navigation.next", { _: "Next" }),
101
+ "aria-label": unref(translate)("chelone.navigation.next", { _: "Next" }),
102
102
  class: normalizeClass(unref(ghostIcon))
103
103
  }, {
104
104
  default: withCtx(() => [createVNode(unref(ChevronRightIcon))]),
@@ -111,7 +111,7 @@ var prev_next_buttons_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
111
111
  key: 4,
112
112
  variant: "ghost",
113
113
  size: "icon",
114
- "aria-label": unref(translate)("ra.navigation.next", { _: "Next" }),
114
+ "aria-label": unref(translate)("chelone.navigation.next", { _: "Next" }),
115
115
  disabled: ""
116
116
  }, {
117
117
  default: withCtx(() => [createVNode(unref(ChevronRightIcon))]),
@@ -37,7 +37,7 @@ var saved_queries_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
37
37
  const out = translate(key, params);
38
38
  return out === key ? fallback : out;
39
39
  };
40
- const removeLabel = (label) => t("ra.saved_queries.remove_label_with_name", `Remove saved query "${label}"`, { name: label });
40
+ const removeLabel = (label) => t("chelone.saved_queries.remove_label_with_name", `Remove saved query "${label}"`, { name: label });
41
41
  const current = computed(() => ({
42
42
  filter: toRaw(list.filter),
43
43
  displayedFilters: toRaw(list.displayedFilters),
@@ -112,14 +112,14 @@ var saved_queries_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
112
112
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => name.value = $event),
113
113
  type: "text",
114
114
  class: "h-8 w-48",
115
- "aria-label": t("ra.saved_queries.query_name", "Query name")
115
+ "aria-label": t("chelone.saved_queries.query_name", "Query name")
116
116
  }, null, 8, ["modelValue", "aria-label"]),
117
117
  createVNode(button_default, {
118
118
  type: "submit",
119
119
  size: "sm",
120
120
  disabled: !name.value.trim()
121
121
  }, {
122
- default: withCtx(() => [createTextVNode(toDisplayString(t("ra.action.save", "Save")), 1)]),
122
+ default: withCtx(() => [createTextVNode(toDisplayString(t("chelone.action.save", "Save")), 1)]),
123
123
  _: 1
124
124
  }, 8, ["disabled"]),
125
125
  createVNode(button_default, {
@@ -127,7 +127,7 @@ var saved_queries_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
127
127
  size: "sm",
128
128
  onClick: closeForm
129
129
  }, {
130
- default: withCtx(() => [createTextVNode(toDisplayString(t("ra.action.cancel", "Cancel")), 1)]),
130
+ default: withCtx(() => [createTextVNode(toDisplayString(t("chelone.action.cancel", "Cancel")), 1)]),
131
131
  _: 1
132
132
  })
133
133
  ], 32)) : canSave.value ? (openBlock(), createBlock(button_default, {
@@ -136,7 +136,7 @@ var saved_queries_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
136
136
  size: "sm",
137
137
  onClick: _cache[1] || (_cache[1] = ($event) => naming.value = true)
138
138
  }, {
139
- default: withCtx(() => [createTextVNode(toDisplayString(t("ra.saved_queries.new_label", "Save current query")), 1)]),
139
+ default: withCtx(() => [createTextVNode(toDisplayString(t("chelone.saved_queries.new_label", "Save current query")), 1)]),
140
140
  _: 1
141
141
  })) : createCommentVNode("", true)], 2);
142
142
  };
@@ -117,7 +117,7 @@ var tree_list_node_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
117
117
  "data-slot": "tree-list-chevron",
118
118
  tabindex: "-1",
119
119
  class: "flex size-6 shrink-0 items-center justify-center rounded-md hover:bg-accent",
120
- "aria-label": open.value ? unref(translate)("ra.action.collapse", { _: "Collapse" }) : unref(translate)("ra.action.expand", { _: "Expand" }),
120
+ "aria-label": open.value ? unref(translate)("chelone.action.collapse", { _: "Collapse" }) : unref(translate)("chelone.action.expand", { _: "Expand" }),
121
121
  onClick: _cache[0] || (_cache[0] = ($event) => unref(tree).toggle(record.value.id))
122
122
  }, [open.value ? (openBlock(), createBlock(unref(ChevronDownIcon), { key: 0 })) : (openBlock(), createBlock(unref(ChevronRightIcon), { key: 1 }))], 8, _hoisted_3)) : (openBlock(), createElementBlock("span", _hoisted_4)), (openBlock(), createBlock(resolveDynamicComponent(rowTag.value), {
123
123
  "data-slot": "tree-list-row",
@@ -32,7 +32,7 @@ var forgot_password_form_vue_vue_type_script_setup_true_lang_default = /*@__PURE
32
32
  await resetPassword.mutateAsync({ email: values.email });
33
33
  } catch (error) {
34
34
  const message = errorMessageOf(error);
35
- notifications?.notify(message ?? "ra.notification.http_error", {
35
+ notifications?.notify(message ?? "chelone.notification.http_error_label", {
36
36
  type: "warning",
37
37
  messageArgs: message === void 0 ? void 0 : { _: message }
38
38
  });
@@ -50,7 +50,7 @@ var set_password_form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
50
50
  });
51
51
  } catch (error) {
52
52
  const message = errorMessageOf(error);
53
- notifications?.notify(message ?? "ra.notification.http_error", {
53
+ notifications?.notify(message ?? "chelone.notification.http_error_label", {
54
54
  type: "warning",
55
55
  messageArgs: message === void 0 ? void 0 : { _: message }
56
56
  });
@@ -88,7 +88,7 @@ var set_password_form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
88
88
  onSubmit: handleSubmit
89
89
  }, [
90
90
  createVNode(password_input_default, {
91
- label: unref(translate)("ra.auth.password", { _: "Password" }),
91
+ label: unref(translate)("chelone.auth.password", { _: "Password" }),
92
92
  source: "password",
93
93
  autocomplete: "new-password",
94
94
  autofocus: "",
@@ -105,7 +105,7 @@ var set_password_form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
105
105
  class: "cursor-pointer",
106
106
  disabled: unref(submitting)
107
107
  }, {
108
- default: withCtx(() => [unref(submitting) ? (openBlock(), createBlock(spinner_default, { key: 0 })) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(unref(translate)("ra.action.save", { _: "Save" })), 1)]),
108
+ default: withCtx(() => [unref(submitting) ? (openBlock(), createBlock(spinner_default, { key: 0 })) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(unref(translate)("chelone.action.save", { _: "Save" })), 1)]),
109
109
  _: 1
110
110
  }, 8, ["disabled"])
111
111
  ], 34));
@@ -70,7 +70,7 @@ var supabase_login_page_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
70
70
  _: 1
71
71
  }, 8, ["to"])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true), providers.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1, [!props.disableEmailPassword ? (openBlock(), createElementBlock("div", _hoisted_2, [
72
72
  _cache[0] || (_cache[0] = createElementVNode("div", { class: "flex-1 border-t" }, null, -1)),
73
- createTextVNode(" " + toDisplayString(unref(translate)("ra.auth.or", { _: "or" })) + " ", 1),
73
+ createTextVNode(" " + toDisplayString(unref(translate)("chelone.auth.or", { _: "or" })) + " ", 1),
74
74
  _cache[1] || (_cache[1] = createElementVNode("div", { class: "flex-1 border-t" }, null, -1))
75
75
  ])) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(providers.value, (provider) => {
76
76
  return openBlock(), createBlock(resolveDynamicComponent(buttons[provider]), {
@@ -57,7 +57,7 @@ var create_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
57
57
  const redirect = useRedirectOptional();
58
58
  const translate = useTranslate();
59
59
  const getResourceLabel = useGetResourceLabel();
60
- const defaultTitle = computed(() => translate("ra.page.create", { name: getResourceLabel(resource, 1) }));
60
+ const defaultTitle = computed(() => translate("chelone.page.create", { name: getResourceLabel(resource, 1) }));
61
61
  const form = useForm({
62
62
  resource,
63
63
  record: seed,
@@ -38,7 +38,7 @@ var infinite_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
38
38
  provideListContext(controller);
39
39
  const translate = useTranslate();
40
40
  const getResourceLabel = useGetResourceLabel();
41
- const defaultTitle = computed(() => translate("ra.page.list", { name: getResourceLabel(resource, 2) }));
41
+ const defaultTitle = computed(() => translate("chelone.page.list", { name: getResourceLabel(resource, 2) }));
42
42
  return (_ctx, _cache) => {
43
43
  return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [__props.title !== "" ? (openBlock(), createElementBlock("h2", _hoisted_3, toDisplayString(__props.title ?? defaultTitle.value), 1)) : createCommentVNode("", true), createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "actions")])]), renderSlot(_ctx.$slots, "default")]);
44
44
  };
@@ -42,7 +42,7 @@ var list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
42
42
  provideListContext(controller);
43
43
  const translate = useTranslate();
44
44
  const getResourceLabel = useGetResourceLabel();
45
- const defaultTitle = computed(() => translate("ra.page.list", { name: getResourceLabel(resource, 2) }));
45
+ const defaultTitle = computed(() => translate("chelone.page.list", { name: getResourceLabel(resource, 2) }));
46
46
  return (_ctx, _cache) => {
47
47
  return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [__props.title !== "" ? (openBlock(), createElementBlock("h2", _hoisted_3, toDisplayString(__props.title ?? defaultTitle.value), 1)) : createCommentVNode("", true), createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "actions")])]), renderSlot(_ctx.$slots, "default")]);
48
48
  };
@@ -25,7 +25,7 @@ var translatable_fields_tab_vue_vue_type_script_setup_true_lang_default = /*@__P
25
25
  const translate = useTranslate();
26
26
  const translatable = useTranslatableContext();
27
27
  const selected = computed(() => translatable.selectedLocale.value === props.locale);
28
- const label = computed(() => translate(`ra.locales.${props.locale}`, { _: props.locale.charAt(0).toUpperCase() + props.locale.slice(1) }));
28
+ const label = computed(() => translate(`chelone.locales.${props.locale}`, { _: props.locale.charAt(0).toUpperCase() + props.locale.slice(1) }));
29
29
  return (_ctx, _cache) => {
30
30
  return openBlock(), createElementBlock("button", {
31
31
  type: "button",
@@ -116,7 +116,7 @@ var job_monitor_row_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
116
116
  disabled: __props.busy,
117
117
  onClick: _cache[2] || (_cache[2] = ($event) => emit("plan", unref(planJobCancel)(__props.job, options.value)))
118
118
  }, {
119
- default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("ra.action.cancel", { _: "Cancel" })), 1)]),
119
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("chelone.action.cancel", { _: "Cancel" })), 1)]),
120
120
  _: 1
121
121
  }, 8, ["disabled"])) : createCommentVNode("", true)
122
122
  ])
@@ -155,7 +155,7 @@ var inspector_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
155
155
  variant: "ghost",
156
156
  size: "icon",
157
157
  class: "size-7",
158
- "aria-label": unref(translate)("ra.action.close", { _: "Close" }),
158
+ "aria-label": unref(translate)("chelone.action.close", { _: "Close" }),
159
159
  onClick: _cache[0] || (_cache[0] = ($event) => unref(inspector).disable())
160
160
  }, {
161
161
  default: withCtx(() => [createVNode(unref(XIcon))]),
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The options the two reference-field composables share: the record the lookup
3
+ * reads its foreign key from, and the fetch gate. `target` is not here: it is
4
+ * keyed by the referenced record, which only the composables name.
5
+ */
6
+ import type { LooseRecord, ResourceRecord, SourceProp } from "@chelone/core";
7
+ import type { MaybeRefOrGetter } from "vue";
8
+ import type { RecordValue } from "../record/record-context.js";
9
+ export interface ReferenceFieldControllerOptions<TName extends string, RecordType extends ResourceRecord = LooseRecord> {
10
+ /** The resource whose rows point at the record. */
11
+ reference: TName;
12
+ /** The field on the record whose value `target` must equal. The composable defaults it to `"id"`. */
13
+ source?: SourceProp<RecordType>;
14
+ /** Defaults to the ambient record (`RecordContextKey`). */
15
+ record?: MaybeRefOrGetter<RecordValue<RecordType>>;
16
+ /** Gates the data fetch only. Default true. */
17
+ enabled?: boolean;
18
+ }
@@ -1,3 +1,4 @@
1
+ import { type LooseRecord } from "@chelone/core";
1
2
  import { type Ref } from "vue";
2
3
  import { z } from "zod";
3
4
  import { type RecordValue } from "../record/record-context.js";
@@ -150,7 +151,7 @@ export declare function mountProbe<TResult>(useProbe: () => TResult, initialReco
150
151
  };
151
152
  }, TName>>>)>;
152
153
  };
153
- export declare const mountMany: (options?: Omit<UseReferenceManyFieldControllerOptions<"comments">, "reference" | "target">, record?: RecordValue, failWith?: Error) => {
154
+ export declare const mountMany: (options?: Omit<UseReferenceManyFieldControllerOptions<"comments", LooseRecord, Comment>, "reference" | "target">, record?: RecordValue, failWith?: Error) => {
154
155
  wrapper: import("@vue/test-utils").VueWrapper<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never> & {
155
156
  $: import("vue").ComponentInternalInstance;
156
157
  $data: {};
@@ -261,7 +262,7 @@ export declare const mountMany: (options?: Omit<UseReferenceManyFieldControllerO
261
262
  };
262
263
  }, TName>>>)>;
263
264
  };
264
- export declare const mountOne: (options?: Omit<UseReferenceOneFieldControllerOptions<"profiles">, "reference" | "target">, record?: RecordValue, failWith?: Error) => {
265
+ export declare const mountOne: (options?: Omit<UseReferenceOneFieldControllerOptions<"profiles", LooseRecord, Profile>, "reference" | "target">, record?: RecordValue, failWith?: Error) => {
265
266
  wrapper: import("@vue/test-utils").VueWrapper<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never> & {
266
267
  $: import("vue").ComponentInternalInstance;
267
268
  $data: {};