@chelone/core 0.7.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/auth/auth-options.d.ts +2 -0
  2. package/dist/auth/auth-options.js +3 -1
  3. package/dist/block-editor/block-document.d.ts +4 -0
  4. package/dist/block-editor/block-document.js +5 -1
  5. package/dist/command-menu/recents.d.ts +4 -0
  6. package/dist/command-menu/recents.js +5 -1
  7. package/dist/controller/calendar-dates.d.ts +12 -0
  8. package/dist/controller/calendar-dates.js +13 -1
  9. package/dist/controller/in-place-editor.d.ts +9 -8
  10. package/dist/controller/in-place-editor.js +3 -2
  11. package/dist/controller/inspector.d.ts +6 -0
  12. package/dist/controller/inspector.js +7 -1
  13. package/dist/controller/job-monitor.d.ts +8 -1
  14. package/dist/controller/job-monitor.js +11 -2
  15. package/dist/controller/kanban-board.d.ts +3 -2
  16. package/dist/controller/kanban-board.js +3 -1
  17. package/dist/controller/list-controller.d.ts +3 -0
  18. package/dist/controller/list-controller.js +5 -2
  19. package/dist/controller/pivot-grid.d.ts +4 -4
  20. package/dist/controller/prev-next.js +2 -2
  21. package/dist/controller/record-diff.d.ts +2 -2
  22. package/dist/controller/record-timeline.d.ts +5 -5
  23. package/dist/controller/reference-many-controller.d.ts +2 -0
  24. package/dist/controller/reference-many-controller.js +4 -3
  25. package/dist/csv/export.d.ts +2 -2
  26. package/dist/csv/import-controller.d.ts +4 -0
  27. package/dist/csv/import-controller.js +5 -1
  28. package/dist/data/fake-provider.js +7 -1
  29. package/dist/data/with-lifecycle-callbacks.d.ts +2 -2
  30. package/dist/form/choices-controller.d.ts +19 -0
  31. package/dist/form/choices-controller.js +18 -5
  32. package/dist/form/input-binding.js +3 -1
  33. package/dist/form/input-values.d.ts +10 -0
  34. package/dist/form/input-values.js +30 -1
  35. package/dist/form/json-text.d.ts +11 -0
  36. package/dist/form/json-text.js +12 -1
  37. package/dist/geo/coordinates.d.ts +10 -0
  38. package/dist/geo/coordinates.js +14 -1
  39. package/dist/geo/index.d.ts +2 -2
  40. package/dist/geo/map-style.d.ts +12 -0
  41. package/dist/geo/map-style.js +13 -1
  42. package/dist/guards.d.ts +7 -0
  43. package/dist/guards.js +16 -1
  44. package/dist/i18n/english-messages.d.ts +172 -0
  45. package/dist/i18n/english-messages.js +173 -1
  46. package/dist/i18n/missing-keys.d.ts +4 -0
  47. package/dist/i18n/missing-keys.js +5 -1
  48. package/dist/index.d.ts +22 -21
  49. package/dist/index.js +21 -20
  50. package/dist/onboarding-tour/placement.d.ts +2 -0
  51. package/dist/onboarding-tour/placement.js +3 -1
  52. package/dist/resource/describe-resource.js +26 -11
  53. package/dist/resource/source-path.d.ts +7 -1
  54. package/dist/rich-text/rich-text-extras.d.ts +2 -0
  55. package/dist/rich-text/rich-text-extras.js +4 -2
  56. package/dist/router/location.d.ts +2 -0
  57. package/dist/router/location.js +3 -1
  58. package/dist/ui-defaults.d.ts +15 -0
  59. package/dist/ui-defaults.js +17 -0
  60. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -10,12 +10,12 @@ export type { AssistantChunk, AssistantMessage, AssistantTool, AssistantToolCall
10
10
  export type { Permission } from "./auth/access-control.js";
11
11
  export { canAccessWithPermissions } from "./auth/access-control.js";
12
12
  export type { CheckErrorOutcome } from "./auth/auth-options.js";
13
- export { authStateQueryOptions, canAccessQueryOptions, checkError, identityQueryOptions, permissionsQueryOptions, } from "./auth/auth-options.js";
13
+ export { authStateQueryOptions, canAccessQueryOptions, checkError, DEFAULT_LOGIN_PATH, identityQueryOptions, permissionsQueryOptions, } from "./auth/auth-options.js";
14
14
  export type { PermissionCellState, PermissionMatrixValue, } from "./auth/permission-matrix.js";
15
15
  export { getPermissionCell, isPermissionRowGranted, setPermissionRow, togglePermission, } from "./auth/permission-matrix.js";
16
16
  export type { AuthProvider, CanAccessParams, UserIdentity } from "./auth/types.js";
17
17
  export type { Attrs as BlockAttrs, BlockDocNode, BlockRegistry, BlockSpec, } from "./block-editor/block-document.js";
18
- export { createBlockRegistry, describeBlockAttrs, emptyBlockDocument, getBlockDefaultAttrs, isBlockDoc, isEmptyBlockDocument, matchBlocks, toEmbedSrc, unknownBlockType, unwrapUnknownBlocks, wrapUnknownBlocks, } from "./block-editor/block-document.js";
18
+ export { createBlockRegistry, describeBlockAttrs, emptyBlockDocument, GAP_PREFIX, getBlockDefaultAttrs, HANDLE_ID, isBlockDoc, isEmptyBlockDocument, matchBlocks, toEmbedSrc, unknownBlockType, unwrapUnknownBlocks, wrapUnknownBlocks, } from "./block-editor/block-document.js";
19
19
  export type { ChartAggregateOptions, ChartAggregatePoint, DataBlockName, DataBlockSpec, } from "./block-editor/data-blocks.js";
20
20
  export { aggregateChartData, chartBlockSpec, dataBlockNames, formatDataBlockValue, pickDataBlockFields, readDataBlockValue, recordListBlockSpec, referenceRecordBlockSpec, } from "./block-editor/data-blocks.js";
21
21
  export type { CartesianRow, DonutSlice, MetricDelta, } from "./chart/chart-data.js";
@@ -23,11 +23,11 @@ export { chartColor, DEFAULT_CHART_COLORS, getMetricDelta, hasChartValues, toCar
23
23
  export type { HotkeyEvent, HotkeyTarget } from "./command-menu/hotkey.js";
24
24
  export { isTypingTarget, matchesHotkey, shouldHandleHotkey, } from "./command-menu/hotkey.js";
25
25
  export type { RecentEntry } from "./command-menu/recents.js";
26
- export { recentsKey, rememberRecent } from "./command-menu/recents.js";
26
+ export { DEFAULT_RECENTS_LIMIT, DEFAULT_SEARCH_DEBOUNCE_MS, recentsKey, rememberRecent, } from "./command-menu/recents.js";
27
27
  export type { CommandAction, CommandRegistry, } from "./command-menu/registry.js";
28
28
  export { createCommandRegistry, getVisibleCommands, groupCommands, } from "./command-menu/registry.js";
29
- export type { CalendarLabels, CalendarRange, CalendarView, CalendarWeekStart, } from "./controller/calendar-dates.js";
30
- export { calendarDayKey, calendarDays, calendarLabels, calendarRange, parseCalendarDate, shiftCalendarAnchor, } from "./controller/calendar-dates.js";
29
+ export type { CalendarDaySlot, CalendarLabels, CalendarRange, CalendarView, CalendarWeekStart, } from "./controller/calendar-dates.js";
30
+ export { calendarDayKey, calendarDaySlot, calendarDays, calendarLabels, calendarRange, parseCalendarDate, shiftCalendarAnchor, } from "./controller/calendar-dates.js";
31
31
  export type { CalendarAgendaGroup, CalendarEvent, ToCalendarEventsOptions, } from "./controller/calendar-events.js";
32
32
  export { calendarEventsInHour, calendarEventsOnDay, calendarRangeFilter, groupCalendarAgenda, moveCalendarEvent, omitCalendarRangeFilter, staleCalendarRangeKeys, toCalendarEvents, } from "./controller/calendar-events.js";
33
33
  export type { ClientListController, ClientListControllerOptions, ClientListLoadingState, } from "./controller/client-list-controller.js";
@@ -40,13 +40,13 @@ export { nextInPlaceEditorState, planInPlaceSave, } from "./controller/in-place-
40
40
  export type { InfiniteListController, InfiniteListControllerState, } from "./controller/infinite-list-controller.js";
41
41
  export { createInfiniteListController } from "./controller/infinite-list-controller.js";
42
42
  export type { Inspector, InspectorPosition, InspectorSelection, InspectorState, InspectorViewport, } from "./controller/inspector.js";
43
- export { clampInspectorPosition, configurableInputColumns, createInspector, defaultConfigurableInputsStoreKey, inspectorPositionKey, } from "./controller/inspector.js";
43
+ export { clampInspectorPosition, configurableInputColumns, createInspector, defaultConfigurableInputsStoreKey, INSPECTOR_KEY_STEP, INSPECTOR_OPEN_LABEL, inspectorPositionKey, PANEL_WIDTH, } from "./controller/inspector.js";
44
44
  export type { JobActionOptions, JobActions, JobPlan, } from "./controller/job-monitor.js";
45
- export { DEFAULT_JOB_TABS, getJobActions, planJobCancel, planJobRetry, } from "./controller/job-monitor.js";
45
+ export { DEFAULT_JOB_TABS, getJobActions, jobStatusSource, planJobCancel, planJobRetry, } from "./controller/job-monitor.js";
46
46
  export type { KanbanBucket, KanbanColumnDef, KanbanMove, } from "./controller/kanban-board.js";
47
47
  export { buildKanbanBuckets, planKanbanMove, } from "./controller/kanban-board.js";
48
48
  export type { ListController, ListControllerContext, ListControllerOptions, ListControllerState, ListParamsPatch, } from "./controller/list-controller.js";
49
- export { createListController, listControllerActions, } from "./controller/list-controller.js";
49
+ export { createListController, DEFAULT_DEBOUNCE_MS, DEFAULT_PER_PAGE, listControllerActions, } from "./controller/list-controller.js";
50
50
  export type { ListParamsQuery, ListUrlState, } from "./controller/list-params.js";
51
51
  export { hasCustomParams, listPatchFromSearch, parseListParams, serializeListParams, serializeListState, } from "./controller/list-params.js";
52
52
  export type { PivotAggregator, PivotOptions, PivotTable, } from "./controller/pivot-grid.js";
@@ -64,14 +64,14 @@ export { buildRecordTree } from "./controller/record-tree.js";
64
64
  export type { AllowedTransitions, ApprovalOptions, ApprovalState, RejectionOptions, TransitionOptions, } from "./controller/record-workflow.js";
65
65
  export { buildApprovalUpdate, buildRejectionUpdate, getAllowedTransitions, getApprovalState, } from "./controller/record-workflow.js";
66
66
  export type { ReferenceManyController, ReferenceManyControllerOptions, } from "./controller/reference-many-controller.js";
67
- export { createReferenceManyController } from "./controller/reference-many-controller.js";
67
+ export { createReferenceManyController, DEFAULT_REFERENCE_PER_PAGE, } from "./controller/reference-many-controller.js";
68
68
  export type { ReferenceOneController, ReferenceOneControllerOptions, ReferenceOneControllerState, } from "./controller/reference-one-controller.js";
69
69
  export { createReferenceOneController } from "./controller/reference-one-controller.js";
70
70
  export type { SavedQueriesController, SavedQueriesControllerOptions, SavedQueriesState, SavedQuery, SavedQueryValue, } from "./controller/saved-queries.js";
71
71
  export { createSavedQueriesController, extractValidSavedQueries, isSavedQueryActive, savedQueriesKey, } from "./controller/saved-queries.js";
72
72
  export { resolveNotificationKey } from "./controller/translate-fallback.js";
73
73
  export { defaultExporter, downloadCSV, type Exporter, recordsToCSV, } from "./csv/export.js";
74
- export { createCsvImportController } from "./csv/import-controller.js";
74
+ export { createCsvImportController, PREVIEW_ROWS, REPLACEMENT_CHAR, } from "./csv/import-controller.js";
75
75
  export { matchCsvHeaders } from "./csv/match-headers.js";
76
76
  export { parseCsvWith } from "./csv/parse-with.js";
77
77
  export { csvErrorRows, runCsvImport } from "./csv/run-import.js";
@@ -105,8 +105,8 @@ export { createOfflineStore } from "./environment/offline-store.js";
105
105
  export type { ArrayBinding, ArrayBindingOptions, ArrayBindingUpdateOptions, ArrayItemOf, ArrayRow, ItemDefaultsOf, } from "./form/array-binding.js";
106
106
  export { createArrayBinding } from "./form/array-binding.js";
107
107
  export { toIdentifierList } from "./form/choice-ids.js";
108
- export type { ChoicesController, ChoicesControllerContext, ChoicesControllerOptions, ChoicesControllerState, } from "./form/choices-controller.js";
109
- export { createChoicesController } from "./form/choices-controller.js";
108
+ export type { ChoiceLists, ChoiceRecord, ChoicesController, ChoicesControllerContext, ChoicesControllerOptions, ChoicesControllerState, } from "./form/choices-controller.js";
109
+ export { choiceListsOf, createChoicesController, } from "./form/choices-controller.js";
110
110
  export { formatDate, formatDateTime, formatTime, isValidDate, isValidDateTime, isValidTime, parseDateTimeToISO, parseTimeToDate, } from "./form/date-format.js";
111
111
  export { getDirtyFormValues } from "./form/dirty-values.js";
112
112
  export type { ParsedDuration } from "./form/duration.js";
@@ -125,9 +125,9 @@ export { createFormHandle, isResourceHandle, toFormContextHandle, toResourceForm
125
125
  export type { CheloneFieldApi, CheloneFieldState, CheloneFieldStore, FieldBinding, FieldBindingOptions, FieldBindingUpdateOptions, FormattedValue, } from "./form/input-binding.js";
126
126
  export { createFieldBinding, defaultFormat, defaultParse, } from "./form/input-binding.js";
127
127
  export type { ChoiceValueOf, CurrencyComposite, DateInputValue, FileEntry, FileInputValue, FileSelection, FileWithPreview, FormValue, StoredFile, TransformedFile, WebhookValue, } from "./form/input-values.js";
128
- export { choiceIdOf, fileEntryKey, fileEntryPreview, isTransformedFile, resolveChoiceValue, toBooleanValue, toChoiceValue, toChoiceValues, toCurrencyComposite, toCurrencyValue, toDateInputValue, toFileEntries, toFileInputValue, toFileSelection, toNullableBooleanValue, toNumberValue, toTextList, toTextValue, toWebhookValue, } from "./form/input-values.js";
128
+ export { choiceIdOf, fileEntryImage, fileEntryKey, fileEntryPreview, isTransformedFile, resolveChoiceValue, toBooleanValue, toChoiceValue, toChoiceValues, toCurrencyComposite, toCurrencyValue, toDateInputValue, toFileEntries, toFileInputValue, toFileSelection, toNullableBooleanValue, toNumberValue, toTextList, toTextValue, toWebhookValue, } from "./form/input-values.js";
129
129
  export type { JsonShape } from "./form/json-text.js";
130
- export { detectJsonShape, formatJsonValue, fromJsonText, toJsonText, } from "./form/json-text.js";
130
+ export { detectJsonShape, ERROR_SEVERITY, formatJsonValue, fromJsonText, MARKERS_SETTLE_MS, MODEL_PREFIX, MONACO_DIAGNOSTICS_DELAY_MS, MONACO_MIN_HEIGHT, toJsonText, } from "./form/json-text.js";
131
131
  export { setFormValues } from "./form/set-form-values.js";
132
132
  export type { SourceScope } from "./form/source.js";
133
133
  export { composeSource, createArraySourceScope, createLocaleSourceScope, createRowSourceScope, rootSourceScope, } from "./form/source.js";
@@ -138,7 +138,7 @@ export { aspectLockedBBox, bboxToPolygon, polygonToBBox } from "./geo/bbox.js";
138
138
  export type { LngLatBox } from "./geo/bounds.js";
139
139
  export { geoBounds, isLngLatBox } from "./geo/bounds.js";
140
140
  export { countVertices, maxVertices, minAreaM2, minVertices, noSelfIntersection, } from "./geo/constraints.js";
141
- export { latitude, longitude, toCoordinate } from "./geo/coordinates.js";
141
+ export { LATITUDE_LIMIT, LONGITUDE_LIMIT, latitude, longitude, toCoordinate, wrapLongitude, } from "./geo/coordinates.js";
142
142
  export type { EditorFeature, EditorSnapshotFeature, EditorStyles, } from "./geo/editor.js";
143
143
  export { editorStyles, fromEditorFeatures, toEditorFeatures, } from "./geo/editor.js";
144
144
  export type { GeocodeQuery, GeocodeQueryOptions, GeocodeRequestOptions, GeocodeResult, GeocodeSearchOptions, GeocodingProvider, ReverseGeocodeQueryOptions, } from "./geo/geocoding.js";
@@ -149,7 +149,7 @@ export { areaInTypeOf, geoAreaM2, hasSelfIntersection, } from "./geo/geometry-ma
149
149
  export type { CircleLayerSpec, FillLayerSpec, LineLayerSpec, ShapeLayerSpec, ShapeStyle, } from "./geo/map-layers.js";
150
150
  export { asFeatureCollection, DEFAULT_SHAPE_STYLE, shapeLayerSpecs, } from "./geo/map-layers.js";
151
151
  export type { MapStyleInput, MapStyleSpec, RasterTileStyleOptions, } from "./geo/map-style.js";
152
- export { expandTileUrl, latLngToLngLat, lngLatToLatLng, rasterTileStyle, } from "./geo/map-style.js";
152
+ export { DEFAULT_FIT_PADDING, DEFAULT_MAP_HEIGHT, DEFAULT_MAP_ZOOM, DEFAULT_MAX_FIT_ZOOM, DEFAULT_PIN_COLOR, expandTileUrl, latLngToLngLat, lngLatToLatLng, PIN_NS, rasterTileStyle, } from "./geo/map-style.js";
153
153
  export { mapMessages } from "./geo/messages.js";
154
154
  export type { NominatimProviderOptions } from "./geo/nominatim.js";
155
155
  export { createNominatimProvider } from "./geo/nominatim.js";
@@ -164,7 +164,7 @@ export { featuresToShape, heldFeatures, shapeToFeatures, } from "./geo/shape-val
164
164
  export type { OsrmProviderOptions, RoutingProvider } from "./geo/snap-to-roads.js";
165
165
  export { createOsrmProvider } from "./geo/snap-to-roads.js";
166
166
  export type { JsonObject, JsonValue } from "./guards.js";
167
- export { isRecord, isThenable } from "./guards.js";
167
+ export { isHeadersInit, isRecord, isThenable } from "./guards.js";
168
168
  export { defaultMessages } from "./i18n/default-messages.js";
169
169
  export { englishMessages } from "./i18n/english-messages.js";
170
170
  export type { AnyCheloneI18n, CheloneI18n } from "./i18n/i18n.js";
@@ -173,7 +173,7 @@ export { humanize, humanizeField, pluralize } from "./i18n/inflection.js";
173
173
  export type { ExtractParams, MessageCatalog, MessageKey, MessageValue, PluralMessage, TranslateParams, TranslateParamValues, } from "./i18n/messages.js";
174
174
  export { definedParams, defineMessages, pickTranslateParamValues, } from "./i18n/messages.js";
175
175
  export type { MissingKeyEntry, MissingKeyStore, } from "./i18n/missing-keys.js";
176
- export { createMissingKeyStore } from "./i18n/missing-keys.js";
176
+ export { COPIED_MS, createMissingKeyStore, OWN_KEY_PREFIX, } from "./i18n/missing-keys.js";
177
177
  export type { RecordForLocale, TranslatableController, TranslatableOptions, TranslatableState, } from "./i18n/translatable.js";
178
178
  export { createTranslatableController, getRecordForLocale, } from "./i18n/translatable.js";
179
179
  export { deepEqual } from "./json/deep-equal.js";
@@ -183,7 +183,7 @@ export { errorMessageOf } from "./notification/error-message.js";
183
183
  export type { Notification, NotificationStore, NotifyOptions, } from "./notification/notification-store.js";
184
184
  export { createNotificationStore } from "./notification/notification-store.js";
185
185
  export type { PlaceTourCardOptions, TourCardPosition, TourPlacement, TourRect, } from "./onboarding-tour/placement.js";
186
- export { placeTourCard, tourSpotlightPath, } from "./onboarding-tour/placement.js";
186
+ export { placeTourCard, REMEASURE_MS, tourSpotlightPath, } from "./onboarding-tour/placement.js";
187
187
  export type { TourController, TourControllerOptions, TourEnd, TourState, } from "./onboarding-tour/tour-controller.js";
188
188
  export { createTourController, onboardingTourKey, } from "./onboarding-tour/tour-controller.js";
189
189
  export type { AddEventsForMutationsOptions } from "./realtime/add-events-for-mutations.js";
@@ -233,10 +233,10 @@ export type { AnySourcePath, AnySourcePathOf, FilterSourceKey, RowSourcePath, So
233
233
  export type { IsSafeImageSrcOptions, RichTextBlockType, RichTextHeadingLevel, RichTextToolbarGroup, RichTextToolbarItem, RichTextToolbarItemId, } from "./rich-text/rich-text.js";
234
234
  export { isSafeFileUrl, isSafeImageSrc, isSafeLinkUrl, richTextBlockTypes, richTextSanitizeOptions, richTextStarterKitOptions, richTextToolbarItems, } from "./rich-text/rich-text.js";
235
235
  export type { RichTextColor, RichTextColorPalette, RichTextExtraToolbarItem, RichTextExtraToolbarItemId, RichTextImageAction, RichTextImageActionId, RichTextImageRules, RichTextUpload, } from "./rich-text/rich-text-extras.js";
236
- export { checkRichTextImageFile, clampRichTextImageWidth, defaultRichTextImageRules, endColorOnEnter, normalizeRichTextUpload, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageFileName, richTextStyledSanitizeOptions, sanitizeRichTextStyle, } from "./rich-text/rich-text-extras.js";
236
+ export { checkRichTextImageFile, clampRichTextImageWidth, defaultRichTextImageRules, endColorOnEnter, MAX_IMAGE_BYTES, normalizeRichTextUpload, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageFileName, richTextStyledSanitizeOptions, sanitizeRichTextStyle, } from "./rich-text/rich-text-extras.js";
237
237
  export { copyRichTextImage, downloadRichTextImage, isRichTextImageConfigSource, prepareRichTextImages, type RichTextImageConfig, type RichTextImageError, type RichTextImageInput, type RichTextImageOptions, type RichTextStoredImage, type RichTextUploadResult, resolveRichTextImageConfig, richTextImageAttributes, richTextImageUploadState, sanitizeRichTextImageElement, setRichTextImageUploading, storeRichTextImageFile, } from "./rich-text/rich-text-image.js";
238
238
  export type { CheloneLocation, LocationState, NavigateOpts, } from "./router/location.js";
239
- export { parseLocation, toLocationState } from "./router/location.js";
239
+ export { NEXT_PATHNAME_KEY, parseLocation, toLocationState, } from "./router/location.js";
240
240
  export type { PathMatch } from "./router/match.js";
241
241
  export { matchPath } from "./router/match.js";
242
242
  export type { CreatePathParams, CreatePathType } from "./router/paths.js";
@@ -250,3 +250,4 @@ export { createMicroStore } from "./store/micro-store.js";
250
250
  export { shallowEqual } from "./store/shallow-equal.js";
251
251
  export type { CheloneStore, StoreAdapter } from "./store/store.js";
252
252
  export { createStore } from "./store/store.js";
253
+ export { DEFAULT_EXPORT_MAX_RESULTS, DEFAULT_THEME_STORAGE_KEY, DEVTOOLS_MAX_VALUE_LENGTH, MOBILE_BREAKPOINT, SEARCH_THRESHOLD, TITLE_PORTAL_ID, UNDO_AUTO_HIDE_MS, } from "./ui-defaults.js";
package/dist/index.js CHANGED
@@ -2,25 +2,25 @@ import { createAssistantSession } from "./assistant/assistant-session.js";
2
2
  import { echoAssistantTransport } from "./assistant/echo-transport.js";
3
3
  import { httpAssistantTransport } from "./assistant/http-transport.js";
4
4
  import { canAccessWithPermissions } from "./auth/access-control.js";
5
- import { authStateQueryOptions, canAccessQueryOptions, checkError, identityQueryOptions, permissionsQueryOptions } from "./auth/auth-options.js";
5
+ import { DEFAULT_LOGIN_PATH, authStateQueryOptions, canAccessQueryOptions, checkError, identityQueryOptions, permissionsQueryOptions } from "./auth/auth-options.js";
6
6
  import { getPermissionCell, isPermissionRowGranted, setPermissionRow, togglePermission } from "./auth/permission-matrix.js";
7
- import { createBlockRegistry, describeBlockAttrs, emptyBlockDocument, getBlockDefaultAttrs, isBlockDoc, isEmptyBlockDocument, matchBlocks, toEmbedSrc, unknownBlockType, unwrapUnknownBlocks, wrapUnknownBlocks } from "./block-editor/block-document.js";
7
+ import { GAP_PREFIX, HANDLE_ID, createBlockRegistry, describeBlockAttrs, emptyBlockDocument, getBlockDefaultAttrs, isBlockDoc, isEmptyBlockDocument, matchBlocks, toEmbedSrc, unknownBlockType, unwrapUnknownBlocks, wrapUnknownBlocks } from "./block-editor/block-document.js";
8
8
  import { aggregateChartData, chartBlockSpec, dataBlockNames, formatDataBlockValue, pickDataBlockFields, readDataBlockValue, recordListBlockSpec, referenceRecordBlockSpec } from "./block-editor/data-blocks.js";
9
9
  import { DEFAULT_CHART_COLORS, chartColor, getMetricDelta, hasChartValues, toCartesianRows, toDonutSlices } from "./chart/chart-data.js";
10
10
  import { isTypingTarget, matchesHotkey, shouldHandleHotkey } from "./command-menu/hotkey.js";
11
- import { recentsKey, rememberRecent } from "./command-menu/recents.js";
11
+ import { DEFAULT_RECENTS_LIMIT, DEFAULT_SEARCH_DEBOUNCE_MS, recentsKey, rememberRecent } from "./command-menu/recents.js";
12
12
  import { createCommandRegistry, getVisibleCommands, groupCommands } from "./command-menu/registry.js";
13
- import { calendarDayKey, calendarDays, calendarLabels, calendarRange, parseCalendarDate, shiftCalendarAnchor } from "./controller/calendar-dates.js";
13
+ import { calendarDayKey, calendarDaySlot, calendarDays, calendarLabels, calendarRange, parseCalendarDate, shiftCalendarAnchor } from "./controller/calendar-dates.js";
14
14
  import { calendarEventsInHour, calendarEventsOnDay, calendarRangeFilter, groupCalendarAgenda, moveCalendarEvent, omitCalendarRangeFilter, staleCalendarRangeKeys, toCalendarEvents } from "./controller/calendar-events.js";
15
15
  import { createClientListController } from "./controller/client-list-controller.js";
16
16
  import { arrangeColumns, columnLabelMatches, dataTableColumnKeys, defaultDataTableStoreKey, getDataTableColumnId, moveColumn, moveColumnTo, toggleHiddenColumn } from "./controller/data-table-columns.js";
17
17
  import { isFilterSelected, toggleFilterValue } from "./controller/filter-toggle.js";
18
18
  import { nextInPlaceEditorState, planInPlaceSave } from "./controller/in-place-editor.js";
19
19
  import { createInfiniteListController } from "./controller/infinite-list-controller.js";
20
- import { clampInspectorPosition, configurableInputColumns, createInspector, defaultConfigurableInputsStoreKey, inspectorPositionKey } from "./controller/inspector.js";
21
- import { DEFAULT_JOB_TABS, getJobActions, planJobCancel, planJobRetry } from "./controller/job-monitor.js";
20
+ import { INSPECTOR_KEY_STEP, INSPECTOR_OPEN_LABEL, PANEL_WIDTH, clampInspectorPosition, configurableInputColumns, createInspector, defaultConfigurableInputsStoreKey, inspectorPositionKey } from "./controller/inspector.js";
21
+ import { DEFAULT_JOB_TABS, getJobActions, jobStatusSource, planJobCancel, planJobRetry } from "./controller/job-monitor.js";
22
22
  import { buildKanbanBuckets, planKanbanMove } from "./controller/kanban-board.js";
23
- import { createListController, listControllerActions } from "./controller/list-controller.js";
23
+ import { DEFAULT_DEBOUNCE_MS, DEFAULT_PER_PAGE, createListController, listControllerActions } from "./controller/list-controller.js";
24
24
  import { hasCustomParams, listPatchFromSearch, parseListParams, serializeListParams, serializeListState } from "./controller/list-params.js";
25
25
  import { buildPivotTable, formatPivotValue } from "./controller/pivot-grid.js";
26
26
  import { canUseCachedPage, getPrevNextParams, resolvePrevNext } from "./controller/prev-next.js";
@@ -29,12 +29,12 @@ import { diffRecords, formatDiffValue } from "./controller/record-diff.js";
29
29
  import { formatRelativeTime, toTimelineEntries } from "./controller/record-timeline.js";
30
30
  import { buildRecordTree } from "./controller/record-tree.js";
31
31
  import { buildApprovalUpdate, buildRejectionUpdate, getAllowedTransitions, getApprovalState } from "./controller/record-workflow.js";
32
- import { createReferenceManyController } from "./controller/reference-many-controller.js";
32
+ import { DEFAULT_REFERENCE_PER_PAGE, createReferenceManyController } from "./controller/reference-many-controller.js";
33
33
  import { createReferenceOneController } from "./controller/reference-one-controller.js";
34
34
  import { createSavedQueriesController, extractValidSavedQueries, isSavedQueryActive, savedQueriesKey } from "./controller/saved-queries.js";
35
35
  import { resolveNotificationKey } from "./controller/translate-fallback.js";
36
36
  import { defaultExporter, downloadCSV, recordsToCSV } from "./csv/export.js";
37
- import { createCsvImportController } from "./csv/import-controller.js";
37
+ import { PREVIEW_ROWS, REPLACEMENT_CHAR, createCsvImportController } from "./csv/import-controller.js";
38
38
  import { matchCsvHeaders } from "./csv/match-headers.js";
39
39
  import { parseCsvWith } from "./csv/parse-with.js";
40
40
  import { csvErrorRows, runCsvImport } from "./csv/run-import.js";
@@ -57,7 +57,7 @@ import { createApplicationUpdateStore } from "./environment/application-update-s
57
57
  import { createOfflineStore } from "./environment/offline-store.js";
58
58
  import { createArrayBinding } from "./form/array-binding.js";
59
59
  import { toIdentifierList } from "./form/choice-ids.js";
60
- import { createChoicesController } from "./form/choices-controller.js";
60
+ import { choiceListsOf, createChoicesController } from "./form/choices-controller.js";
61
61
  import { formatDate, formatDateTime, formatTime, isValidDate, isValidDateTime, isValidTime, parseDateTimeToISO, parseTimeToDate } from "./form/date-format.js";
62
62
  import { getDirtyFormValues } from "./form/dirty-values.js";
63
63
  import { compactDuration, parseIsoDuration, relativeDuration } from "./form/duration.js";
@@ -69,8 +69,8 @@ import { createFormController, normalizeFormError } from "./form/form-controller
69
69
  import { createFormGroups, reduceGroupState } from "./form/form-groups.js";
70
70
  import { createFormHandle, isResourceHandle, toFormContextHandle, toResourceFormHandle } from "./form/form-handle.js";
71
71
  import { createFieldBinding, defaultFormat, defaultParse } from "./form/input-binding.js";
72
- import { choiceIdOf, fileEntryKey, fileEntryPreview, isTransformedFile, resolveChoiceValue, toBooleanValue, toChoiceValue, toChoiceValues, toCurrencyComposite, toCurrencyValue, toDateInputValue, toFileEntries, toFileInputValue, toFileSelection, toNullableBooleanValue, toNumberValue, toTextList, toTextValue, toWebhookValue } from "./form/input-values.js";
73
- import { detectJsonShape, formatJsonValue, fromJsonText, toJsonText } from "./form/json-text.js";
72
+ import { choiceIdOf, fileEntryImage, fileEntryKey, fileEntryPreview, isTransformedFile, resolveChoiceValue, toBooleanValue, toChoiceValue, toChoiceValues, toCurrencyComposite, toCurrencyValue, toDateInputValue, toFileEntries, toFileInputValue, toFileSelection, toNullableBooleanValue, toNumberValue, toTextList, toTextValue, toWebhookValue } from "./form/input-values.js";
73
+ import { ERROR_SEVERITY, MARKERS_SETTLE_MS, MODEL_PREFIX, MONACO_DIAGNOSTICS_DELAY_MS, MONACO_MIN_HEIGHT, detectJsonShape, formatJsonValue, fromJsonText, toJsonText } from "./form/json-text.js";
74
74
  import { setFormValues } from "./form/set-form-values.js";
75
75
  import { composeSource, createArraySourceScope, createLocaleSourceScope, createRowSourceScope, rootSourceScope } from "./form/source.js";
76
76
  import { textOf } from "./form/text-of.js";
@@ -78,13 +78,13 @@ import { choices, composeValidators, email, isEmpty, isRequired, maxLength, maxV
78
78
  import { aspectLockedBBox, bboxToPolygon, polygonToBBox } from "./geo/bbox.js";
79
79
  import { geoBounds, isLngLatBox } from "./geo/bounds.js";
80
80
  import { countVertices, maxVertices, minAreaM2, minVertices, noSelfIntersection } from "./geo/constraints.js";
81
- import { latitude, longitude, toCoordinate } from "./geo/coordinates.js";
81
+ import { LATITUDE_LIMIT, LONGITUDE_LIMIT, latitude, longitude, toCoordinate, wrapLongitude } from "./geo/coordinates.js";
82
82
  import { editorStyles, fromEditorFeatures, toEditorFeatures } from "./geo/editor.js";
83
83
  import { geocodeQueryOptions, reverseGeocodeQueryOptions } from "./geo/geocoding.js";
84
84
  import { isGeoArea, isGeoBBox, isGeoFeature, isGeoFeatureCollection, isGeoGeometry, isGeoJsonValue, placedFeatures } from "./geo/geojson.js";
85
85
  import { areaInTypeOf, geoAreaM2, hasSelfIntersection } from "./geo/geometry-math.js";
86
86
  import { DEFAULT_SHAPE_STYLE, asFeatureCollection, shapeLayerSpecs } from "./geo/map-layers.js";
87
- import { expandTileUrl, latLngToLngLat, lngLatToLatLng, rasterTileStyle } from "./geo/map-style.js";
87
+ import { DEFAULT_FIT_PADDING, DEFAULT_MAP_HEIGHT, DEFAULT_MAP_ZOOM, DEFAULT_MAX_FIT_ZOOM, DEFAULT_PIN_COLOR, PIN_NS, expandTileUrl, latLngToLngLat, lngLatToLatLng, rasterTileStyle } from "./geo/map-style.js";
88
88
  import { mapMessages } from "./geo/messages.js";
89
89
  import { createNominatimProvider } from "./geo/nominatim.js";
90
90
  import { OSM_PRESETS, buildOverpassQuery, findPresetForTags } from "./geo/osm-presets.js";
@@ -92,20 +92,20 @@ import { tagToFilter } from "./geo/osm-tags.js";
92
92
  import { OverpassError, OverpassRateLimitError, OverpassTimeoutError, createOverpassProvider, isOverpassAnswer, overpassQueryOptions } from "./geo/overpass.js";
93
93
  import { featuresToShape, heldFeatures, shapeToFeatures } from "./geo/shape-value.js";
94
94
  import { createOsrmProvider } from "./geo/snap-to-roads.js";
95
- import { isRecord, isThenable } from "./guards.js";
95
+ import { isHeadersInit, isRecord, isThenable } from "./guards.js";
96
96
  import { defaultMessages } from "./i18n/default-messages.js";
97
97
  import { englishMessages } from "./i18n/english-messages.js";
98
98
  import { createI18n } from "./i18n/i18n.js";
99
99
  import { humanize, humanizeField, pluralize } from "./i18n/inflection.js";
100
100
  import { defineMessages, definedParams, pickTranslateParamValues } from "./i18n/messages.js";
101
- import { createMissingKeyStore } from "./i18n/missing-keys.js";
101
+ import { COPIED_MS, OWN_KEY_PREFIX, createMissingKeyStore } from "./i18n/missing-keys.js";
102
102
  import { createTranslatableController, getRecordForLocale } from "./i18n/translatable.js";
103
103
  import { deepEqual } from "./json/deep-equal.js";
104
104
  import { stripJsonComments } from "./json/strip-json-comments.js";
105
105
  import { noop } from "./noop.js";
106
106
  import { errorMessageOf } from "./notification/error-message.js";
107
107
  import { createNotificationStore } from "./notification/notification-store.js";
108
- import { placeTourCard, tourSpotlightPath } from "./onboarding-tour/placement.js";
108
+ import { REMEASURE_MS, placeTourCard, tourSpotlightPath } from "./onboarding-tour/placement.js";
109
109
  import { createTourController, onboardingTourKey } from "./onboarding-tour/tour-controller.js";
110
110
  import { addEventsForMutations } from "./realtime/add-events-for-mutations.js";
111
111
  import { announceLock } from "./realtime/announce-lock.js";
@@ -131,9 +131,9 @@ import { isLooseRecord, isResourceRecord } from "./resource/record.js";
131
131
  import { defineResources } from "./resource/registry.js";
132
132
  import { computeDefinition, createResourceRegistry } from "./resource/registry-store.js";
133
133
  import { isSafeFileUrl, isSafeImageSrc, isSafeLinkUrl, richTextBlockTypes, richTextSanitizeOptions, richTextStarterKitOptions, richTextToolbarItems } from "./rich-text/rich-text.js";
134
- import { checkRichTextImageFile, clampRichTextImageWidth, defaultRichTextImageRules, endColorOnEnter, normalizeRichTextUpload, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageFileName, richTextStyledSanitizeOptions, sanitizeRichTextStyle } from "./rich-text/rich-text-extras.js";
134
+ import { MAX_IMAGE_BYTES, checkRichTextImageFile, clampRichTextImageWidth, defaultRichTextImageRules, endColorOnEnter, normalizeRichTextUpload, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageFileName, richTextStyledSanitizeOptions, sanitizeRichTextStyle } from "./rich-text/rich-text-extras.js";
135
135
  import { copyRichTextImage, downloadRichTextImage, isRichTextImageConfigSource, prepareRichTextImages, resolveRichTextImageConfig, richTextImageAttributes, richTextImageUploadState, sanitizeRichTextImageElement, setRichTextImageUploading, storeRichTextImageFile } from "./rich-text/rich-text-image.js";
136
- import { parseLocation, toLocationState } from "./router/location.js";
136
+ import { NEXT_PATHNAME_KEY, parseLocation, toLocationState } from "./router/location.js";
137
137
  import { matchPath } from "./router/match.js";
138
138
  import { createPath, joinBasename, removeDoubleSlashes } from "./router/paths.js";
139
139
  import { getRecordFromLocation } from "./router/record-from-location.js";
@@ -141,5 +141,6 @@ import { localStorageAdapter, memoryStoreAdapter } from "./store/adapters.js";
141
141
  import { createMicroStore } from "./store/micro-store.js";
142
142
  import { shallowEqual } from "./store/shallow-equal.js";
143
143
  import { createStore } from "./store/store.js";
144
+ import { DEFAULT_EXPORT_MAX_RESULTS, DEFAULT_THEME_STORAGE_KEY, DEVTOOLS_MAX_VALUE_LENGTH, MOBILE_BREAKPOINT, SEARCH_THRESHOLD, TITLE_PORTAL_ID, UNDO_AUTO_HIDE_MS } from "./ui-defaults.js";
144
145
  import { revalidateLogic } from "@tanstack/form-core";
145
- export { DEFAULT_CHART_COLORS, DEFAULT_JOB_TABS, DEFAULT_SHAPE_STYLE, HttpError, LockConflictError, OSM_PRESETS, OverpassError, OverpassRateLimitError, OverpassTimeoutError, ValidationError, addEventsForMutations, aggregateChartData, announceLock, applyCsvMapping, areaInTypeOf, arrangeColumns, asFeatureCollection, aspectLockedBBox, assertRealtimeDataProvider, authStateQueryOptions, bboxToPolygon, broadcastChannelTransport, buildApprovalUpdate, buildKanbanBuckets, buildOverpassQuery, buildPivotTable, buildRecordTree, buildRejectionUpdate, calendarDayKey, calendarDays, calendarEventsInHour, calendarEventsOnDay, calendarLabels, calendarRange, calendarRangeFilter, canAccessQueryOptions, canAccessWithPermissions, canUseCachedPage, chartBlockSpec, chartColor, checkError, checkRichTextImageFile, choiceIdOf, choices, clampInspectorPosition, clampRichTextImageWidth, clearUnread, columnLabelMatches, combineDataProviders, commitAllUndoables, compactDuration, composeSource, composeValidators, computeDefinition, configurableInputColumns, copyRichTextImage, countVertices, createApplicationUpdateStore, createArrayBinding, createArraySourceScope, createAssistantSession, createBlockRegistry, createChoicesController, createClientListController, createCommandRegistry, createCreateController, createCreateFormController, createCsvImportController, createDataProviderLog, createDeleteController, createEditController, createEditFormController, createFieldBinding, createFormController, createFormGroups, createFormHandle, createI18n, createInfiniteListController, createInspector, createListController, createLocaleSourceScope, createLockSession, createMicroStore, createMissingKeyStore, createMutationOptions, createNominatimProvider, createNotificationStore, createOfflineStore, createOsrmProvider, createOverpassProvider, createPath, createPresenceSession, createRealtimeStatusStore, createReferenceManyController, createReferenceOneController, createResourceRegistry, createRowSourceScope, createSavedQueriesController, createShowController, createStore, createTopicHub, createTourController, createTranslatableController, csvErrorRows, csvSchemaFields, dataBlockNames, dataTableColumnKeys, deepEqual, defaultConfigurableInputsStoreKey, defaultDataTableStoreKey, defaultExporter, defaultFormat, defaultMessages, defaultParse, defaultRichTextImageRules, defineMessages, defineResources, definedParams, deleteMutationOptions, describeBlockAttrs, describeResource, detectJsonShape, diffRecords, downloadCSV, downloadRichTextImage, echoAssistantTransport, editorStyles, email, emptyBlockDocument, endColorOnEnter, englishMessages, errorMessageOf, expandTileUrl, extractEventValue, extractValidSavedQueries, fakeDataProvider, featuresToShape, fetchUtils, fileEntryKey, fileEntryPreview, filterFormReflectShape, findPresetForTags, firstFieldError, formatDataBlockValue, formatDate, formatDateTime, formatDiffValue, formatJsonValue, formatPivotValue, formatRelativeTime, formatTime, fromEditorFeatures, fromJsonText, geoAreaM2, geoBounds, geocodeQueryOptions, getAllowedTransitions, getApprovalState, getAtPath, getBlockDefaultAttrs, getDataTableColumnId, getDirtyFormValues, getFilterFormValues, getInfiniteListOptions, getJobActions, getListOptions, getLockOptions, getLocksOptions, getManyAggregateOptions, getManyOptions, getManyReferenceOptions, getMetricDelta, getOneOptions, getPermissionCell, getPresenceInitials, getPrevNextParams, getRecordForLocale, getRecordFromLocation, getVisibleCommands, groupCalendarAgenda, groupCommands, hasChartValues, hasCustomParams, hasPendingUndoables, hasSelfIntersection, hasTransportMembers, heldFeatures, httpAssistantTransport, humanize, humanizeField, identifiersOf, identityQueryOptions, inMemoryLockProvider, infiniteListKey, inspectorPositionKey, isBlockDoc, isEmpty, isEmptyBlockDocument, isFilterBranch, isFilterSelected, isGeoArea, isGeoBBox, isGeoFeature, isGeoFeatureCollection, isGeoGeometry, isGeoJsonValue, isIdentifier, isIdentifierArray, isLngLatBox, isLooseRecord, isOverpassAnswer, isPermissionRowGranted, isRealtimeDataProvider, isRecord, isRequired, isResourceHandle, isResourceRecord, isRichTextImageConfigSource, isSafeFileUrl, isSafeImageSrc, isSafeLinkUrl, isSavedQueryActive, isThenable, isTransformedFile, isTypingTarget, isValidDate, isValidDateTime, isValidTime, joinBasename, latLngToLngLat, latitude, listControllerActions, listKey, listPatchFromSearch, lngLatToLatLng, localStorageAdapter, lockKey, lockResourceTopic, lockTopic, locksKey, longitude, manyKey, manyReferenceKey, mapMessages, matchBlocks, matchCsvHeaders, matchPath, matchesHotkey, maxLength, maxValue, maxVertices, memoryStoreAdapter, memoryTransport, mergeFilterValues, minAreaM2, minLength, minValue, minVertices, moveCalendarEvent, moveColumn, moveColumnTo, nextInPlaceEditorState, noSelfIntersection, noop, normalizeFormError, normalizeRichTextUpload, number, omitCalendarRangeFilter, onboardingTourKey, oneKey, overpassQueryOptions, parseCalendarDate, parseCsvWith, parseDateTimeToISO, parseIsoDuration, parseListParams, parseLocation, parseTimeToDate, patchedRecord, permissionsQueryOptions, pickDataBlockFields, pickTranslateParamValues, placeTourCard, placedFeatures, planInPlaceSave, planJobCancel, planJobRetry, planKanbanMove, pluralize, polygonToBBox, prepareRichTextImages, presenceTopic, rasterTileStyle, readDataBlockValue, realtimeDataProvider, recentsKey, recordListBlockSpec, recordTopic, recordsToCSV, reduceGroupState, referenceRecordBlockSpec, regex, relativeDuration, rememberRecent, removeDoubleSlashes, removeRecordsFromCache, required, resolveChoiceValue, resolveLockIdentity, resolveNotificationKey, resolvePrevNext, resolveRichTextImageConfig, resourceKey, resourceTopic, revalidateLogic, reverseGeocodeQueryOptions, richTextBlockTypes, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageAttributes, richTextImageFileName, richTextImageUploadState, richTextSanitizeOptions, richTextStarterKitOptions, richTextStyledSanitizeOptions, richTextToolbarItems, rootSourceScope, runCsvImport, sanitizeRichTextImageElement, sanitizeRichTextStyle, savedQueriesKey, serializeListParams, serializeListState, setFormValues, setPermissionRow, setRichTextImageUploading, shallowEqual, shapeLayerSpecs, shapeToFeatures, shiftCalendarAnchor, shouldHandleHotkey, sseTransport, staleCalendarRangeKeys, startUndoableMutation, storeRichTextImageFile, stripJsonComments, subscribeLiveLock, subscribeLiveLocks, subscribeLiveRecord, subscribeLiveRecords, subscribeLiveResource, subscribeUnreadCount, tagToFilter, textOf, toBooleanValue, toCalendarEvents, toCartesianRows, toChoiceValue, toChoiceValues, toCoordinate, toCurrencyComposite, toCurrencyValue, toDateInputValue, toDonutSlices, toEditorFeatures, toEmbedSrc, toFileEntries, toFileInputValue, toFileSelection, toFormContextHandle, toIdentifierList, toJsonText, toLocationState, toNullableBooleanValue, toNumberValue, toPresenceUser, toResourceFormHandle, toTextList, toTextValue, toTimelineEntries, toWebhookValue, toggleFilterValue, toggleHiddenColumn, togglePermission, tourSpotlightPath, undoableCallbacks, undoableDeleteOptions, undoableUpdateOptions, unknownBlockType, unreadKey, unwrapUnknownBlocks, updateMutationOptions, updateRecordsInCache, validateCsvRows, webSocketTransport, withLifecycleCallbacks, wrapUnknownBlocks };
146
+ export { COPIED_MS, DEFAULT_CHART_COLORS, DEFAULT_DEBOUNCE_MS, DEFAULT_EXPORT_MAX_RESULTS, DEFAULT_FIT_PADDING, DEFAULT_JOB_TABS, DEFAULT_LOGIN_PATH, DEFAULT_MAP_HEIGHT, DEFAULT_MAP_ZOOM, DEFAULT_MAX_FIT_ZOOM, DEFAULT_PER_PAGE, DEFAULT_PIN_COLOR, DEFAULT_RECENTS_LIMIT, DEFAULT_REFERENCE_PER_PAGE, DEFAULT_SEARCH_DEBOUNCE_MS, DEFAULT_SHAPE_STYLE, DEFAULT_THEME_STORAGE_KEY, DEVTOOLS_MAX_VALUE_LENGTH, ERROR_SEVERITY, GAP_PREFIX, HANDLE_ID, HttpError, INSPECTOR_KEY_STEP, INSPECTOR_OPEN_LABEL, LATITUDE_LIMIT, LONGITUDE_LIMIT, LockConflictError, MARKERS_SETTLE_MS, MAX_IMAGE_BYTES, MOBILE_BREAKPOINT, MODEL_PREFIX, MONACO_DIAGNOSTICS_DELAY_MS, MONACO_MIN_HEIGHT, NEXT_PATHNAME_KEY, OSM_PRESETS, OWN_KEY_PREFIX, OverpassError, OverpassRateLimitError, OverpassTimeoutError, PANEL_WIDTH, PIN_NS, PREVIEW_ROWS, REMEASURE_MS, REPLACEMENT_CHAR, SEARCH_THRESHOLD, TITLE_PORTAL_ID, UNDO_AUTO_HIDE_MS, ValidationError, addEventsForMutations, aggregateChartData, announceLock, applyCsvMapping, areaInTypeOf, arrangeColumns, asFeatureCollection, aspectLockedBBox, assertRealtimeDataProvider, authStateQueryOptions, bboxToPolygon, broadcastChannelTransport, buildApprovalUpdate, buildKanbanBuckets, buildOverpassQuery, buildPivotTable, buildRecordTree, buildRejectionUpdate, calendarDayKey, calendarDaySlot, calendarDays, calendarEventsInHour, calendarEventsOnDay, calendarLabels, calendarRange, calendarRangeFilter, canAccessQueryOptions, canAccessWithPermissions, canUseCachedPage, chartBlockSpec, chartColor, checkError, checkRichTextImageFile, choiceIdOf, choiceListsOf, choices, clampInspectorPosition, clampRichTextImageWidth, clearUnread, columnLabelMatches, combineDataProviders, commitAllUndoables, compactDuration, composeSource, composeValidators, computeDefinition, configurableInputColumns, copyRichTextImage, countVertices, createApplicationUpdateStore, createArrayBinding, createArraySourceScope, createAssistantSession, createBlockRegistry, createChoicesController, createClientListController, createCommandRegistry, createCreateController, createCreateFormController, createCsvImportController, createDataProviderLog, createDeleteController, createEditController, createEditFormController, createFieldBinding, createFormController, createFormGroups, createFormHandle, createI18n, createInfiniteListController, createInspector, createListController, createLocaleSourceScope, createLockSession, createMicroStore, createMissingKeyStore, createMutationOptions, createNominatimProvider, createNotificationStore, createOfflineStore, createOsrmProvider, createOverpassProvider, createPath, createPresenceSession, createRealtimeStatusStore, createReferenceManyController, createReferenceOneController, createResourceRegistry, createRowSourceScope, createSavedQueriesController, createShowController, createStore, createTopicHub, createTourController, createTranslatableController, csvErrorRows, csvSchemaFields, dataBlockNames, dataTableColumnKeys, deepEqual, defaultConfigurableInputsStoreKey, defaultDataTableStoreKey, defaultExporter, defaultFormat, defaultMessages, defaultParse, defaultRichTextImageRules, defineMessages, defineResources, definedParams, deleteMutationOptions, describeBlockAttrs, describeResource, detectJsonShape, diffRecords, downloadCSV, downloadRichTextImage, echoAssistantTransport, editorStyles, email, emptyBlockDocument, endColorOnEnter, englishMessages, errorMessageOf, expandTileUrl, extractEventValue, extractValidSavedQueries, fakeDataProvider, featuresToShape, fetchUtils, fileEntryImage, fileEntryKey, fileEntryPreview, filterFormReflectShape, findPresetForTags, firstFieldError, formatDataBlockValue, formatDate, formatDateTime, formatDiffValue, formatJsonValue, formatPivotValue, formatRelativeTime, formatTime, fromEditorFeatures, fromJsonText, geoAreaM2, geoBounds, geocodeQueryOptions, getAllowedTransitions, getApprovalState, getAtPath, getBlockDefaultAttrs, getDataTableColumnId, getDirtyFormValues, getFilterFormValues, getInfiniteListOptions, getJobActions, getListOptions, getLockOptions, getLocksOptions, getManyAggregateOptions, getManyOptions, getManyReferenceOptions, getMetricDelta, getOneOptions, getPermissionCell, getPresenceInitials, getPrevNextParams, getRecordForLocale, getRecordFromLocation, getVisibleCommands, groupCalendarAgenda, groupCommands, hasChartValues, hasCustomParams, hasPendingUndoables, hasSelfIntersection, hasTransportMembers, heldFeatures, httpAssistantTransport, humanize, humanizeField, identifiersOf, identityQueryOptions, inMemoryLockProvider, infiniteListKey, inspectorPositionKey, isBlockDoc, isEmpty, isEmptyBlockDocument, isFilterBranch, isFilterSelected, isGeoArea, isGeoBBox, isGeoFeature, isGeoFeatureCollection, isGeoGeometry, isGeoJsonValue, isHeadersInit, isIdentifier, isIdentifierArray, isLngLatBox, isLooseRecord, isOverpassAnswer, isPermissionRowGranted, isRealtimeDataProvider, isRecord, isRequired, isResourceHandle, isResourceRecord, isRichTextImageConfigSource, isSafeFileUrl, isSafeImageSrc, isSafeLinkUrl, isSavedQueryActive, isThenable, isTransformedFile, isTypingTarget, isValidDate, isValidDateTime, isValidTime, jobStatusSource, joinBasename, latLngToLngLat, latitude, listControllerActions, listKey, listPatchFromSearch, lngLatToLatLng, localStorageAdapter, lockKey, lockResourceTopic, lockTopic, locksKey, longitude, manyKey, manyReferenceKey, mapMessages, matchBlocks, matchCsvHeaders, matchPath, matchesHotkey, maxLength, maxValue, maxVertices, memoryStoreAdapter, memoryTransport, mergeFilterValues, minAreaM2, minLength, minValue, minVertices, moveCalendarEvent, moveColumn, moveColumnTo, nextInPlaceEditorState, noSelfIntersection, noop, normalizeFormError, normalizeRichTextUpload, number, omitCalendarRangeFilter, onboardingTourKey, oneKey, overpassQueryOptions, parseCalendarDate, parseCsvWith, parseDateTimeToISO, parseIsoDuration, parseListParams, parseLocation, parseTimeToDate, patchedRecord, permissionsQueryOptions, pickDataBlockFields, pickTranslateParamValues, placeTourCard, placedFeatures, planInPlaceSave, planJobCancel, planJobRetry, planKanbanMove, pluralize, polygonToBBox, prepareRichTextImages, presenceTopic, rasterTileStyle, readDataBlockValue, realtimeDataProvider, recentsKey, recordListBlockSpec, recordTopic, recordsToCSV, reduceGroupState, referenceRecordBlockSpec, regex, relativeDuration, rememberRecent, removeDoubleSlashes, removeRecordsFromCache, required, resolveChoiceValue, resolveLockIdentity, resolveNotificationKey, resolvePrevNext, resolveRichTextImageConfig, resourceKey, resourceTopic, revalidateLogic, reverseGeocodeQueryOptions, richTextBlockTypes, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageAttributes, richTextImageFileName, richTextImageUploadState, richTextSanitizeOptions, richTextStarterKitOptions, richTextStyledSanitizeOptions, richTextToolbarItems, rootSourceScope, runCsvImport, sanitizeRichTextImageElement, sanitizeRichTextStyle, savedQueriesKey, serializeListParams, serializeListState, setFormValues, setPermissionRow, setRichTextImageUploading, shallowEqual, shapeLayerSpecs, shapeToFeatures, shiftCalendarAnchor, shouldHandleHotkey, sseTransport, staleCalendarRangeKeys, startUndoableMutation, storeRichTextImageFile, stripJsonComments, subscribeLiveLock, subscribeLiveLocks, subscribeLiveRecord, subscribeLiveRecords, subscribeLiveResource, subscribeUnreadCount, tagToFilter, textOf, toBooleanValue, toCalendarEvents, toCartesianRows, toChoiceValue, toChoiceValues, toCoordinate, toCurrencyComposite, toCurrencyValue, toDateInputValue, toDonutSlices, toEditorFeatures, toEmbedSrc, toFileEntries, toFileInputValue, toFileSelection, toFormContextHandle, toIdentifierList, toJsonText, toLocationState, toNullableBooleanValue, toNumberValue, toPresenceUser, toResourceFormHandle, toTextList, toTextValue, toTimelineEntries, toWebhookValue, toggleFilterValue, toggleHiddenColumn, togglePermission, tourSpotlightPath, undoableCallbacks, undoableDeleteOptions, undoableUpdateOptions, unknownBlockType, unreadKey, unwrapUnknownBlocks, updateMutationOptions, updateRecordsInCache, validateCsvRows, webSocketTransport, withLifecycleCallbacks, wrapLongitude, wrapUnknownBlocks };
@@ -1,3 +1,5 @@
1
+ /** How often an open tour re-measures its target and card, in milliseconds. */
2
+ export declare const REMEASURE_MS = 250;
1
3
  /** A box in viewport pixels. The adapters measure it; core touches no DOM. */
2
4
  export interface TourRect {
3
5
  top: number;
@@ -1,4 +1,6 @@
1
1
  // src/onboarding-tour/placement.ts
2
+ /** How often an open tour re-measures its target and card, in milliseconds. */
3
+ var REMEASURE_MS = 250;
2
4
  var SIDES = [
3
5
  "bottom",
4
6
  "top",
@@ -64,4 +66,4 @@ function tourSpotlightPath(target) {
64
66
  const bottom = target.top + target.height;
65
67
  return `polygon(0% 0%, 0% 100%, ${target.left}px 100%, ${target.left}px ${target.top}px, ${right}px ${target.top}px, ${right}px ${bottom}px, ${target.left}px ${bottom}px, ${target.left}px 100%, 100% 100%, 100% 0%)`;
66
68
  }
67
- export { placeTourCard, tourSpotlightPath };
69
+ export { REMEASURE_MS, placeTourCard, tourSpotlightPath };
@@ -1,5 +1,14 @@
1
+ import { isRecord } from "../guards.js";
1
2
  // src/resource/describe-resource.ts
2
- var bagOf = (value) => typeof value === "object" && value !== null ? value : void 0;
3
+ var bagOf = (value) => isRecord(value) ? value : void 0;
4
+ /** A Zod 3 enum's `values`: the declared strings, in declaration order. */
5
+ var isStringArray = (value) => Array.isArray(value) && value.every((item) => typeof item === "string");
6
+ /** A native enum's `values` or a Zod 4 enum's `entries`: each key to its value. */
7
+ var isEnumEntries = (value) => isRecord(value) && Object.values(value).every((item) => typeof item === "string" || typeof item === "number");
8
+ /** A union's `options`, or a Zod 4 literal's `values`. */
9
+ var isUnknownArray = (value) => Array.isArray(value);
10
+ /** A Zod 3 object's `shape` is a function over its keys, not the keys themselves. */
11
+ var isShapeFunction = (value) => typeof value === "function";
3
12
  var stripZod = (typeName) => typeName.replace(/^Zod/, "").toLowerCase();
4
13
  var formatsOf = (checks, format) => {
5
14
  const formats = /* @__PURE__ */ new Set();
@@ -35,14 +44,14 @@ function readZod3(def) {
35
44
  node.inner = def.in;
36
45
  break;
37
46
  case "ZodEnum":
38
- node.entries = Object.fromEntries(def.values.map((value) => [value, value]));
47
+ if (isStringArray(def.values)) node.entries = Object.fromEntries(def.values.map((value) => [value, value]));
39
48
  break;
40
49
  case "ZodNativeEnum":
41
50
  node.type = "enum";
42
- node.entries = def.values;
51
+ if (isEnumEntries(def.values)) node.entries = def.values;
43
52
  break;
44
53
  case "ZodUnion":
45
- node.options = def.options;
54
+ if (isUnknownArray(def.options)) node.options = def.options;
46
55
  break;
47
56
  case "ZodLiteral":
48
57
  node.value = def.value;
@@ -50,7 +59,11 @@ function readZod3(def) {
50
59
  case "ZodArray":
51
60
  node.element = def.type;
52
61
  break;
53
- case "ZodObject": if (typeof def.shape === "function") node.shape = def.shape();
62
+ case "ZodObject": {
63
+ const shape = isShapeFunction(def.shape) ? def.shape() : void 0;
64
+ if (isRecord(shape)) node.shape = shape;
65
+ break;
66
+ }
54
67
  }
55
68
  return node;
56
69
  }
@@ -74,19 +87,21 @@ function readZod4(def) {
74
87
  node.inner = bagOf(bagOf(bagOf(def.in)?._zod)?.def)?.type === "transform" ? def.out : def.in;
75
88
  break;
76
89
  case "enum":
77
- node.entries = def.entries;
90
+ if (isEnumEntries(def.entries)) node.entries = def.entries;
78
91
  break;
79
92
  case "union":
80
- node.options = def.options;
93
+ if (isUnknownArray(def.options)) node.options = def.options;
81
94
  break;
82
- case "literal":
83
- node.value = def.values?.[0];
84
- if (def.values?.length !== 1) node.type = "literals";
95
+ case "literal": {
96
+ const values = isUnknownArray(def.values) ? def.values : void 0;
97
+ node.value = values?.[0];
98
+ if (values?.length !== 1) node.type = "literals";
85
99
  break;
100
+ }
86
101
  case "array":
87
102
  node.element = def.element;
88
103
  break;
89
- case "object": node.shape = def.shape;
104
+ case "object": if (isRecord(def.shape)) node.shape = def.shape;
90
105
  }
91
106
  return node;
92
107
  }
@@ -79,8 +79,14 @@ export type SourceTransformValue<TRecord, TPath extends string> = [
79
79
  /**
80
80
  * The top-level keys of `TRecord`, for props that read or write one flat key
81
81
  * (a filter's field, a reference's target). `string` for a loose record.
82
+ *
83
+ * The guard is {@link SourceProp}'s, not the `unknown extends` the other path
84
+ * types use: `keyof TRecord` of an unresolved type parameter resolves to the
85
+ * keys of its constraint, and every shared record type is now bounded by
86
+ * `ResourceRecord`, whose only key is `id`. A generic field's sibling prop
87
+ * (`limitSource`) would then take `"id"` and nothing else.
82
88
  */
83
- export type SourceKey<TRecord> = unknown extends TRecord ? string : keyof TRecord & string;
89
+ export type SourceKey<TRecord> = LooseRecord extends TRecord ? string : keyof TRecord & string;
84
90
  /**
85
91
  * The paths *relative to an array item* of every array in `TRecord`: `sku` is
86
92
  * one for a record with `items: { sku: string }[]`.
@@ -1,4 +1,6 @@
1
1
  import { type RichTextToolbarGroup } from "./rich-text.js";
2
+ /** The image size every Chelone editor offers: 5 MB. */
3
+ export declare const MAX_IMAGE_BYTES: number;
2
4
  export interface RichTextImageRules {
3
5
  /** Exact types, or `type/*` for any subtype. SVG never passes. */
4
6
  allowedMimeTypes: readonly string[];
@@ -1,10 +1,12 @@
1
1
  import { isSafeImageSrc, richTextSanitizeOptions } from "./rich-text.js";
2
2
  // src/rich-text/rich-text-extras.ts
3
3
  var CONTROL = /[\u0000-\u001f\u007f]/g;
4
+ /** The image size every Chelone editor offers: 5 MB. */
5
+ var MAX_IMAGE_BYTES = 5242880;
4
6
  /** shadmin's image settings: any image, 5 MB, base64 allowed. */
5
7
  var defaultRichTextImageRules = Object.freeze({
6
8
  allowedMimeTypes: Object.freeze(["image/*"]),
7
- maxFileSize: 5242880,
9
+ maxFileSize: MAX_IMAGE_BYTES,
8
10
  allowBase64: true
9
11
  });
10
12
  /** The `type/subtype` of a MIME type, lowercased, without parameters such as `;charset=utf-8`. */
@@ -176,4 +178,4 @@ function endColorOnEnter() {
176
178
  }
177
179
  };
178
180
  }
179
- export { checkRichTextImageFile, clampRichTextImageWidth, defaultRichTextImageRules, endColorOnEnter, normalizeRichTextUpload, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageFileName, richTextStyledSanitizeOptions, sanitizeRichTextStyle };
181
+ export { MAX_IMAGE_BYTES, checkRichTextImageFile, clampRichTextImageWidth, defaultRichTextImageRules, endColorOnEnter, normalizeRichTextUpload, richTextCodeBlockOptions, richTextColors, richTextExtraToolbarItems, richTextImageActions, richTextImageFileName, richTextStyledSanitizeOptions, sanitizeRichTextStyle };
@@ -5,6 +5,8 @@
5
5
  * (`/posts?page=2#top`) so it works identically in a loader, in node, and in the
6
6
  * browser. Adapters map their host location onto `CheloneLocation`.
7
7
  */
8
+ /** The Store key the login flow stashes the post-login target under. */
9
+ export declare const NEXT_PATHNAME_KEY = "nextPathname";
8
10
  /**
9
11
  * What Chelone writes into history state. An interface, so an app adds its own
10
12
  * keys by augmenting `@chelone/core`.
@@ -7,6 +7,8 @@ import { isRecord } from "../guards.js";
7
7
  * (`/posts?page=2#top`) so it works identically in a loader, in node, and in the
8
8
  * browser. Adapters map their host location onto `CheloneLocation`.
9
9
  */
10
+ /** The Store key the login flow stashes the post-login target under. */
11
+ var NEXT_PATHNAME_KEY = "nextPathname";
10
12
  /**
11
13
  * Read browser history state, which is untyped input, as a `LocationState`.
12
14
  * `null` for anything that is not an object or whose known keys have the wrong
@@ -40,4 +42,4 @@ function parseLocation(to, state = null, key) {
40
42
  key
41
43
  };
42
44
  }
43
- export { parseLocation, toLocationState };
45
+ export { NEXT_PATHNAME_KEY, parseLocation, toLocationState };
@@ -0,0 +1,15 @@
1
+ /** Defaults both adapters' components share. They have no module of their own. */
2
+ /** Past this many columns the columns panel gets a search box. */
3
+ export declare const SEARCH_THRESHOLD = 5;
4
+ /** The longest params or result JSON the data provider devtools show for one call. */
5
+ export declare const DEVTOOLS_MAX_VALUE_LENGTH = 2000;
6
+ /** The store key the theme mode is persisted under when `storageKey` is not set. */
7
+ export declare const DEFAULT_THEME_STORAGE_KEY = "chelone-theme";
8
+ /** The DOM id of the app-bar title portal target. */
9
+ export declare const TITLE_PORTAL_ID = "chelone-title-portal";
10
+ /** How long an undoable notification stays before it commits, in milliseconds. */
11
+ export declare const UNDO_AUTO_HIDE_MS = 5000;
12
+ /** Max rows an export fetches when `maxResults` is not set. */
13
+ export declare const DEFAULT_EXPORT_MAX_RESULTS = 1000;
14
+ /** Viewports narrower than this, in pixels, count as mobile. */
15
+ export declare const MOBILE_BREAKPOINT = 768;
@@ -0,0 +1,17 @@
1
+ // src/ui-defaults.ts
2
+ /** Defaults both adapters' components share. They have no module of their own. */
3
+ /** Past this many columns the columns panel gets a search box. */
4
+ var SEARCH_THRESHOLD = 5;
5
+ /** The longest params or result JSON the data provider devtools show for one call. */
6
+ var DEVTOOLS_MAX_VALUE_LENGTH = 2e3;
7
+ /** The store key the theme mode is persisted under when `storageKey` is not set. */
8
+ var DEFAULT_THEME_STORAGE_KEY = "chelone-theme";
9
+ /** The DOM id of the app-bar title portal target. */
10
+ var TITLE_PORTAL_ID = "chelone-title-portal";
11
+ /** How long an undoable notification stays before it commits, in milliseconds. */
12
+ var UNDO_AUTO_HIDE_MS = 5e3;
13
+ /** Max rows an export fetches when `maxResults` is not set. */
14
+ var DEFAULT_EXPORT_MAX_RESULTS = 1e3;
15
+ /** Viewports narrower than this, in pixels, count as mobile. */
16
+ var MOBILE_BREAKPOINT = 768;
17
+ export { DEFAULT_EXPORT_MAX_RESULTS, DEFAULT_THEME_STORAGE_KEY, DEVTOOLS_MAX_VALUE_LENGTH, MOBILE_BREAKPOINT, SEARCH_THRESHOLD, TITLE_PORTAL_ID, UNDO_AUTO_HIDE_MS };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chelone/core",
3
- "version": "0.7.0",
3
+ "version": "0.10.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",