@burojs/ui-shadcn 0.7.0 → 0.8.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 (100) hide show
  1. package/dist/{bulk-summary-CrEij5vq.cjs → bulk-summary-2HLgz7Il.cjs} +31 -5
  2. package/dist/bulk-summary-2HLgz7Il.cjs.map +1 -0
  3. package/dist/{bulk-summary-BWSAS7k2.js → bulk-summary-D6A0ua21.js} +32 -6
  4. package/dist/bulk-summary-D6A0ua21.js.map +1 -0
  5. package/dist/{candidates-relation-picker-y5M6_oe4.cjs → candidates-relation-picker-C47mF260.cjs} +3 -3
  6. package/dist/{candidates-relation-picker-y5M6_oe4.cjs.map → candidates-relation-picker-C47mF260.cjs.map} +1 -1
  7. package/dist/{candidates-relation-picker-CS_JZ4Fd.js → candidates-relation-picker-CGXItMN0.js} +3 -3
  8. package/dist/{candidates-relation-picker-CS_JZ4Fd.js.map → candidates-relation-picker-CGXItMN0.js.map} +1 -1
  9. package/dist/{check-confirm-dialog-C-NHgMST.cjs → check-confirm-dialog-BT04Mieo.cjs} +13 -6
  10. package/dist/check-confirm-dialog-BT04Mieo.cjs.map +1 -0
  11. package/dist/{check-confirm-dialog-2j0gOd7x.js → check-confirm-dialog-CtiRzOAt.js} +14 -7
  12. package/dist/{check-confirm-dialog-2j0gOd7x.js.map → check-confirm-dialog-CtiRzOAt.js.map} +1 -1
  13. package/dist/{filter-builder-DFu0JP-1.cjs → filter-builder-ByGhxLf_.cjs} +127 -63
  14. package/dist/filter-builder-ByGhxLf_.cjs.map +1 -0
  15. package/dist/{filter-builder-DaWHUZuV.js → filter-builder-z3Axzf9Y.js} +114 -56
  16. package/dist/filter-builder-z3Axzf9Y.js.map +1 -0
  17. package/dist/{flow-runtime-BpmrIUb6.cjs → flow-runtime-BVFjMU5-.cjs} +6 -3
  18. package/dist/{flow-runtime-BpmrIUb6.cjs.map → flow-runtime-BVFjMU5-.cjs.map} +1 -1
  19. package/dist/{flow-runtime-DyqTmK3H.js → flow-runtime-DrUWyTS0.js} +6 -3
  20. package/dist/{flow-runtime-DyqTmK3H.js.map → flow-runtime-DrUWyTS0.js.map} +1 -1
  21. package/dist/{flow-screen-DCdli6Ha.js → flow-screen-3fk6J33y.js} +6 -4
  22. package/dist/flow-screen-3fk6J33y.js.map +1 -0
  23. package/dist/{flow-screen-Bcz9NF2V.cjs → flow-screen-6y5E_HT6.cjs} +5 -3
  24. package/dist/flow-screen-6y5E_HT6.cjs.map +1 -0
  25. package/dist/index.cjs +518 -107
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +187 -86
  28. package/dist/index.d.ts +187 -86
  29. package/dist/index.js +519 -108
  30. package/dist/index.js.map +1 -1
  31. package/dist/{inline-flow-host-3vw7LzzD.cjs → inline-flow-host-C4KmZIYE.cjs} +3 -3
  32. package/dist/{inline-flow-host-3vw7LzzD.cjs.map → inline-flow-host-C4KmZIYE.cjs.map} +1 -1
  33. package/dist/{inline-flow-host-C0rI9B7f.js → inline-flow-host-YnnvWjdU.js} +3 -3
  34. package/dist/{inline-flow-host-C0rI9B7f.js.map → inline-flow-host-YnnvWjdU.js.map} +1 -1
  35. package/dist/{lazy-relation-picker-dialog-Bt8lrEIu.cjs → lazy-relation-picker-dialog-BAKBRn3V.cjs} +2 -2
  36. package/dist/{lazy-relation-picker-dialog-Bt8lrEIu.cjs.map → lazy-relation-picker-dialog-BAKBRn3V.cjs.map} +1 -1
  37. package/dist/{lazy-relation-picker-dialog-CAScLPb2.js → lazy-relation-picker-dialog-DN4bvQfg.js} +2 -2
  38. package/dist/{lazy-relation-picker-dialog-CAScLPb2.js.map → lazy-relation-picker-dialog-DN4bvQfg.js.map} +1 -1
  39. package/dist/{page-flow-route-BHUEpn0I.js → page-flow-route-CtEfqAvU.js} +5 -6
  40. package/dist/page-flow-route-CtEfqAvU.js.map +1 -0
  41. package/dist/{page-flow-route-DS8IVTVH.cjs → page-flow-route-DEjAxHe3.cjs} +6 -7
  42. package/dist/page-flow-route-DEjAxHe3.cjs.map +1 -0
  43. package/dist/{place-node-CfzQvh4Y.js → place-node-BdxT-30h.js} +149 -108
  44. package/dist/place-node-BdxT-30h.js.map +1 -0
  45. package/dist/{place-node-CNb3w-c7.cjs → place-node-Bhl8B3fF.cjs} +163 -134
  46. package/dist/place-node-Bhl8B3fF.cjs.map +1 -0
  47. package/dist/{related-list-cards-CelMxl4q.cjs → related-list-cards-Bc_vfCE_.cjs} +3 -3
  48. package/dist/{related-list-cards-CelMxl4q.cjs.map → related-list-cards-Bc_vfCE_.cjs.map} +1 -1
  49. package/dist/{related-list-cards-BIqqY69Y.js → related-list-cards-BvkD5OcC.js} +3 -3
  50. package/dist/{related-list-cards-BIqqY69Y.js.map → related-list-cards-BvkD5OcC.js.map} +1 -1
  51. package/dist/related-list-timeline-DCrwN9oO.js +167 -0
  52. package/dist/related-list-timeline-DCrwN9oO.js.map +1 -0
  53. package/dist/related-list-timeline-k0DtnxTs.cjs +167 -0
  54. package/dist/related-list-timeline-k0DtnxTs.cjs.map +1 -0
  55. package/dist/{related-rows-MPnLCmPF.cjs → related-rows-BW9Jr07T.cjs} +3 -3
  56. package/dist/{related-rows-MPnLCmPF.cjs.map → related-rows-BW9Jr07T.cjs.map} +1 -1
  57. package/dist/{related-rows--uP2iKQC.js → related-rows-CPE-9FFr.js} +3 -3
  58. package/dist/{related-rows--uP2iKQC.js.map → related-rows-CPE-9FFr.js.map} +1 -1
  59. package/dist/{relation-many-picker-BJhaEqxz.js → relation-many-picker-BlrGRwMV.js} +10 -5
  60. package/dist/relation-many-picker-BlrGRwMV.js.map +1 -0
  61. package/dist/{relation-many-picker-DzuGJpEl.cjs → relation-many-picker-Br-zBHxT.cjs} +10 -5
  62. package/dist/relation-many-picker-Br-zBHxT.cjs.map +1 -0
  63. package/dist/{relation-picker-DaIMzf2H.cjs → relation-picker-ADjxI_TI.cjs} +11 -6
  64. package/dist/relation-picker-ADjxI_TI.cjs.map +1 -0
  65. package/dist/{relation-picker-dialog-DoEY8EkH.js → relation-picker-dialog-CyKliBkN.js} +2 -2
  66. package/dist/{relation-picker-dialog-DoEY8EkH.js.map → relation-picker-dialog-CyKliBkN.js.map} +1 -1
  67. package/dist/{relation-picker-dialog-9Vg5vvR1.cjs → relation-picker-dialog-DimVQF9Y.cjs} +2 -2
  68. package/dist/{relation-picker-dialog-9Vg5vvR1.cjs.map → relation-picker-dialog-DimVQF9Y.cjs.map} +1 -1
  69. package/dist/{relation-picker-D-tBBZW_.js → relation-picker-x7P5HKie.js} +11 -6
  70. package/dist/relation-picker-x7P5HKie.js.map +1 -0
  71. package/dist/{resource-page-router-Diw6S6TK.js → resource-page-router-BRpUnhay.js} +144 -17
  72. package/dist/resource-page-router-BRpUnhay.js.map +1 -0
  73. package/dist/{resource-page-router-C_kGW2o_.cjs → resource-page-router-qEd2xb55.cjs} +158 -19
  74. package/dist/resource-page-router-qEd2xb55.cjs.map +1 -0
  75. package/dist/use-record-subtitle-bfwIoUme.cjs +70 -0
  76. package/dist/use-record-subtitle-bfwIoUme.cjs.map +1 -0
  77. package/dist/use-record-subtitle-gIaCGgbI.js +53 -0
  78. package/dist/use-record-subtitle-gIaCGgbI.js.map +1 -0
  79. package/package.json +9 -9
  80. package/dist/bulk-summary-BWSAS7k2.js.map +0 -1
  81. package/dist/bulk-summary-CrEij5vq.cjs.map +0 -1
  82. package/dist/check-confirm-dialog-C-NHgMST.cjs.map +0 -1
  83. package/dist/filter-builder-DFu0JP-1.cjs.map +0 -1
  84. package/dist/filter-builder-DaWHUZuV.js.map +0 -1
  85. package/dist/flow-screen-Bcz9NF2V.cjs.map +0 -1
  86. package/dist/flow-screen-DCdli6Ha.js.map +0 -1
  87. package/dist/page-flow-route-BHUEpn0I.js.map +0 -1
  88. package/dist/page-flow-route-DS8IVTVH.cjs.map +0 -1
  89. package/dist/place-node-CNb3w-c7.cjs.map +0 -1
  90. package/dist/place-node-CfzQvh4Y.js.map +0 -1
  91. package/dist/related-list-timeline-CRh7xwLD.js +0 -141
  92. package/dist/related-list-timeline-CRh7xwLD.js.map +0 -1
  93. package/dist/related-list-timeline-DsLdi8sv.cjs +0 -141
  94. package/dist/related-list-timeline-DsLdi8sv.cjs.map +0 -1
  95. package/dist/relation-many-picker-BJhaEqxz.js.map +0 -1
  96. package/dist/relation-many-picker-DzuGJpEl.cjs.map +0 -1
  97. package/dist/relation-picker-D-tBBZW_.js.map +0 -1
  98. package/dist/relation-picker-DaIMzf2H.cjs.map +0 -1
  99. package/dist/resource-page-router-C_kGW2o_.cjs.map +0 -1
  100. package/dist/resource-page-router-Diw6S6TK.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -2,8 +2,8 @@ import { t as THEME_STORAGE_KEY } from "./theme-storage-key-pYlp4aDS.cjs";
