@chelone/vue 0.7.0 → 0.9.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.
- package/dist/admin/admin.vue_vue_type_script_setup_true_lang.js +5 -4
- package/dist/admin/auth-gate.js +1 -3
- package/dist/admin/resource-view.d.ts +8 -0
- package/dist/admin/resource-view.js +19 -0
- package/dist/auth/permissions-hooks.js +1 -3
- package/dist/choices/choices-context.d.ts +1 -2
- package/dist/choices/use-choices.d.ts +3 -3
- package/dist/choices/use-choices.js +13 -10
- package/dist/choices/use-reference-input.js +4 -4
- package/dist/components/admin/auth/auth-error.vue_vue_type_script_setup_true_lang.js +4 -3
- package/dist/components/admin/auth/auth-layout.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/auth/can-access.vue.d.ts +2 -2
- package/dist/components/admin/auth/login-form.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/admin/auth/login-with-email.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/admin/buttons/bulk-update-button.vue.d.ts +19 -6
- package/dist/components/admin/buttons/bulk-update-button.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/buttons/clone-button.vue.d.ts +19 -16
- package/dist/components/admin/buttons/clone-button.vue_vue_type_script_setup_true_lang.js +4 -5
- package/dist/components/admin/buttons/delete-button.vue.d.ts +19 -10
- package/dist/components/admin/buttons/delete-button.vue_vue_type_script_setup_true_lang.js +6 -7
- package/dist/components/admin/buttons/dual-approval-button.vue_vue_type_script_setup_true_lang.js +14 -2
- package/dist/components/admin/buttons/edit-button.vue.d.ts +19 -16
- package/dist/components/admin/buttons/edit-button.vue_vue_type_script_setup_true_lang.js +4 -5
- package/dist/components/admin/buttons/export-button.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/admin/buttons/fields-selector.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/components/admin/buttons/filter-button.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/buttons/record-button-props.d.ts +12 -0
- package/dist/components/admin/buttons/show-button.vue.d.ts +19 -16
- package/dist/components/admin/buttons/show-button.vue_vue_type_script_setup_true_lang.js +4 -5
- package/dist/components/admin/buttons/status-transition-button.vue_vue_type_script_setup_true_lang.js +3 -7
- package/dist/components/admin/buttons/update-button.vue.d.ts +28 -24
- package/dist/components/admin/buttons/update-button.vue_vue_type_script_setup_true_lang.js +3 -4
- package/dist/components/admin/common/application-updated-notification.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/common/i18n-key-editor.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/components/admin/csv-import/csv-import.vue_vue_type_script_setup_true_lang.js +2 -5
- package/dist/components/admin/feedback/error.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/feedback/linear-progress.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/admin/feedback/loading.vue_vue_type_script_setup_true_lang.js +7 -6
- package/dist/components/admin/feedback/placeholder.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/admin/fields/api-key-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/api-key-field.vue_vue_type_script_setup_true_lang.js +6 -7
- package/dist/components/admin/fields/array-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/badge-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/boolean-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/chip-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/color-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/cron-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/currency-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/date-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/diff-viewer.vue.d.ts +3 -3
- package/dist/components/admin/fields/duration-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/email-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/field-props.d.ts +2 -2
- package/dist/components/admin/fields/file-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/function-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/image-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/json-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/number-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/phone-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/phone-field.vue_vue_type_script_setup_true_lang.js +3 -1
- package/dist/components/admin/fields/rating-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/rating-field.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/admin/fields/record-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/reference-array-field.vue.d.ts +20 -10
- package/dist/components/admin/fields/reference-field.vue.d.ts +22 -35
- package/dist/components/admin/fields/reference-many-count.vue.d.ts +20 -5
- package/dist/components/admin/fields/reference-many-field.vue.d.ts +20 -12
- package/dist/components/admin/fields/reference-one-field.vue.d.ts +22 -12
- package/dist/components/admin/fields/select-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/subscription-plan-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/text-array-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/text-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/url-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/usage-meter-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/usage-meter-field.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/admin/fields/webhook-endpoint-field.vue.d.ts +3 -3
- package/dist/components/admin/fields/webhook-endpoint-field.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/fields/wrapper-field.vue.d.ts +21 -11
- package/dist/components/admin/inputs/api-key-input.vue.d.ts +20 -5
- package/dist/components/admin/inputs/api-key-input.vue_vue_type_script_setup_true_lang.js +3 -4
- package/dist/components/admin/inputs/array-input-row.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/inputs/checkbox-group-input.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/inputs/date-input-format.d.ts +4 -1
- package/dist/components/admin/inputs/date-input-format.js +10 -1
- package/dist/components/admin/inputs/date-input.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/admin/inputs/date-time-input.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/admin/inputs/duration-input.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/inputs/image-input-thumbnail.vue_vue_type_script_setup_true_lang.js +6 -5
- package/dist/components/admin/inputs/image-input.vue.d.ts +1 -0
- package/dist/components/admin/inputs/image-input.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/admin/inputs/in-place-editor-form.vue.d.ts +3 -3
- package/dist/components/admin/inputs/in-place-editor-form.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/inputs/in-place-editor.vue.d.ts +3 -3
- package/dist/components/admin/inputs/number-input.vue.d.ts +6 -0
- package/dist/components/admin/inputs/number-input.vue_vue_type_script_setup_true_lang.js +9 -0
- package/dist/components/admin/inputs/password-input.vue_vue_type_script_setup_true_lang.js +34 -30
- package/dist/components/admin/inputs/phone-input.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/inputs/radio-button-group-input.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/inputs/rating-input.vue_vue_type_script_setup_true_lang.js +24 -12
- package/dist/components/admin/inputs/reference-input.vue.d.ts +1 -1
- package/dist/components/admin/inputs/reference-input.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/admin/inputs/resettable-text-input.vue.d.ts +6 -4
- package/dist/components/admin/inputs/resettable-text-input.vue_vue_type_script_setup_true_lang.js +44 -39
- package/dist/components/admin/inputs/subscription-plan-picker.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/admin/inputs/text-input.vue.d.ts +13 -2
- package/dist/components/admin/inputs/text-input.vue_vue_type_script_setup_true_lang.js +9 -4
- package/dist/components/admin/inputs/time-input.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/admin/inputs/use-choice-input.d.ts +2 -2
- package/dist/components/admin/layout/app-sidebar.vue.d.ts +12 -1
- package/dist/components/admin/layout/app-sidebar.vue_vue_type_script_setup_true_lang.js +15 -11
- package/dist/components/admin/layout/command-menu-content.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/layout/command-menu.vue.d.ts +1 -1
- package/dist/components/admin/layout/command-menu.vue_vue_type_script_setup_true_lang.js +9 -63
- package/dist/components/admin/layout/data-provider-devtools-entry.vue.d.ts +1 -1
- package/dist/components/admin/layout/data-provider-devtools-entry.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/admin/layout/data-provider-devtools.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/layout/layout.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/layout/menu-item-link.vue.d.ts +5 -0
- package/dist/components/admin/layout/menu-item-link.vue_vue_type_script_setup_true_lang.js +27 -8
- package/dist/components/admin/layout/onboarding-tour-overlay.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/components/admin/layout/resource-menu-item-group.vue.d.ts +8 -1
- package/dist/components/admin/layout/resource-menu-item-group.vue_vue_type_script_setup_true_lang.js +8 -7
- package/dist/components/admin/layout/theme-provider.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/admin/layout/title-portal-id.d.ts +1 -1
- package/dist/components/admin/layout/title-portal-id.js +1 -9
- package/dist/components/admin/layout/top-toolbar.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/admin/list/approval-queue-row.vue.d.ts +2 -2
- package/dist/components/admin/list/approval-queue-row.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/admin/list/approval-queue.vue.d.ts +3 -3
- package/dist/components/admin/list/calendar-agenda-view.vue.d.ts +23 -15
- package/dist/components/admin/list/calendar-event.vue.d.ts +21 -8
- package/dist/components/admin/list/calendar-list.vue.d.ts +29 -56
- package/dist/components/admin/list/calendar-list.vue_vue_type_script_setup_true_lang.js +12 -8
- package/dist/components/admin/list/calendar-month-view.vue.d.ts +26 -20
- package/dist/components/admin/list/calendar-month-view.vue_vue_type_script_setup_true_lang.js +2 -6
- package/dist/components/admin/list/calendar-week-view.vue.d.ts +24 -17
- package/dist/components/admin/list/data-table-col.vue_vue_type_script_setup_true_lang.js +8 -5
- package/dist/components/admin/list/data-table-context.d.ts +9 -6
- package/dist/components/admin/list/data-table-context.js +9 -1
- package/dist/components/admin/list/data-table-row.vue.d.ts +19 -15
- package/dist/components/admin/list/data-table-row.vue_vue_type_script_setup_true_lang.js +5 -9
- package/dist/components/admin/list/data-table.vue.d.ts +35 -23
- package/dist/components/admin/list/data-table.vue_vue_type_script_setup_true_lang.js +4 -7
- package/dist/components/admin/list/list-pagination.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/admin/list/pivot-grid.vue.d.ts +3 -3
- package/dist/components/admin/list/record-timeline.vue.d.ts +3 -3
- package/dist/components/admin/list/record-timeline.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/list/simple-list-item.vue.d.ts +21 -19
- package/dist/components/admin/list/simple-list-item.vue_vue_type_script_setup_true_lang.js +3 -7
- package/dist/components/admin/list/simple-list.vue.d.ts +28 -20
- package/dist/components/admin/list/single-field-list-record.vue.d.ts +19 -9
- package/dist/components/admin/list/single-field-list.vue.d.ts +21 -11
- package/dist/components/admin/list/tree-list-context.d.ts +11 -6
- package/dist/components/admin/list/tree-list-node.vue.d.ts +19 -4
- package/dist/components/admin/list/tree-list.vue.d.ts +28 -37
- package/dist/components/admin/realtime/comments-thread.vue_vue_type_script_setup_true_lang.js +56 -44
- package/dist/components/admin/supabase/forgot-password-form.vue_vue_type_script_setup_true_lang.js +4 -3
- package/dist/components/admin/supabase/set-password-form.vue_vue_type_script_setup_true_lang.js +4 -3
- package/dist/components/admin/supabase/use-password-recovery.js +11 -1
- package/dist/components/admin/view/create.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/view/edit.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/view/show.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/admin/widgets/job-monitor-row.vue.d.ts +24 -11
- package/dist/components/admin/widgets/job-monitor.vue.d.ts +3 -3
- package/dist/components/admin/widgets/job-monitor.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/block-editor/block-doc-field.vue.d.ts +3 -3
- package/dist/components/block-editor/block-drag-handle.vue_vue_type_script_setup_true_lang.js +3 -4
- package/dist/components/block-editor/image-block-config.vue_vue_type_script_setup_true_lang.js +2 -3
- package/dist/components/charts/bar-chart.vue.d.ts +6 -2
- package/dist/components/charts/bar-chart.vue_vue_type_script_setup_true_lang.js +6 -4
- package/dist/components/charts/series-chart.d.ts +1 -1
- package/dist/components/charts/series-chart.js +9 -3
- package/dist/components/index.js +2 -2
- package/dist/components/inspector/configurable.vue.d.ts +0 -21
- package/dist/components/inspector/configurable.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/inspector/inspector.vue_vue_type_script_setup_true_lang.js +6 -8
- package/dist/components/kanban/kanban-board.vue.d.ts +3 -3
- package/dist/components/kanban/kanban-board.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/components/maps/bbox-field.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/maps/geo-json-field.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/maps/geo-json-layers.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/maps/geo-json-view.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/maps/lat-lng-field.vue_vue_type_script_setup_true_lang.js +4 -3
- package/dist/components/maps/lat-lng-input.vue_vue_type_script_setup_true_lang.js +5 -7
- package/dist/components/maps/map-canvas.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/maps/use-map.js +1 -3
- package/dist/components/maps-draw/shape-input.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/maps-draw/simplify-input.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/maps-osm/geocoding-input.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/maps-osm/map-with-search.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/mdx-editor/mdx-editor-theme.css +47 -0
- package/dist/components/mdx-editor/mdx-field.vue.d.ts +21 -11
- package/dist/components/mdx-editor/mdx-input.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/monaco/internal/use-json-schema.js +1 -2
- package/dist/components/monaco/internal/use-monaco-markers.d.ts +0 -6
- package/dist/components/monaco/internal/use-monaco-markers.js +4 -2
- package/dist/components/monaco/monaco-json-field-lazy.vue.d.ts +2 -2
- package/dist/components/monaco/monaco-json-field-lazy.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/components/monaco/monaco-json-field.vue.d.ts +3 -3
- package/dist/components/monaco/monaco-json-input-lazy.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/rich-text-input/rich-text-field.vue.d.ts +3 -3
- package/dist/components/ui/avatar.js +1 -1
- package/dist/components/ui/badge.js +4 -4
- package/dist/components/ui/button-variants.js +1 -1
- package/dist/components/ui/chart/chart-container.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/ui/checkbox.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/ui/command/command-dialog.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/ui/sidebar/sidebar-menu-button.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/ui/sidebar/sidebar-parts.js +2 -2
- package/dist/components/ui/sidebar/sidebar.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/controllers/use-controller-for-id.d.ts +2 -2
- package/dist/controllers/use-prev-next-controller.d.ts +2 -2
- package/dist/controllers/use-reference-many-field-controller.d.ts +4 -4
- package/dist/controllers/use-reference-one-field-controller.d.ts +4 -4
- package/dist/create-resource-components.d.ts +225 -117
- package/dist/data/undoable.js +2 -2
- package/dist/form/use-form.d.ts +5 -3
- package/dist/form/use-form.js +1 -1
- package/dist/form/use-input.d.ts +0 -2
- package/dist/form/use-input.js +1 -2
- package/dist/index.js +2 -2
- package/dist/resource-context.d.ts +5 -1
- package/dist/resource-context.js +4 -0
- package/dist/router/use-get-path-for-record.d.ts +3 -3
- package/package.json +5 -5
|
@@ -10,7 +10,7 @@ import button_default from "../ui/button.js";
|
|
|
10
10
|
import { FieldError } from "../ui/field.js";
|
|
11
11
|
import { simplifyGeo } from "./geometry-ops.js";
|
|
12
12
|
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, toDisplayString, toRaw, unref, watch, withCtx } from "vue";
|
|
13
|
-
import { deepEqual, isGeoJsonValue } from "@chelone/core";
|
|
13
|
+
import { DEFAULT_MAP_ZOOM, deepEqual, isGeoJsonValue } from "@chelone/core";
|
|
14
14
|
// src/components/maps-draw/simplify-input.vue?vue&type=script&setup=true&lang.ts
|
|
15
15
|
var _hoisted_1 = ["data-invalid"];
|
|
16
16
|
var _hoisted_2 = {
|
|
@@ -42,7 +42,7 @@ var simplify_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
42
42
|
type: [String, Boolean],
|
|
43
43
|
default: void 0
|
|
44
44
|
},
|
|
45
|
-
zoom: { default:
|
|
45
|
+
zoom: { default: DEFAULT_MAP_ZOOM },
|
|
46
46
|
defaultCenter: { default: () => [0, 0] },
|
|
47
47
|
height: { default: 400 },
|
|
48
48
|
mapStyle: { default: void 0 },
|
|
@@ -155,7 +155,8 @@ var geocoding_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
155
155
|
const count = results.value.length;
|
|
156
156
|
if (count === 0) return;
|
|
157
157
|
open.value = true;
|
|
158
|
-
|
|
158
|
+
const current = active.value;
|
|
159
|
+
active.value = current < 0 ? step === 1 ? 0 : count - 1 : (current + step + count) % count;
|
|
159
160
|
}
|
|
160
161
|
function onBlur() {
|
|
161
162
|
open.value = false;
|
|
@@ -4,7 +4,7 @@ import lat_lng_input_default from "../maps/lat-lng-input.js";
|
|
|
4
4
|
import { useMapsConfig } from "../maps/use-map.js";
|
|
5
5
|
import geocoding_input_default from "./geocoding-input.js";
|
|
6
6
|
import { createElementBlock, createVNode, defineComponent, normalizeClass, onBeforeUnmount, openBlock, unref } from "vue";
|
|
7
|
-
import { reverseGeocodeQueryOptions } from "@chelone/core";
|
|
7
|
+
import { DEFAULT_MAP_ZOOM, reverseGeocodeQueryOptions } from "@chelone/core";
|
|
8
8
|
import { useQueryClient } from "@tanstack/vue-query";
|
|
9
9
|
// src/components/maps-osm/map-with-search.vue?vue&type=script&setup=true&lang.ts
|
|
10
10
|
var map_with_search_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -14,7 +14,7 @@ var map_with_search_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
14
14
|
lngSource: {},
|
|
15
15
|
addressSource: {},
|
|
16
16
|
height: { default: 400 },
|
|
17
|
-
zoom: { default:
|
|
17
|
+
zoom: { default: DEFAULT_MAP_ZOOM },
|
|
18
18
|
provider: {},
|
|
19
19
|
class: {}
|
|
20
20
|
},
|
|
@@ -23,3 +23,50 @@
|
|
|
23
23
|
--crepe-font-default: inherit;
|
|
24
24
|
--crepe-font-title: inherit;
|
|
25
25
|
}
|
|
26
|
+
|
|
27
|
+
/*
|
|
28
|
+
* Crepe's own page spacing and display-size headings suit a full-page editor.
|
|
29
|
+
* Inside a form the content sits at the width of the other inputs, with
|
|
30
|
+
* headings sized like the rest of the admin.
|
|
31
|
+
*/
|
|
32
|
+
.chelone-mdx-editor .milkdown .ProseMirror {
|
|
33
|
+
padding: 12px 16px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.chelone-mdx-editor .milkdown .ProseMirror h1,
|
|
37
|
+
.chelone-mdx-editor .milkdown .ProseMirror h2,
|
|
38
|
+
.chelone-mdx-editor .milkdown .ProseMirror h3,
|
|
39
|
+
.chelone-mdx-editor .milkdown .ProseMirror h4 {
|
|
40
|
+
font-weight: 600;
|
|
41
|
+
line-height: 1.25;
|
|
42
|
+
margin: 1em 0 0.5em;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.chelone-mdx-editor .milkdown .ProseMirror h1 {
|
|
46
|
+
font-size: 1.875rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.chelone-mdx-editor .milkdown .ProseMirror h2 {
|
|
50
|
+
font-size: 1.5rem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.chelone-mdx-editor .milkdown .ProseMirror h3 {
|
|
54
|
+
font-size: 1.25rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.chelone-mdx-editor .milkdown .ProseMirror h4 {
|
|
58
|
+
font-size: 1.125rem;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* The outline color is a border color: too faint for a list marker. */
|
|
62
|
+
.chelone-mdx-editor .milkdown .milkdown-list-item-block li .label-wrapper {
|
|
63
|
+
color: var(--crepe-color-on-surface-variant);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.chelone-mdx-editor .milkdown .milkdown-list-item-block li .label-wrapper svg {
|
|
67
|
+
fill: var(--crepe-color-on-surface-variant);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.chelone-mdx-editor .milkdown .ProseMirror > :first-child {
|
|
71
|
+
margin-top: 0;
|
|
72
|
+
}
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
* <MdxField source="body" empty="No content" />
|
|
15
15
|
*/
|
|
16
16
|
import { type VNode } from "vue";
|
|
17
|
-
import type { LooseRecord, SourceProp } from "@chelone/core";
|
|
17
|
+
import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
|
|
18
18
|
import type { CrepeEditorConfig } from "./internal/crepe-editor.vue.js";
|
|
19
19
|
/** Props for {@link MdxField}. */
|
|
20
|
-
export interface MdxFieldProps {
|
|
21
|
-
source: SourceProp
|
|
22
|
-
record?:
|
|
20
|
+
export interface MdxFieldProps<RecordType extends ResourceRecord = LooseRecord> {
|
|
21
|
+
source: SourceProp<RecordType>;
|
|
22
|
+
record?: RecordType;
|
|
23
23
|
/** Used when the record has no value at `source`. */
|
|
24
|
-
defaultValue?:
|
|
24
|
+
defaultValue?: SourceValue<RecordType, SourceProp<RecordType>>;
|
|
25
25
|
/** Shown as the markdown when the value is missing; translated if it is a message key. */
|
|
26
26
|
empty?: string;
|
|
27
27
|
/** Merged under the read-only defaults; `code-mirror` and `latex` stay off. */
|
|
@@ -30,11 +30,21 @@ export interface MdxFieldProps {
|
|
|
30
30
|
}
|
|
31
31
|
declare const _default: typeof __VLS_export;
|
|
32
32
|
export default _default;
|
|
33
|
-
declare const __VLS_export:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
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<{
|
|
34
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<MdxFieldProps<RecordType>> & (typeof globalThis extends {
|
|
35
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
36
|
+
} ? P : {});
|
|
37
|
+
expose: (exposed: {}) => void;
|
|
38
|
+
attrs: any;
|
|
39
|
+
slots: {
|
|
40
|
+
empty?: () => VNode[];
|
|
39
41
|
};
|
|
42
|
+
emit: {};
|
|
43
|
+
}>) => import("vue").VNode & {
|
|
44
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
40
45
|
};
|
|
46
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
47
|
+
[K in keyof T]: T[K];
|
|
48
|
+
} : {
|
|
49
|
+
[K in keyof T as K]: T[K];
|
|
50
|
+
}) & {};
|
|
@@ -73,7 +73,10 @@ var mdx_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
|
|
|
73
73
|
])]),
|
|
74
74
|
_: 1
|
|
75
75
|
}, 8, ["html-for"])) : createCommentVNode("", true),
|
|
76
|
-
createElementVNode("div", {
|
|
76
|
+
createElementVNode("div", {
|
|
77
|
+
id: unref(id),
|
|
78
|
+
class: "overflow-hidden rounded-md border"
|
|
79
|
+
}, [createVNode(crepe_editor_default, {
|
|
77
80
|
markdown: markdown.value,
|
|
78
81
|
readonly: __props.disabled === true || __props.readOnly === true,
|
|
79
82
|
"crepe-config": __props.crepeConfig,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { computed, toValue, watchEffect } from "vue";
|
|
2
|
+
import { MODEL_PREFIX } from "@chelone/core";
|
|
2
3
|
// src/components/monaco/internal/use-json-schema.ts
|
|
3
|
-
/** Every model path this add-on creates starts with this. */
|
|
4
|
-
var MODEL_PREFIX = "inmemory://monaco-json-input/";
|
|
5
4
|
var shared = /* @__PURE__ */ new WeakMap();
|
|
6
5
|
function apply(defaults, state) {
|
|
7
6
|
const current = defaults.diagnosticsOptions;
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import type * as Monaco from "monaco-editor";
|
|
2
2
|
import type { editor } from "monaco-editor";
|
|
3
3
|
import { type Ref } from "vue";
|
|
4
|
-
/**
|
|
5
|
-
* How long after the last edit `settled` waits for Monaco's markers. Monaco
|
|
6
|
-
* posts them about 500 ms after an edit.
|
|
7
|
-
*/
|
|
8
|
-
export declare const MARKERS_SETTLE_MS = 750;
|
|
9
|
-
export declare const MONACO_DIAGNOSTICS_DELAY_MS = 500;
|
|
10
4
|
export interface MonacoMarkers {
|
|
11
5
|
markers: Ref<editor.IMarker[]>;
|
|
12
6
|
/**
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { shallowRef, watch } from "vue";
|
|
2
|
+
import { MARKERS_SETTLE_MS, MONACO_DIAGNOSTICS_DELAY_MS } from "@chelone/core";
|
|
3
|
+
// src/components/monaco/internal/use-monaco-markers.ts
|
|
2
4
|
/**
|
|
3
5
|
* Keeps the editor model's current markers in a ref and calls `onChange` each
|
|
4
6
|
* time Monaco reports a change for that model. The ref is what a validator
|
|
@@ -22,7 +24,7 @@ function useMonacoMarkers(instance, monaco, onChange) {
|
|
|
22
24
|
const subscription = currentMonaco.editor.onDidChangeMarkers((uris) => {
|
|
23
25
|
if (!uris.some((uri) => uri.toString() === model.uri.toString())) return;
|
|
24
26
|
markers.value = read();
|
|
25
|
-
if (Date.now() - lastEditAt >=
|
|
27
|
+
if (Date.now() - lastEditAt >= MONACO_DIAGNOSTICS_DELAY_MS) {
|
|
26
28
|
fresh = true;
|
|
27
29
|
for (const release of [...waiting]) release();
|
|
28
30
|
}
|
|
@@ -41,7 +43,7 @@ function useMonacoMarkers(instance, monaco, onChange) {
|
|
|
41
43
|
waiting.delete(release);
|
|
42
44
|
resolve(markers.value);
|
|
43
45
|
};
|
|
44
|
-
const timer = setTimeout(release, Math.max(0, lastEditAt +
|
|
46
|
+
const timer = setTimeout(release, Math.max(0, lastEditAt + MARKERS_SETTLE_MS - Date.now()));
|
|
45
47
|
waiting.add(release);
|
|
46
48
|
});
|
|
47
49
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type LooseRecord, type ResourceRecord } from "@chelone/core";
|
|
2
2
|
import { type VNode } from "vue";
|
|
3
3
|
import type { MonacoJsonFieldProps } from "./monaco-json-field.vue.js";
|
|
4
|
-
declare const __VLS_export: <RecordType extends
|
|
4
|
+
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<{
|
|
5
5
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<MonacoJsonFieldProps<RecordType>> & (typeof globalThis extends {
|
|
6
6
|
__VLS_PROPS_FALLBACK: infer P;
|
|
7
7
|
} ? P : {});
|
package/dist/components/monaco/monaco-json-field-lazy.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -3,10 +3,10 @@ import { cn } from "../../lib/utils.js";
|
|
|
3
3
|
import { useFieldValue } from "../../record/use-field-value.js";
|
|
4
4
|
import { useAutoHeight, useMonacoLayout, useMonacoTheme } from "./internal/monaco-composables.js";
|
|
5
5
|
import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, shallowRef, toDisplayString, unref } from "vue";
|
|
6
|
+
import { MONACO_MIN_HEIGHT } from "@chelone/core";
|
|
6
7
|
import { VueMonacoEditor, loader } from "@guolao/vue-monaco-editor";
|
|
7
8
|
import * as monaco from "monaco-editor";
|
|
8
9
|
// src/components/monaco/monaco-json-field-lazy.vue?vue&type=script&setup=true&lang.ts
|
|
9
|
-
var MIN_HEIGHT = 120;
|
|
10
10
|
var monaco_json_field_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
11
11
|
__name: "monaco-json-field-lazy",
|
|
12
12
|
props: {
|
|
@@ -40,7 +40,7 @@ var monaco_json_field_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
40
40
|
const text = computed(() => typeof value.value === "string" ? value.value : JSON.stringify(value.value ?? null, null, 2));
|
|
41
41
|
const instance = shallowRef(null);
|
|
42
42
|
const theme = useMonacoTheme();
|
|
43
|
-
const contentHeight = useAutoHeight(instance, () => props.autoHeight,
|
|
43
|
+
const contentHeight = useAutoHeight(instance, () => props.autoHeight, MONACO_MIN_HEIGHT, () => props.maxHeight);
|
|
44
44
|
const container = useMonacoLayout(instance);
|
|
45
45
|
const editorHeight = computed(() => `${props.autoHeight ? contentHeight.value : props.height}px`);
|
|
46
46
|
const options = computed(() => ({
|
|
@@ -48,6 +48,7 @@ var monaco_json_field_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
48
48
|
domReadOnly: true,
|
|
49
49
|
automaticLayout: false,
|
|
50
50
|
minimap: { enabled: false },
|
|
51
|
+
scrollBeyondLastLine: false,
|
|
51
52
|
lineNumbers: "on",
|
|
52
53
|
wordWrap: "on",
|
|
53
54
|
tabSize: 2,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { LooseRecord } from "@chelone/core";
|
|
1
|
+
import type { LooseRecord, ResourceRecord } from "@chelone/core";
|
|
2
2
|
import type { editor } from "monaco-editor";
|
|
3
3
|
import type { FieldProps } from "../admin/fields/field-props.js";
|
|
4
4
|
/** Props for {@link MonacoJsonField}. */
|
|
5
|
-
export interface MonacoJsonFieldProps<RecordType extends
|
|
5
|
+
export interface MonacoJsonFieldProps<RecordType extends ResourceRecord = LooseRecord> extends FieldProps<RecordType> {
|
|
6
6
|
/** Editor height in pixels when `autoHeight` is false. Defaults to 200. */
|
|
7
7
|
height?: number;
|
|
8
8
|
/** Grow with the content up to `maxHeight`. Defaults to true. */
|
|
@@ -31,7 +31,7 @@ export interface MonacoJsonFieldProps<RecordType extends LooseRecord = LooseReco
|
|
|
31
31
|
*/
|
|
32
32
|
declare const _default: typeof __VLS_export;
|
|
33
33
|
export default _default;
|
|
34
|
-
declare const __VLS_export: <RecordType extends
|
|
34
|
+
declare const __VLS_export: <RecordType extends ResourceRecord = LooseRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
|
|
35
35
|
attrs: any;
|
|
36
36
|
slots: {
|
|
37
37
|
empty?: () => import("vue").VNode[];
|
package/dist/components/monaco/monaco-json-input-lazy.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -11,7 +11,7 @@ import { useAutoHeight, useMonacoLayout, useMonacoTheme } from "./internal/monac
|
|
|
11
11
|
import { useJsonSchema } from "./internal/use-json-schema.js";
|
|
12
12
|
import { useMonacoMarkers } from "./internal/use-monaco-markers.js";
|
|
13
13
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, shallowRef, toDisplayString, unref, watch, withCtx } from "vue";
|
|
14
|
-
import { composeValidators, detectJsonShape, fromJsonText, stripJsonComments, toJsonText } from "@chelone/core";
|
|
14
|
+
import { ERROR_SEVERITY, MODEL_PREFIX, composeValidators, detectJsonShape, fromJsonText, stripJsonComments, toJsonText } from "@chelone/core";
|
|
15
15
|
import { VueMonacoEditor, loader } from "@guolao/vue-monaco-editor";
|
|
16
16
|
import * as monaco from "monaco-editor";
|
|
17
17
|
// src/components/monaco/monaco-json-input-lazy.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -20,7 +20,6 @@ var _hoisted_1 = {
|
|
|
20
20
|
class: "flex justify-end border-b px-1 py-0.5"
|
|
21
21
|
};
|
|
22
22
|
var _hoisted_2 = ["id"];
|
|
23
|
-
var ERROR_SEVERITY = 8;
|
|
24
23
|
var monaco_json_input_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
25
24
|
__name: "monaco-json-input-lazy",
|
|
26
25
|
props: {
|
|
@@ -92,7 +91,7 @@ var monaco_json_input_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
92
91
|
if (shape.value === "string") return void 0;
|
|
93
92
|
const { parseError } = parseText(text.value, "object");
|
|
94
93
|
return parseError ? translate("chelone.validation.invalid_json", {
|
|
95
|
-
_: "Invalid JSON:
|
|
94
|
+
_: "Invalid JSON: {message}",
|
|
96
95
|
message: parseError.message
|
|
97
96
|
}) : void 0;
|
|
98
97
|
};
|
|
@@ -125,7 +124,7 @@ var monaco_json_input_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
125
124
|
const theme = useMonacoTheme();
|
|
126
125
|
const contentHeight = useAutoHeight(instance, () => props.autoHeight, props.minHeight, () => props.maxHeight);
|
|
127
126
|
const container = useMonacoLayout(instance);
|
|
128
|
-
const modelPath =
|
|
127
|
+
const modelPath = `${MODEL_PREFIX}${id.replace(/[^\w-]/g, "-")}.json`;
|
|
129
128
|
useJsonSchema(monacoApi, () => ({
|
|
130
129
|
path: modelPath,
|
|
131
130
|
schema: props.schema,
|
|
@@ -140,6 +139,7 @@ var monaco_json_input_lazy_vue_vue_type_script_setup_true_lang_default = /*@__PU
|
|
|
140
139
|
const options = computed(() => ({
|
|
141
140
|
automaticLayout: false,
|
|
142
141
|
minimap: { enabled: false },
|
|
142
|
+
scrollBeyondLastLine: false,
|
|
143
143
|
lineNumbers: "on",
|
|
144
144
|
wordWrap: "on",
|
|
145
145
|
tabSize: 2,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type VNode } from "vue";
|
|
2
|
-
import type { LooseRecord, SourceProp, SourceValue } from "@chelone/core";
|
|
2
|
+
import type { LooseRecord, ResourceRecord, SourceProp, SourceValue } from "@chelone/core";
|
|
3
3
|
/** Props for {@link RichTextField}. */
|
|
4
|
-
export interface RichTextFieldProps<RecordType extends
|
|
4
|
+
export interface RichTextFieldProps<RecordType extends ResourceRecord = LooseRecord> {
|
|
5
5
|
source: SourceProp<RecordType>;
|
|
6
6
|
record?: RecordType;
|
|
7
7
|
/** Used when the record has no value at `source`. */
|
|
@@ -14,7 +14,7 @@ export interface RichTextFieldProps<RecordType extends LooseRecord = LooseRecord
|
|
|
14
14
|
}
|
|
15
15
|
declare const _default: typeof __VLS_export;
|
|
16
16
|
export default _default;
|
|
17
|
-
declare const __VLS_export: <RecordType extends
|
|
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
18
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<RichTextFieldProps<RecordType>> & (typeof globalThis extends {
|
|
19
19
|
__VLS_PROPS_FALLBACK: infer P;
|
|
20
20
|
} ? P : {});
|
|
@@ -64,7 +64,7 @@ var AvatarImage = defineComponent({
|
|
|
64
64
|
/** The fallback shown when no image is present (typically the name's initial). */
|
|
65
65
|
var AvatarFallback = (props, { slots }) => h("span", {
|
|
66
66
|
"data-slot": "avatar-fallback",
|
|
67
|
-
class: cn("flex size-full items-center justify-center rounded-full bg-muted text-sm group-data-[size=sm]/avatar:text-xs", props.class)
|
|
67
|
+
class: cn("flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs", props.class)
|
|
68
68
|
}, slots.default?.());
|
|
69
69
|
AvatarFallback.props = ["class"];
|
|
70
70
|
AvatarFallback.displayName = "AvatarFallback";
|
|
@@ -9,11 +9,11 @@ import { defineComponent, h } from "vue";
|
|
|
9
9
|
* classes with `cva`; here the (small, fixed) variant set is a literal map — no
|
|
10
10
|
* runtime cva dep — with the same visual contract.
|
|
11
11
|
*/
|
|
12
|
-
var BADGE_BASE = "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border
|
|
12
|
+
var BADGE_BASE = "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] [&>svg]:pointer-events-none [&>svg]:size-3";
|
|
13
13
|
var BADGE_VARIANTS = {
|
|
14
|
-
default: "bg-primary text-primary-foreground",
|
|
15
|
-
secondary: "bg-secondary text-secondary-foreground",
|
|
16
|
-
destructive: "bg-destructive text-white",
|
|
14
|
+
default: "border-transparent bg-primary text-primary-foreground",
|
|
15
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground",
|
|
16
|
+
destructive: "border-transparent bg-destructive text-white",
|
|
17
17
|
outline: "border-border text-foreground"
|
|
18
18
|
};
|
|
19
19
|
var Badge = defineComponent({
|
|
@@ -12,7 +12,7 @@ import { cn } from "../../lib/utils.js";
|
|
|
12
12
|
var base = "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50";
|
|
13
13
|
var variantClasses = {
|
|
14
14
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
15
|
-
destructive: "bg-destructive text-
|
|
15
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90",
|
|
16
16
|
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
17
17
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
18
18
|
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
@@ -29,7 +29,7 @@ var chart_container_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
29
29
|
return openBlock(), createElementBlock("div", {
|
|
30
30
|
"data-slot": "chart",
|
|
31
31
|
"data-chart": chartId,
|
|
32
|
-
class: normalizeClass(unref(cn)("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", props.class))
|
|
32
|
+
class: normalizeClass(unref(cn)("[--vis-axis-grid-color:var(--border)] [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", props.class))
|
|
33
33
|
}, [createVNode(chart_style_default, {
|
|
34
34
|
id: chartId,
|
|
35
35
|
config: unref(config)
|
|
@@ -26,7 +26,7 @@ var checkbox_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
26
26
|
*/
|
|
27
27
|
const props = __props;
|
|
28
28
|
const emit = __emit;
|
|
29
|
-
const classes = computed(() => cn("h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50", props.class));
|
|
29
|
+
const classes = computed(() => cn("h-4 w-4 shrink-0 rounded-sm border border-primary accent-primary shadow focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50", props.class));
|
|
30
30
|
function onChange(event) {
|
|
31
31
|
if (event.target instanceof HTMLInputElement) emit("update:modelValue", event.target.checked);
|
|
32
32
|
}
|
|
@@ -64,7 +64,7 @@ var command_dialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
64
64
|
"aria-modal": "true",
|
|
65
65
|
"aria-labelledby": unref(titleId),
|
|
66
66
|
"aria-describedby": unref(descriptionId),
|
|
67
|
-
class: normalizeClass(unref(cn)("fixed top-1/
|
|
67
|
+
class: normalizeClass(unref(cn)("fixed top-1/2 left-1/2 w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg border bg-background p-0 shadow-lg sm:max-w-lg", props.class)),
|
|
68
68
|
"data-slot": "command-dialog-content"
|
|
69
69
|
}, [
|
|
70
70
|
createElementVNode("h2", {
|
package/dist/components/ui/sidebar/sidebar-menu-button.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -21,7 +21,7 @@ var sidebar_menu_button_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
|
|
|
21
21
|
* link target. `isActive` drives the `data-active` state + the active styling.
|
|
22
22
|
*/
|
|
23
23
|
const props = __props;
|
|
24
|
-
const classes = computed(() => cn("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0", props.isActive && "bg-sidebar-accent font-medium text-sidebar-accent-foreground", props.size === "sm" && "h-7 text-xs", props.size === "lg" && "h-12 text-sm", props.class));
|
|
24
|
+
const classes = computed(() => cn("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0", props.isActive && "bg-sidebar-accent font-medium text-sidebar-accent-foreground", props.size === "default" && "min-h-8 py-1.5", props.size === "sm" && "min-h-7 py-1.5 text-xs", props.size === "lg" && "h-12 text-sm", props.class));
|
|
25
25
|
return (_ctx, _cache) => {
|
|
26
26
|
return openBlock(), createBlock(resolveDynamicComponent(__props.as), {
|
|
27
27
|
class: normalizeClass(classes.value),
|
|
@@ -21,11 +21,11 @@ function structural(slot, tag, base) {
|
|
|
21
21
|
return component;
|
|
22
22
|
}
|
|
23
23
|
var SidebarHeader = structural("sidebar-header", "div", "flex flex-col gap-2 p-2");
|
|
24
|
-
var SidebarContent = structural("sidebar-content", "div", "flex min-h-0 flex-1 flex-col gap-2 overflow-auto p-2");
|
|
24
|
+
var SidebarContent = structural("sidebar-content", "div", "flex min-h-0 flex-1 flex-col gap-2 overflow-auto p-2 group-data-[collapsible=icon]:overflow-hidden group-data-[collapsible=icon]:p-0");
|
|
25
25
|
var SidebarFooter = structural("sidebar-footer", "div", "flex flex-col gap-2 p-2");
|
|
26
26
|
var SidebarGroup = structural("sidebar-group", "div", "relative flex w-full min-w-0 flex-col p-2");
|
|
27
27
|
var SidebarGroupContent = structural("sidebar-group-content", "div", "w-full text-sm");
|
|
28
|
-
var SidebarGroupLabel = structural("sidebar-group-label", "div", "flex h-8 shrink-0 items-center px-2 text-xs font-medium text-sidebar-foreground/70");
|
|
28
|
+
var SidebarGroupLabel = structural("sidebar-group-label", "div", "flex h-8 shrink-0 items-center px-2 text-xs font-medium text-sidebar-foreground/70 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0");
|
|
29
29
|
var SidebarMenu = structural("sidebar-menu", "ul", "flex w-full min-w-0 flex-col gap-1");
|
|
30
30
|
var SidebarMenuItem = structural("sidebar-menu-item", "li", "group/menu-item relative");
|
|
31
31
|
export { SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuItem };
|
|
@@ -53,7 +53,7 @@ var sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
53
53
|
role: "dialog",
|
|
54
54
|
"aria-modal": "true",
|
|
55
55
|
"aria-label": "Sidebar",
|
|
56
|
-
class: normalizeClass(unref(cn)("absolute inset-y-0 flex h-svh w-
|
|
56
|
+
class: normalizeClass(unref(cn)("absolute inset-y-0 flex h-svh w-(--sidebar-width) flex-col bg-sidebar shadow-lg", __props.side === "right" ? "right-0" : "left-0", props.class)),
|
|
57
57
|
"data-side": __props.side,
|
|
58
58
|
"data-slot": "sidebar-drawer"
|
|
59
59
|
}, [renderSlot(_ctx.$slots, "default")], 10, _hoisted_2)])) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("div", {
|
|
@@ -65,7 +65,7 @@ var sidebar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
65
65
|
"data-side": __props.side,
|
|
66
66
|
"data-slot": "sidebar"
|
|
67
67
|
}, [createElementVNode("div", {
|
|
68
|
-
class: normalizeClass(unref(cn)("flex h-svh flex-col bg-sidebar transition-[width] duration-200 ease-linear", unref(state) === "collapsed" && __props.collapsible === "icon" ? "w-[--sidebar-width-icon]" : "w-
|
|
68
|
+
class: normalizeClass(unref(cn)("flex h-svh flex-col bg-sidebar transition-[width] duration-200 ease-linear", unref(state) === "collapsed" && __props.collapsible === "icon" ? __props.variant === "floating" ? "w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "w-(--sidebar-width-icon)" : "w-(--sidebar-width)", __props.variant === "floating" && "p-2", props.class)),
|
|
69
69
|
"data-slot": "sidebar-inner"
|
|
70
70
|
}, [renderSlot(_ctx.$slots, "default")], 2)], 8, _hoisted_3));
|
|
71
71
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* the 4R release: the old controller's observer detaches the moment the id
|
|
6
6
|
* moves on, and the last scope disposal releases the final one.
|
|
7
7
|
*/
|
|
8
|
-
import { type Identifier, type MicroStore } from "@chelone/core";
|
|
8
|
+
import { type Identifier, type MicroStore, type ResourceRecord } from "@chelone/core";
|
|
9
9
|
import { type Ref } from "vue";
|
|
10
10
|
import type { RecordValue } from "../record/record-context.js";
|
|
11
11
|
export type SourceId = Identifier | undefined;
|
|
@@ -18,7 +18,7 @@ export interface BoundController<TController, TState> {
|
|
|
18
18
|
* {@link getAtPath} so `source="author.id"` resolves the way the field
|
|
19
19
|
* composables read it. Anything but a string or number reads as no key.
|
|
20
20
|
*/
|
|
21
|
-
export declare function foreignKeyOf(record: RecordValue
|
|
21
|
+
export declare function foreignKeyOf(record: RecordValue<ResourceRecord>, source: string): SourceId;
|
|
22
22
|
/**
|
|
23
23
|
* Builds `create(id)` inside a scope of its own and keeps it bound to `id`:
|
|
24
24
|
* when `id` changes the new controller is built and bound first, then the
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
* once, at call time. The store key is read once, in `setup`
|
|
15
15
|
* (see `useStoreItem`).
|
|
16
16
|
*/
|
|
17
|
-
import { type
|
|
17
|
+
import { type PrevNextOptions, type ResourceRecord } from "@chelone/core";
|
|
18
18
|
import { type MaybeRefOrGetter } from "vue";
|
|
19
19
|
export interface UsePrevNextControllerOptions extends PrevNextOptions {
|
|
20
20
|
/** Step from this record instead of the ambient one. */
|
|
21
|
-
record?:
|
|
21
|
+
record?: ResourceRecord;
|
|
22
22
|
}
|
|
23
23
|
export interface UsePrevNextControllerReturn {
|
|
24
24
|
hasPrev: boolean;
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* previous subscription is released. The other options are read at `setup`.
|
|
11
11
|
* There is no location sync: the list is embedded in a record.
|
|
12
12
|
*/
|
|
13
|
-
import { type FilterPayload, type ListControllerState, type MicroStore, type RecordOf, type ReferenceManyController, type ResourceMap, type SortPayload } from "@chelone/core";
|
|
13
|
+
import { type FilterPayload, type ListControllerState, type LooseRecord, type MicroStore, type RecordOf, type ReferenceManyController, type ResourceMap, type ResourceRecord, type SortPayload } from "@chelone/core";
|
|
14
14
|
import { type MaybeRefOrGetter } from "vue";
|
|
15
15
|
import { type RecordValue } from "../record/record-context.js";
|
|
16
|
-
export interface UseReferenceManyFieldControllerOptions<TName extends string = string> {
|
|
16
|
+
export interface UseReferenceManyFieldControllerOptions<TName extends string = string, RecordType extends ResourceRecord = LooseRecord> {
|
|
17
17
|
/** The resource whose rows point at the record. */
|
|
18
18
|
reference: TName;
|
|
19
19
|
/** The field on `reference` that holds the foreign key. */
|
|
@@ -21,7 +21,7 @@ export interface UseReferenceManyFieldControllerOptions<TName extends string = s
|
|
|
21
21
|
/** The field on the record whose value `target` must equal. Default `"id"`. */
|
|
22
22
|
source?: string;
|
|
23
23
|
/** Defaults to the ambient record. */
|
|
24
|
-
record?: MaybeRefOrGetter<RecordValue
|
|
24
|
+
record?: MaybeRefOrGetter<RecordValue<RecordType>>;
|
|
25
25
|
/** Permanent filter, merged over the user filter for every fetch. */
|
|
26
26
|
filter?: FilterPayload;
|
|
27
27
|
/** Initial sort when nothing is persisted. Default id ascending. */
|
|
@@ -43,4 +43,4 @@ export type UseReferenceManyFieldControllerReturn<TRecord> = ListControllerState
|
|
|
43
43
|
* actions. A record without a usable id (absent, or not a string or number)
|
|
44
44
|
* fetches nothing and reads as an empty, settled list.
|
|
45
45
|
*/
|
|
46
|
-
export declare function useReferenceManyFieldController<TResources extends ResourceMap = ResourceMap, TName extends keyof TResources & string = keyof TResources & string>(options: UseReferenceManyFieldControllerOptions<TName>): UseReferenceManyFieldControllerReturn<RecordOf<TResources, TName>>;
|
|
46
|
+
export declare function useReferenceManyFieldController<TResources extends ResourceMap = ResourceMap, TName extends keyof TResources & string = keyof TResources & string, RecordType extends ResourceRecord = LooseRecord>(options: UseReferenceManyFieldControllerOptions<TName, RecordType>): UseReferenceManyFieldControllerReturn<RecordOf<TResources, TName>>;
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
* {@link useReferenceManyFieldController}: a new id builds a new controller and
|
|
9
9
|
* releases the previous subscription.
|
|
10
10
|
*/
|
|
11
|
-
import { type FilterPayload, type MicroStore, type RecordOf, type ReferenceOneController, type ReferenceOneControllerState, type ResourceMap, type SortPayload } from "@chelone/core";
|
|
11
|
+
import { type FilterPayload, type LooseRecord, type MicroStore, type RecordOf, type ReferenceOneController, type ReferenceOneControllerState, type ResourceMap, type ResourceRecord, type SortPayload } from "@chelone/core";
|
|
12
12
|
import { type MaybeRefOrGetter } from "vue";
|
|
13
13
|
import { type RecordValue } from "../record/record-context.js";
|
|
14
|
-
export interface UseReferenceOneFieldControllerOptions<TName extends string = string> {
|
|
14
|
+
export interface UseReferenceOneFieldControllerOptions<TName extends string = string, RecordType extends ResourceRecord = LooseRecord> {
|
|
15
15
|
/** The resource whose rows point at the record. */
|
|
16
16
|
reference: TName;
|
|
17
17
|
/** The field on `reference` that holds the foreign key. */
|
|
@@ -19,7 +19,7 @@ export interface UseReferenceOneFieldControllerOptions<TName extends string = st
|
|
|
19
19
|
/** The field on the record whose value `target` must equal. Default `"id"`. */
|
|
20
20
|
source?: string;
|
|
21
21
|
/** Defaults to the ambient record. */
|
|
22
|
-
record?: MaybeRefOrGetter<RecordValue
|
|
22
|
+
record?: MaybeRefOrGetter<RecordValue<RecordType>>;
|
|
23
23
|
/** Decides which row is first when several match. */
|
|
24
24
|
sort?: SortPayload | SortPayload[];
|
|
25
25
|
/** Narrows the lookup. */
|
|
@@ -33,4 +33,4 @@ export type UseReferenceOneFieldControllerReturn<TRecord> = ReferenceOneControll
|
|
|
33
33
|
* The first row of `reference` whose `target` equals `record[source]`. A record
|
|
34
34
|
* without a usable id fetches nothing and reads as settled with no record.
|
|
35
35
|
*/
|
|
36
|
-
export declare function useReferenceOneFieldController<TResources extends ResourceMap = ResourceMap, TName extends keyof TResources & string = keyof TResources & string>(options: UseReferenceOneFieldControllerOptions<TName>): UseReferenceOneFieldControllerReturn<RecordOf<TResources, TName>>;
|
|
36
|
+
export declare function useReferenceOneFieldController<TResources extends ResourceMap = ResourceMap, TName extends keyof TResources & string = keyof TResources & string, RecordType extends ResourceRecord = LooseRecord>(options: UseReferenceOneFieldControllerOptions<TName, RecordType>): UseReferenceOneFieldControllerReturn<RecordOf<TResources, TName>>;
|