2
2
  import { webPlatform } from "@burojs/react/web";
3
3
  import * as React$1 from "react";
4
4
  import { AnchorHTMLAttributes, ComponentType, JSX, ReactElement, ReactNode, SVGProps } from "react";
5
- import { ActionDensity, AnyFrameHandle, AppRuntime, AuthResult, Check, CheckSurface, CustomPageDef, DraftOption, EntityRef, EnumControl, EnumNameOrRef, ErasedResourceHandle, ExportArtifact, ExportTarget, FieldDeclaration, FilterExpression, FilterGroup, FilterOperator, FixedFilterInput, FormBody, FrameHandle, HrefOpts, I18nCaps, NavGroupDef, NavNode, PortableValue, RecordId, RelationCandidate, RelationOpen, ResolvedColumnUi, ResolvedFixedFilter, ResourceDef, ResourceFieldMap, ResourceHandle, ResourceHandleOf, ResourceNameArg, ResourceNameOrRef, ResourceRefArg, RouteMatch, SavedViewDef, ScopeSource, ScreenMode, ScreenSources, SearchDecl, SectionDef, SortExpression, StandardSchemaV1, TaskRunReport, UiSettingsIssue, UiSurface, ValidationIssues, i18nPrefixToRef } from "@burojs/core";
6
- import { BlockImplementationCatalog, CheckGateState, CollectionDisplayProps, CollectionInputProps, DEFAULT_LANGUAGE_STORAGE_KEY, FieldBinding, FieldImplementation, FieldImplementationLayout, FieldLinkState, FieldPresentation, FilterFieldSpec, FilterKind, FormSubmitContext, FormValues, ListOptionFilter, QuickSettledRow, RowRecord, SavedViewEntry, ScalarDisplayProps, ScalarInputProps, UIPresentationHostProps, UIPresentationHosts, UseFormControllerFormOptions, modeForSurface } from "@burojs/react";
5
+ import { ActionDensity, AnyFrameHandle, AppRuntime, AuthResult, Check, CheckSurface, CustomPageDef, DraftOption, EntityRef, EnumControl, EnumNameOrRef, ErasedResourceHandle, ExportArtifact, ExportTarget, FieldDeclaration, FieldStatus, FieldZone, FilterExpression, FilterGroup, FilterOperator, FixedFilterInput, FormBody, FrameHandle, HrefOpts, I18nCaps, NavGroupDef, NavNode, PortableValue, RecordId, RecordTitleContext, RelationCandidate, RelationOpen, ResolvedColumnUi, ResolvedFixedFilter, ResourceDef, ResourceFieldMap, ResourceHandle, ResourceHandleOf, ResourceNameArg, ResourceNameOrRef, ResourceRefArg, RouteMatch, SavedViewDef, ScopeSource, ScreenMode, ScreenSources, SearchDecl, SectionDef, SortExpression, StandardSchemaV1, TaskRunReport, UiSettingsIssue, UiSurface, ValidationIssues, i18nPrefixToRef } from "@burojs/core";
6
+ import { BlockImplementationCatalog, CheckGateState, CollectionDisplayProps, CollectionInputProps, DEFAULT_LANGUAGE_STORAGE_KEY, EnumUseSite, FieldBinding, FieldImplementation, FieldImplementationLayout, FieldLinkState, FieldPresentation, FilterFieldSpec, FilterKind, FormSubmitContext, FormValues, ListOptionFilter, QuickSettledRow, RowRecord, SavedViewEntry, ScalarDisplayProps, ScalarInputProps, UIPresentationHostProps, UIPresentationHosts, UseFormControllerFormOptions, modeForSurface } from "@burojs/react";
7
7
  import { ToasterProps as ToasterProps$1, toast } from "sonner";
8
8
  import { z } from "zod";
9
9
  import { isImage } from "@burojs/file-storage";
@@ -512,25 +512,84 @@ type RecordPageProps<N extends string = string> = {
512
512
  */
513
513
  declare function RecordPage<const N extends string = string>(props: RecordPageProps<N>): ReactElement;
514
514
  //#endregion
515
- //#region src/layout/record-breadcrumbs.d.ts
515
+ //#region src/layout/breadcrumbs.d.ts
516
+ /** A crumb; `jump` makes its click start a fresh trail (`useOriginIntent`), as a group link does. */
517
+ type Segment = {
518
+ label: string;
519
+ href?: string;
520
+ jump?: boolean;
521
+ };
522
+ interface BreadcrumbsBaseProps {
523
+ className?: string;
524
+ /**
525
+ * Scopes the trail offers help for, outermost first. Defaults to the resource
526
+ * this breadcrumb is rooted at (none for a trail without a resource).
527
+ */
528
+ docScopes?: string[];
529
+ /**
530
+ * Segments rendered before the resource segment (or before the page label in
531
+ * a trail without one), each followed by a chevron — the group chain. A
532
+ * segment with an `href` renders as a link; without one, as muted text.
533
+ */
534
+ leadingSegments?: Segment[];
535
+ /** Optional testid forwarded to the root nav. */
536
+ 'data-testid'?: string;
537
+ }
538
+ /** A trail that ends at, or passes through, a resource: its list link, then the record. */
539
+ interface ResourceBreadcrumbsProps<N extends string = string> extends BreadcrumbsBaseProps {
540
+ /** Resource name (the registry key), checked against the registered resources; or its entity ref. */
541
+ resource: ResourceNameOrRef<N>;
542
+ name?: never;
543
+ /** Identifier for the current page (testid only); a record id on show/edit pages. */
544
+ recordId?: string;
545
+ /**
546
+ * Display label for the trailing segment (the current page). When omitted
547
+ * the resource segment itself is the current crumb (a list page).
548
+ */
549
+ pageLabel?: string;
550
+ /**
551
+ * Segments rendered between the resource link and the trailing page label —
552
+ * the record on an edit page («Documents › live-one › Edit»). A segment
553
+ * without `href` renders as plain text.
554
+ */
555
+ middleSegments?: Segment[];
556
+ /**
557
+ * Where the resource crumb links instead of the list's canonical address: the list as the user
558
+ * had it, filters and page included (a record page reached from it, navigation origin).
559
+ */
560
+ resourceHref?: string;
561
+ /**
562
+ * Segments that replace the leading segments and the resource crumb: the trail of the page the
563
+ * user came from when it is not this resource's list (a parent record's card). `middleSegments`
564
+ * are not drawn with them.
565
+ */
566
+ rootSegments?: Segment[];
567
+ }
568
+ /** A trail with no resource segment: a custom page or a group index. */
569
+ interface PageBreadcrumbsProps extends BreadcrumbsBaseProps {
570
+ resource?: never;
571
+ /** The test-id name of the current crumb: the custom page's or the group's key. */
572
+ name: string;
573
+ /** The current page's label, the trail's last crumb. */
574
+ pageLabel: string;
575
+ recordId?: never;
576
+ middleSegments?: never;
577
+ resourceHref?: never;
578
+ rootSegments?: never;
579
+ }
580
+ type BreadcrumbsProps<N extends string = string> = ResourceBreadcrumbsProps<N> | PageBreadcrumbsProps;
516
581
  /**
517
- * The record trail of the current route, the one `<HeaderBreadcrumbs>` draws
518
- * there; record and flow pages draw none of their own.
519
- *
520
- * On a record route whose operation is available: the group chain, the
521
- * resource, then the record (show), the record linking to show when show is
522
- * available plus "Edit" (edit), or "Create" (create). The record crumb is the
523
- * record's title once `<RecordPage>` has loaded it, and the id while it loads,
524
- * has failed, or is not mounted at all.
525
- *
526
- * On a page-hosted flow's route: the record's edit-shaped trail ending with the
527
- * flow's label, once the flow page shows its form or its "not available"
528
- * notice; until then, and on every not-found it answers with, the record's
529
- * show trail with the id, so a flow the user may not run is never named. A
530
- * name no flow answers to is the framework 404, with no trail.
531
- *
532
- * Nothing on any other route.
582
+ * The navigation breadcrumb, in two shapes. With `resource`: the leading
583
+ * segments, the resource (a link to its canonical, nesting-aware list href,
584
+ * or the current crumb on a bare list), the middle segments and the page
585
+ * label. Without: the leading segments and the page label only, test ids
586
+ * named by `name`. The last crumb is always the "you are here" marker — an
587
+ * emphasised, non-linked span with `aria-current="page"`. Every crumb carries
588
+ * its label as a `title` tooltip, so a truncated one can still be read.
533
589
  */
590
+ declare function Breadcrumbs<const N extends string = string>(input: BreadcrumbsProps<N>): ReactElement | null;
591
+ //#endregion
592
+ //#region src/layout/record-breadcrumbs.d.ts
534
593
  declare function RecordBreadcrumbs(): ReactElement | null;
535
594
  //#endregion
536
595
  //#region src/record/record-screen.d.ts
@@ -772,68 +831,6 @@ declare function loadLocale(storageKey?: string): string | undefined;
772
831
  /** Persist a locale code. Counterpart to {@link loadLocale}. */
773
832
  declare function saveLocale(code: string, storageKey?: string): void;
774
833
  //#endregion
775
- //#region src/layout/breadcrumbs.d.ts
776
- type Segment = {
777
- label: string;
778
- href?: string;
779
- };
780
- interface BreadcrumbsBaseProps {
781
- className?: string;
782
- /**
783
- * Scopes the trail offers help for, outermost first. Defaults to the resource
784
- * this breadcrumb is rooted at (none for a trail without a resource).
785
- */
786
- docScopes?: string[];
787
- /**
788
- * Segments rendered before the resource segment (or before the page label in
789
- * a trail without one), each followed by a chevron — the group chain. A
790
- * segment with an `href` renders as a link; without one, as muted text.
791
- */
792
- leadingSegments?: Segment[];
793
- /** Optional testid forwarded to the root nav. */
794
- 'data-testid'?: string;
795
- }
796
- /** A trail that ends at, or passes through, a resource: its list link, then the record. */
797
- interface ResourceBreadcrumbsProps<N extends string = string> extends BreadcrumbsBaseProps {
798
- /** Resource name (the registry key), checked against the registered resources; or its entity ref. */
799
- resource: ResourceNameOrRef<N>;
800
- name?: never;
801
- /** Identifier for the current page (testid only); a record id on show/edit pages. */
802
- recordId?: string;
803
- /**
804
- * Display label for the trailing segment (the current page). When omitted
805
- * the resource segment itself is the current crumb (a list page).
806
- */
807
- pageLabel?: string;
808
- /**
809
- * Segments rendered between the resource link and the trailing page label —
810
- * the record on an edit page («Documents › live-one › Edit»). A segment
811
- * without `href` renders as plain text.
812
- */
813
- middleSegments?: Segment[];
814
- }
815
- /** A trail with no resource segment: a custom page or a group index. */
816
- interface PageBreadcrumbsProps extends BreadcrumbsBaseProps {
817
- resource?: never;
818
- /** The test-id name of the current crumb: the custom page's or the group's key. */
819
- name: string;
820
- /** The current page's label, the trail's last crumb. */
821
- pageLabel: string;
822
- recordId?: never;
823
- middleSegments?: never;
824
- }
825
- type BreadcrumbsProps<N extends string = string> = ResourceBreadcrumbsProps<N> | PageBreadcrumbsProps;
826
- /**
827
- * The navigation breadcrumb, in two shapes. With `resource`: the leading
828
- * segments, the resource (a link to its canonical, nesting-aware list href,
829
- * or the current crumb on a bare list), the middle segments and the page
830
- * label. Without: the leading segments and the page label only, test ids
831
- * named by `name`. The last crumb is always the "you are here" marker — an
832
- * emphasised, non-linked span with `aria-current="page"`. Every crumb carries
833
- * its label as a `title` tooltip, so a truncated one can still be read.
834
- */
835
- declare function Breadcrumbs<const N extends string = string>(input: BreadcrumbsProps<N>): ReactElement | null;
836
- //#endregion
837
834
  //#region src/layout/header-breadcrumbs.d.ts
838
835
  /**
839
836
  * The page's one breadcrumb trail, and `<AppHeader>`'s default `breadcrumbs`:
@@ -1758,6 +1755,27 @@ interface AuthPageProps {
1758
1755
  */
1759
1756
  declare function AuthPage({ children, brand, footer, className }: AuthPageProps): React.ReactElement;
1760
1757
  //#endregion
1758
+ //#region src/fields/object-group.d.ts
1759
+ /**
1760
+ * The input chrome of an object field (T2 5.5): a bordered group around its properties. The
1761
+ * shell lays the properties out in the declared layout and hands them over as `children`; the
1762
+ * field's own label is the leaf's, so the group is named by it.
1763
+ */
1764
+ declare function ObjectGroupInput(props: ScalarInputProps<unknown>): ReactElement;
1765
+ /** The display chrome of an object field: the same group around its properties' displays. */
1766
+ declare function ObjectGroupDisplay(props: ScalarDisplayProps<unknown>): ReactElement;
1767
+ //#endregion
1768
+ //#region src/fields/repeater.d.ts
1769
+ /**
1770
+ * The input chrome of an array field (T2 5.5): its elements, each with move-up, move-down and
1771
+ * remove, and an add button. The shell supplies the elements (`renderElement`), their stable keys
1772
+ * and the one set of actions; the repeater only draws them. Test ids are
1773
+ * `<input id>:item:<n>`, `:add`, `:empty` and, per element, `:remove:<n>`, `:up:<n>`, `:down:<n>`.
1774
+ */
1775
+ declare function RepeaterInput(props: CollectionInputProps<unknown>): ReactElement;
1776
+ /** The display chrome of an array field: a read-only list of its elements' displays. */
1777
+ declare function RepeaterDisplay(props: CollectionDisplayProps<unknown>): ReactElement;
1778
+ //#endregion
1761
1779
  //#region src/fields/default-renderers.d.ts
1762
1780
  /** Immutable, trusted shadcn implementations keyed by the compiler's UI IDs. */
1763
1781
  declare const shadcnFieldImplementations: Readonly<{
@@ -1771,6 +1789,8 @@ declare const shadcnFieldImplementations: Readonly<{
1771
1789
  dateTime: FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1772
1790
  'date-time': FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1773
1791
  'default:date-time': FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1792
+ time: FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1793
+ 'default:time': FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1774
1794
  enum: FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1775
1795
  json: FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1776
1796
  relation: Readonly<{
@@ -1780,12 +1800,23 @@ declare const shadcnFieldImplementations: Readonly<{
1780
1800
  CollectionDisplay?: import("react").ComponentType<CollectionDisplayProps<unknown, Readonly<Record<string, unknown>>>> | undefined;
1781
1801
  layout?: FieldImplementationLayout;
1782
1802
  meta: import("@burojs/core").StandardSchemaV1<unknown, Readonly<Record<string, unknown>>>;
1803
+ chrome?: true;
1783
1804
  texts?: Readonly<Record<string, string>>;
1784
1805
  }>;
1785
1806
  richText: FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1786
1807
  'rich-text': FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1787
1808
  'default:rich-text': FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1788
1809
  file: FieldImplementation<unknown, Readonly<Record<string, unknown>>>;
1810
+ object: Readonly<{
1811
+ Input: typeof ObjectGroupInput;
1812
+ Display: typeof ObjectGroupDisplay;
1813
+ chrome: true;
1814
+ }>;
1815
+ array: Readonly<{
1816
+ CollectionInput: typeof RepeaterInput;
1817
+ CollectionDisplay: typeof RepeaterDisplay;
1818
+ chrome: true;
1819
+ }>;
1789
1820
  }>;
1790
1821
  //#endregion
1791
1822
  //#region src/blocks/builtins.d.ts
@@ -1796,6 +1827,14 @@ declare const shadcnFieldImplementations: Readonly<{
1796
1827
  */
1797
1828
  declare const shadcnBlockImplementations: BlockImplementationCatalog;
1798
1829
  //#endregion
1830
+ //#region src/resource/use-record-subtitle.d.ts
1831
+ /**
1832
+ * A record's second line as code declares it (REF-136): the resource's `recordSubtitle`, or a
1833
+ * relation field's `optionSubtitle` for that field's options. A string is the line, `null` says
1834
+ * there is none, `undefined` (or a blank string) leaves it to the surface.
1835
+ */
1836
+ type RecordSubtitleFn = (record: Readonly<Record<string, unknown>>, ctx?: RecordTitleContext) => string | null | undefined;
1837
+ //#endregion
1799
1838
  //#region src/fields/registry.d.ts
1800
1839
  interface FieldRendererProps {
1801
1840
  value: unknown;
@@ -1813,6 +1852,8 @@ interface FieldRendererProps {
1813
1852
  ui?: Record<string, unknown>;
1814
1853
  /** The field's declared `texts`; an option's label is read from it (`fieldOptionText`). */
1815
1854
  texts?: unknown;
1855
+ /** A date field's zone: an IANA name or a value source (REF-118 §4.2). */
1856
+ zone?: unknown;
1816
1857
  };
1817
1858
  options?: Array<{
1818
1859
  value: string;
@@ -1854,11 +1895,18 @@ interface FieldInputProps {
1854
1895
  relationSeeds?: Readonly<Record<string, unknown>>;
1855
1896
  /** A relation select's extra filters from the form's `filter` function (P7 3.4). */
1856
1897
  fixedFilters?: readonly FixedFilterInput[];
1898
+ /** A relation select's option subtitle, the field's `optionSubtitle` (REF-136). */
1899
+ optionSubtitle?: RecordSubtitleFn;
1857
1900
  /**
1858
1901
  * The field owner's source states, projected by what the user may view: what a relation's
1859
1902
  * `candidates` refs are read from (P7 3.4).
1860
1903
  */
1861
1904
  metaSources?: ScreenSources;
1905
+ /**
1906
+ * What a `changed` operand compares against: the form's starting values (seeded on a create).
1907
+ * An enum control reads its available set against them. Absent: `record`.
1908
+ */
1909
+ baseline?: Readonly<Record<string, unknown>>;
1862
1910
  /**
1863
1911
  * An inline link field of a record form: what the user may do with it, the keys they cannot
1864
1912
  * see, and whether the form holds its keys. Only the to-many select reads it.
@@ -1932,7 +1980,14 @@ interface FieldInputProps {
1932
1980
  name: string;
1933
1981
  meta?: Record<string, unknown>;
1934
1982
  ui?: Record<string, unknown>;
1983
+ /** A date field's zone: an IANA name or a value source (REF-118 §4.2). */
1984
+ zone?: unknown;
1935
1985
  };
1986
+ /**
1987
+ * The form's live values, when the field is edited in a form. A date field whose zone is a
1988
+ * `ref('record', …)` reads it, so changing the zone column re-reads the box (REF-118 C5).
1989
+ */
1990
+ values?: Readonly<Record<string, unknown>>;
1936
1991
  /**
1937
1992
  * Registry name of the resource this field belongs to.
1938
1993
  *
@@ -1962,7 +2017,7 @@ declare function BooleanDisplay({ value, text }: FieldRendererProps): React$1.Re
1962
2017
  declare function BooleanInput({ name, id, value, onChange, testid, disabled, required, ariaInvalid, ariaDescribedBy, ariaErrorMessage }: FieldInputProps): React$1.ReactElement;
1963
2018
  //#endregion
1964
2019
  //#region src/fields/date.d.ts
1965
- declare function DateDisplay({ value, text }: FieldRendererProps): React$1.ReactElement;
2020
+ declare function DateDisplay(props: FieldRendererProps): React$1.ReactElement;
1966
2021
  declare function DateInput(props: FieldInputProps): React$1.ReactElement;
1967
2022
  //#endregion
1968
2023
  //#region src/fields/enum.d.ts
@@ -1975,8 +2030,12 @@ declare function EnumDisplay({ value, options, field, resource }: FieldRendererP
1975
2030
  * to an enum namespace, each value's summary is read the way `EnumPicker` reads
1976
2031
  * it (`enum/<ns>/<value>`), so one enum looks the same however its field is
1977
2032
  * bound; a truly inline enum has no value docs and shows labels only.
2033
+ *
2034
+ * The field's `meta.narrow` (REF-132 §7.2) removes options here as it does on a
2035
+ * registered enum's picker; a current value that is not offered still shows,
2036
+ * first and inert (§8).
1978
2037
  */
1979
- declare function EnumInput({ name, id, value, onChange, testid, options, field, placeholder, disabled, required, ariaInvalid, ariaDescribedBy, ariaErrorMessage, ariaLabelledBy, resource }: FieldInputProps): React$1.ReactElement;
2038
+ declare function EnumInput({ name, id, value, onChange, testid, options, field, placeholder, disabled, required, ariaInvalid, ariaDescribedBy, ariaErrorMessage, ariaLabelledBy, resource, record, values, metaSources, baseline }: FieldInputProps): React$1.ReactElement;
1980
2039
  //#endregion
1981
2040
  //#region src/fields/textarea.d.ts
1982
2041
  declare function TextareaDisplay({ value, text: formatted }: FieldRendererProps): React$1.ReactElement;
@@ -2164,6 +2223,11 @@ interface RelationPickerProps<N extends string = string> {
2164
2223
  fieldName?: string;
2165
2224
  /** The field's `ui.open` (P7 3.6): what the "view" button opens, or no button for `none`. */
2166
2225
  open?: RelationOpen;
2226
+ /**
2227
+ * The options' second line over the target row (a relation field's `optionSubtitle`): wins over
2228
+ * the target's `recordSubtitle`; without either, `#<id>`.
2229
+ */
2230
+ optionSubtitle?: RecordSubtitleFn;
2167
2231
  /**
2168
2232
  * The read scope of the option reads (the popover, "Advanced search" and the create hand-back).
2169
2233
  * Default `'context'`: the record around the picker narrows its options, except by the field
@@ -2181,7 +2245,7 @@ interface RelationPickerProps<N extends string = string> {
2181
2245
  /** Forwarded to the trigger button as `aria-errormessage` (WAI-ARIA 1.2). */
2182
2246
  ariaErrorMessage?: string;
2183
2247
  }
2184
- declare function RelationPicker<const N extends string = string>({ to: toInput, value, onChange, by, searchField, pageSize, clearable, placeholder, name, id, testid, fixedFilters, createSeeds, candidatesGate, rowFits, fieldName, open: openMode, scope, disabled, required, className, ariaInvalid, ariaDescribedBy, ariaErrorMessage }: RelationPickerProps<N>): React$1.ReactElement;
2248
+ declare function RelationPicker<const N extends string = string>({ to: toInput, value, onChange, by, searchField, pageSize, clearable, placeholder, name, id, testid, fixedFilters, createSeeds, candidatesGate, rowFits, fieldName, open: openMode, optionSubtitle, scope, disabled, required, className, ariaInvalid, ariaDescribedBy, ariaErrorMessage }: RelationPickerProps<N>): React$1.ReactElement;
2185
2249
  /**
2186
2250
  * Form-field adapter wrapping `<RelationPicker>` for use as a default
2187
2251
  * Input renderer in the field registry. Reads `field.meta.to` for the
@@ -2558,12 +2622,30 @@ interface ResolvedFieldDisplayProps {
2558
2622
  readonly columnEntry?: {
2559
2623
  readonly display?: unknown;
2560
2624
  };
2625
+ /**
2626
+ * The object property paths the form's plan holds absent by a `when` (REF-132 1a-9,
2627
+ * `ScreenPlan.absentPaths`), dotted from the record root (`'head.vsd'`), at or below this field.
2628
+ * An object group draws no property at or below one of them. Absent: every property is drawn.
2629
+ */
2630
+ readonly absentPaths?: readonly string[];
2631
+ /**
2632
+ * Each object path below this field whose status path rules decide (REF-131 S1,
2633
+ * `ScreenPlan.fieldPaths`), dotted from the record root (`'head.y'`). An object group draws an
2634
+ * `inactive` part not at all and any other part that is not `active` read-only. Absent: every
2635
+ * part follows the field.
2636
+ */
2637
+ readonly pathStatus?: Readonly<Record<string, FieldStatus>>;
2561
2638
  }
2562
2639
  interface ResolvedFieldInputProps extends Omit<ResolvedFieldDisplayProps, 'fallback' | 'uiSurface' | 'columnEntry'> {
2563
2640
  readonly inputId?: string;
2564
2641
  readonly onChange: (value: unknown) => void;
2565
2642
  /** Live form values, distinct from the edit record baseline. */
2566
2643
  readonly form?: Readonly<Record<string, unknown>>;
2644
+ /**
2645
+ * What a `changed` operand compares against: the form controller's starting values (seeded on a
2646
+ * create). An enum picker reads its available set against them. Absent: `record`.
2647
+ */
2648
+ readonly baseline?: Readonly<Record<string, unknown>>;
2567
2649
  readonly onBlur?: () => void;
2568
2650
  readonly disabled?: boolean;
2569
2651
  readonly required?: boolean;
@@ -2594,6 +2676,11 @@ interface ResolvedFieldInputProps extends Omit<ResolvedFieldDisplayProps, 'fallb
2594
2676
  * Never read from `field.meta`, which a layer can write.
2595
2677
  */
2596
2678
  readonly fixedFilters?: readonly FixedFilterInput[];
2679
+ /**
2680
+ * A relation select's option subtitle (the field's `optionSubtitle`, REF-136): code, handed down
2681
+ * by the form controller on its own channel, as `fixedFilters` is.
2682
+ */
2683
+ readonly optionSubtitle?: FieldBinding['optionSubtitle'];
2597
2684
  /** An inline link field's rights, hidden keys and load state, from the form controller. */
2598
2685
  readonly link?: FieldLinkState;
2599
2686
  readonly fallback: ReactNode;
@@ -3030,6 +3117,13 @@ interface EnumPickerProps<N extends string = string> {
3030
3117
  clearable?: boolean;
3031
3118
  /** Label for the clear item. Defaults to "All". */
3032
3119
  clearLabel?: string;
3120
+ /**
3121
+ * The field's use site (REF-132 §7.2): its `params`, its `narrow` and the sources they read.
3122
+ * Given, the picker offers only the available set (§7.6); absent, every value, as a filter
3123
+ * offers them. Either way a current value that is not offered still shows (§8), as a
3124
+ * "current" item that cannot be picked again once the user moves away.
3125
+ */
3126
+ use?: EnumUseSite;
3033
3127
  }
3034
3128
  /**
3035
3129
  * Single picker primitive that renders enum values with one of the
@@ -3043,7 +3137,7 @@ interface EnumPickerProps<N extends string = string> {
3043
3137
  * matches the EnumBadge fallback policy: a half-shipped enum should not
3044
3138
  * crash the form.
3045
3139
  */
3046
- declare function EnumPicker<const N extends string = string>({ enumName: enumInput, value, onChange, control, name, id, testid, placeholder, disabled, required, ariaInvalid, ariaDescribedBy, ariaErrorMessage, ariaLabelledBy, className, clearable, clearLabel }: EnumPickerProps<N>): React$1.ReactElement;
3140
+ declare function EnumPicker<const N extends string = string>({ enumName: enumInput, value, onChange, control, name, id, testid, placeholder, disabled, required, ariaInvalid, ariaDescribedBy, ariaErrorMessage, ariaLabelledBy, className, clearable, clearLabel, use }: EnumPickerProps<N>): React$1.ReactElement;
3047
3141
  //#endregion
3048
3142
  //#region src/primitives/button.d.ts
3049
3143
  declare const buttonVariants: (props?: ({
@@ -4916,6 +5010,11 @@ interface FilterValueControlProps {
4916
5010
  */
4917
5011
  readonly placeholder?: string;
4918
5012
  readonly autoFocus?: boolean;
5013
+ /**
5014
+ * `FilterFieldSpec.zone`: the zone a date-time box reads and writes in, before the user's, the
5015
+ * app's and the host's (REF-118 §4.2). Other kinds ignore it.
5016
+ */
5017
+ readonly zone?: FieldZone;
4919
5018
  /**
4920
5019
  * Delay (ms) before a scalar single-value edit (`ScalarValueInput`'s
4921
5020
  * text/number/date box) commits upward. Only that control debounces —
@@ -5346,7 +5445,9 @@ declare function ShowPageHeader<const N extends string = string>({ resource: res
5346
5445
  }): React.ReactElement | null;
5347
5446
  /**
5348
5447
  * The edit-page `<PageHeader>`: the back-link, the record's title and the resolved
5349
- * `<ActionOverflow surface="edit">` item-action list.
5448
+ * `<ActionOverflow surface="edit">` item-action list. The back-link is `backHref` when given,
5449
+ * else where the record page's Save returns (`useReturnTarget`): where the user came from, by
5450
+ * default, else the record's show page, else the list.
5350
5451
  */
5351
5452
  declare function EditPageHeader<const N extends string = string>({ resource: resourceInput, record, backHref, breadcrumbs }: {
5352
5453
  resource: ResourceNameOrRef<N>;