@acvl/frontend-components 0.0.75 → 0.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2478,6 +2478,22 @@ interface DetailFormDrawerProps {
2478
2478
  permissionsPath?: string;
2479
2479
  /** Runs after a successful mutation, before the drawer closes. Receives the response. */
2480
2480
  onSuccess?: (response: any) => void;
2481
+ /**
2482
+ * Guardar deja el cajón abierto —y editando— en vez de cerrarlo. El usuario lo cierra
2483
+ * cuando termina, con la X o con Cancelar.
2484
+ *
2485
+ * Para registros que se capturan de a poco, o que llevan dentro su propia grilla editable:
2486
+ * ahí cerrar al guardar cuesta reabrir el registro, volver a entrar a editar y volver a
2487
+ * bajar hasta donde se iba. El caso que lo pide es un cajón anidado —una orden de envío
2488
+ * abierta desde la pestaña de su embarque, con la grilla de sus recibos adentro—, donde el
2489
+ * cierre además se lleva la grilla de en medio.
2490
+ *
2491
+ * Un guardado que **no** guardó igual cierra: `useMutationHandler` corre su `onSuccess` sin
2492
+ * respuesta ante un 403 para quitar la pantalla de en medio, y eso no es algo en lo que
2493
+ * quedarse. Tampoco compite con "Guardar ↓" — ése ya se queda abierto por su cuenta, y
2494
+ * cuando los dos aplican gana el paso al siguiente registro, que es lo que se pidió.
2495
+ */
2496
+ keepOpenOnSave?: boolean;
2481
2497
  /**
2482
2498
  * Acciones propias del registro —cerrar, revertir, descargar su PDF—, las mismas que
2483
2499
  * `DetailPage_v2` recibe en `slots.extraButtons` y con la misma forma, para que un registro
@@ -2579,8 +2595,12 @@ interface DetailFormDrawerProps {
2579
2595
  * captured down a list in one pass without the hands leaving the keyboard. Rename it with
2580
2596
  * `labels.saveAndNext`. Guardar sits outside the `<form>` and submits via the native
2581
2597
  * `form={formId}` attribute; Guardar ↓ submits by hand, so the implicit Enter stays Guardar.
2598
+ *
2599
+ * `keepOpenOnSave` cambia lo que hace Guardar cuando no hay a dónde avanzar: en vez de cerrar,
2600
+ * deja el registro en pantalla y editando — para formularios que se capturan de a poco o que
2601
+ * llevan una grilla adentro.
2582
2602
  */
2583
- declare function DetailFormDrawer({ open, onClose, title, api, form, sections, pageType, startInEdit, recordKey, permissionsPath, onSuccess, extraButtons, navigation, width, anchor, variant, resizable, minWidth, maxWidth, widthStorageKey, onWidthChange, responsiveTo, containerBreakpoints, labels, slots, slotProps, }: DetailFormDrawerProps): react_jsx_runtime.JSX.Element;
2603
+ declare function DetailFormDrawer({ open, onClose, title, api, form, sections, pageType, startInEdit, recordKey, permissionsPath, onSuccess, keepOpenOnSave, extraButtons, navigation, width, anchor, variant, resizable, minWidth, maxWidth, widthStorageKey, onWidthChange, responsiveTo, containerBreakpoints, labels, slots, slotProps, }: DetailFormDrawerProps): react_jsx_runtime.JSX.Element;
2584
2604
 
2585
2605
  interface DrawerGridDrawerConfig {
2586
2606
  /** Shared field layout, used by every mode. Same shape as `DetailPage_v2`'s `form`/`sections`. */
@@ -2697,6 +2717,14 @@ interface DrawerGridDrawerConfig {
2697
2717
  * without a list to walk there is nothing to continue to.
2698
2718
  */
2699
2719
  showNavigator?: boolean;
2720
+ /**
2721
+ * Guardar deja el cajón abierto y editando en vez de cerrarlo; se cierra con la X o con
2722
+ * Cancelar. Para registros que se capturan de a poco, o que llevan su propia grilla
2723
+ * editable adentro y perderían el lugar al cerrarse.
2724
+ *
2725
+ * @see DetailFormDrawerProps.keepOpenOnSave
2726
+ */
2727
+ keepOpenOnSave?: boolean;
2700
2728
  /** Rótulos del pie del cajón. `saveAndNext` por defecto es `"Guardar ↓"`. */
2701
2729
  labels?: {
2702
2730
  save?: string;
@@ -2756,6 +2784,10 @@ interface DrawerGridProps {
2756
2784
  * open-edit-save-reopen per row — and with the shortcut, without leaving the keyboard. It
2757
2785
  * rides on the navigator — no navigator, or last row, and there is just Guardar.
2758
2786
  *
2787
+ * `drawer.keepOpenOnSave` hace que Guardar no cierre: el registro se queda en pantalla y
2788
+ * editando. Vale la pena donde el cajón lleva su propia grilla adentro —cerrarlo se lleva
2789
+ * también lo que se estaba capturando ahí— o donde el registro se llena en varias pasadas.
2790
+ *
2759
2791
  * Edit mode is opt-in with `api.edit: {}` and adds nothing to the grid but a toolbar toggle —
2760
2792
  * no mutation, no actions column, no in-grid editing. While it's on, a row click opens the
2761
2793
  * record drawer already editing, provided the record allows it; the drawer form is the only
@@ -2960,6 +2992,21 @@ interface DetailPageV2Props {
2960
2992
  responsiveTo?: DetailFormProps["responsiveTo"];
2961
2993
  /** @see DetailFormProps.containerBreakpoints */
2962
2994
  containerBreakpoints?: DetailFormProps["containerBreakpoints"];
2995
+ /**
2996
+ * Deja el renglón del título —con el estado y la barra de acciones— pegado al tope mientras
2997
+ * se scrollea la ficha. Las migas se recogen al llegar arriba, así que lo que se queda es
2998
+ * sólo lo que hace falta tener a la mano.
2999
+ *
3000
+ * Encendido por defecto: una ficha es larga y sus acciones viven arriba, así que sin esto
3001
+ * editar o abrir el historial obliga a volver al principio. Vale igual capturando —ahí lo
3002
+ * que queda a la mano es Guardar y Cancelar—, que es la otra mitad del mismo problema.
3003
+ *
3004
+ * Apagarlo tiene sentido en una ficha corta, donde el encabezado nunca se va. Se ignora
3005
+ * cuando no hay renglón de título donde poner las acciones (pantalla completa, o un
3006
+ * `pageHeader` propio que no lo reserve): ahí vuelven a la esquina flotante de siempre.
3007
+ * @default true
3008
+ */
3009
+ stickyHeader?: boolean;
2963
3010
  slots?: {
2964
3011
  button?: ReactNode;
2965
3012
  /**
@@ -3099,6 +3146,20 @@ interface MainLayoutPageHeaderProps extends PageHeaderProps {
3099
3146
  fullScreen?: boolean;
3100
3147
  detachedPages?: DetachedPage[];
3101
3148
  documentTitleSuffix?: string;
3149
+ /**
3150
+ * El padding horizontal del panel de contenido, que el `MainLayout` le pasa tal cual.
3151
+ *
3152
+ * Hace falta aquí para el encabezado pegado: la banda tiene que llegar a los bordes del
3153
+ * panel para tapar lo que pasa por debajo, y ese padding es lo que hay que descontar.
3154
+ * @see MainLayoutProps.contentPaddingX
3155
+ */
3156
+ contentPaddingX?: number | string;
3157
+ /**
3158
+ * El fondo del panel de contenido, también del `MainLayout`. Pegada, la banda se pinta de
3159
+ * ese color: es el suelo por el que el contenido se desliza, no una tarjeta encima de él.
3160
+ * @see MainLayoutProps.pageBackgroundColor
3161
+ */
3162
+ pageBackgroundColor?: string;
3102
3163
  }
3103
3164
 
3104
3165
  /**
@@ -3401,6 +3462,49 @@ declare const PageBadgeHostContext: React.Context<PageBadgeHost | null>;
3401
3462
  /** El hueco de la insignia del encabezado, o `null` si no hay ninguno arriba. */
3402
3463
  declare const usePageBadgeHost: () => PageBadgeHost | null;
3403
3464
 
3465
+ interface StickyPageHeaderHost {
3466
+ /** Si la página que está montada pidió que el renglón del título se quede arriba. */
3467
+ fijo: boolean;
3468
+ /**
3469
+ * La página se anota al montarse y se borra al irse. Se lleva un padrón y no un booleano
3470
+ * suelto porque al cambiar de ruta las dos páginas coexisten un instante —React desmonta la
3471
+ * vieja después de montar la nueva—, y con un solo valor la que se va apagaría lo que acaba
3472
+ * de pedir la que llega.
3473
+ */
3474
+ registrar: (id: string, pedido: boolean) => void;
3475
+ }
3476
+ /**
3477
+ * Cómo una página le dice al encabezado que se quede pegado arriba.
3478
+ *
3479
+ * Va por contexto y no por prop del `MainLayout` porque la decisión es de la página, no del
3480
+ * cascarón: una ficha quiere el título y sus acciones siempre a la mano, y una vista de lista
3481
+ * —que ya scrollea dentro del DataGrid— no gana nada con ellos. Es el mismo viaje que hacen las
3482
+ * acciones y el estado del registro (ver `PageActionsHostContext`), en sentido contrario: allá
3483
+ * la página manda contenido al encabezado, aquí le manda una decisión.
3484
+ *
3485
+ * Fuera de un `MainLayout` el contexto es `null` y no pasa nada: el encabezado de ese proyecto
3486
+ * se queda como estaba.
3487
+ */
3488
+ declare const StickyPageHeaderContext: React.Context<StickyPageHeaderHost | null>;
3489
+ /** Lo lee el encabezado para saber si le toca pegarse. */
3490
+ declare const useStickyPageHeaderHost: () => StickyPageHeaderHost | null;
3491
+ /**
3492
+ * Pide, desde una página, que el renglón del título se quede pegado al tope mientras se scrollea.
3493
+ *
3494
+ * useStickyPageHeader(true);
3495
+ *
3496
+ * El pedido se retira solo al desmontarse la página, así que la siguiente ruta arranca con el
3497
+ * encabezado como lo haya pedido ella. Pasar `false` es no pedir nada —sirve para apagarlo desde
3498
+ * una prop sin romper el orden de los hooks—.
3499
+ *
3500
+ * Pedirlo cambia además cómo se mide el área de trabajo: en vez de quedarse en el hueco visible
3501
+ * crece con su contenido, como un documento. No es un efecto colateral sino la condición de que
3502
+ * la banda se quede pegada en todo el largo —`position: sticky` no se despega de su bloque
3503
+ * contenedor—, pero conviene saberlo: una página que necesite el alto repartido para que su
3504
+ * tabla scrollee por dentro (`<Base height={1}>`) no es candidata a encabezado pegado.
3505
+ */
3506
+ declare const useStickyPageHeader: (pedido: boolean) => void;
3507
+
3404
3508
  /**
3405
3509
  * Contenido por defecto de cada snack dentro de `ObjectProgressStack`.
3406
3510
  * Muestra una barra de progreso (determinada si `progress` viene definido,
@@ -3657,5 +3761,5 @@ interface UseColorModeResult {
3657
3761
  }
3658
3762
  declare function useColorMode(): UseColorModeResult;
3659
3763
 
3660
- export { APIContext, APIProvider, AccountMenuContent, ActiveCell, ActiveIcon, Base, ButtonWithDrawer, COLOR_SCHEME_SELECTOR, CSVUpload, ChipCell, ConfirmDialog, ContentLayout, ControlledAddressAutocomplete, ControlledAmountWithCurrency, ControlledAutocomplete, ControlledColor, ControlledDate$1 as ControlledDate, ControlledDate as ControlledDate_v2, ControlledDropdown, ControlledFileField$1 as ControlledFileField, ControlledFileField as ControlledFileField_v2, FileUploadBox as ControlledFileUploadBox, ControlledNumber, ControlledPhoneNumber, ControlledSelect$1 as ControlledSelect, ControlledSelect as ControlledSelect_v2, ControlledSlider as ControlledSimpleSlider, ControlledSlider$1 as ControlledSlider, ControlledSwitch, ControlledText, ControlledTimePicker, ControlledToggleButtons, CoverPage, CreateButtonBase, CreateButtonWithMenuOptions, CrudDropdown, CustomNoRows, DEFAULT_FORM_BREAKPOINTS, DEFAULT_PAGINATION, DeleteButton, DeleteConfirmationDialog, DetailFormDialog as DetailFormDialog_v2, DetailFormDrawer as DetailFormDrawer_v2, DetailForm as DetailForm_v2, DetailPage$1 as DetailPage, DetailPage as DetailPage_v2, DrawerGrid as DrawerGrid_v2, EditButton, ExportCSV$1 as ExportCSV, ExportCSV as ExportCSV_v2, ExtraButtons, FORM_CONTAINER_NAME, GlobalSearch, HEADER_CONTAINER, HEADER_NARROW, HistorialDrawer, KpiCard, LAYER_ORDER, ListPage, Loadable, LoadingComponent, Logo, MainDrawer, MainDrawer$1 as MainDrawer_v2, MainLayout, MenuItemWithLoading, ModuleCard, MoreOptions, MyGridEditSingleSelect, NavigationContext, NavigationProvider, NormalOrIcon, NotAllowed, NotFound, NotificationItem, NotificationsBell, ObjectProgressStack, PAGE_SIZE_OPTIONS, PageActionsHostContext, PageBadgeHostContext, PageInfo, PageInfoHostContext, Panel, PollingCountdownChip, PulseDot, RESPONSIVE_ACTION_MODES, ResponsiveActions, SIDE_PANEL_WIDTH_VAR, SaveCancelButton, ServerGrid as ServerGrid_v2, SidePanelHostContext, StatusBadge, StyledMenu, Tabs, Transitions, TrueFalse, UncontrolledText, changeTitle, closeProgressSnack, composeGridProps, deleteColumn$1 as deleteColumn, deleteColumn as deleteColumn_v2, editColumn, filterQuery, formContainerSx, formGridSx, formParser, headerContainerSx, _default as headerReducer, manualCacheRefresh, mergeSettings, openProgressSnack, query, renderChipCell, renderEditCellWithErrorTooltip, resolveChipOption, resolveInitialState, resolveStatusColor, setErrors, _default$1 as snackProgressReducer, statusColors, tags, theme, togglableFields, updateProgressSnackData, useAPI, useColorMode, useDetailForm, useHasPermission, useHasPermission_v2, useKeyboardShortcut, useMutationHandler, useNavigation, usePageActionsHost, usePageBadgeHost, usePageInfoHost, useServerGrid, useSidePanelHost, valueLabel };
3661
- export type { APIcontextProps, AccountMenuContentProps, AccountMenuItem, AddressValue, AppTheme, AutocompleteOption, ChipCellProps, ChipColor, ChipOption, ColorMode, ComoOpcionesProps, ConfirmDialogProps, ControlledAutocompleteProps, ControlledInput, CustomFilterDef, CustomToolbarProps, DeleteGridColumnsProps$1 as DeleteGridColumnsProps, DetachedPage, DetailExtraButton, DetailFormApi, DetailFormConfig, DetailFormController, DetailFormDialogProps, DetailFormDrawerNavigation, DetailFormDrawerProps, DetailFormProps, DetailFormStatus, DetailPageV2Props, DetailRenderProps, DrawerGridDrawerConfig, DrawerGridEditConfig, DrawerGridProps, EditGridColumnsProps, EditReadOnlyFields, ExportCSVProps as ExportCSVProps_v2, FieldFilter, FieldProps$1 as FieldProps, FieldValidationProps, FilterInput, FormBreakpoint, FormGridSxOptions, GlobalSearchOption, GlobalSearchProps, GridArgs, GridColDefPropsOverrides, GridLayerContribution, GridLayerId, GridLayerMap, JSONFormProps, JSONParserProps, KeyboardShortcut, KpiCardProps, MainDrawerV2Props, MainLayoutFooterConfig, MainLayoutPageHeaderProps, MainLayoutProps, MainLayoutSidebarFooterProps, MyDataGridProps, MyGridFilterModel, MyTab, MyTabProps, NotificationItemProps, NotificationsApi, NotificationsBellProps, PageActionsHost, PageBadgeHost, PageInfoHost, PageInfoProps, PageType, PanelProps, PollingCountdownChipProps, ProgressStatusProps, PulseDotProps, ResponsiveAction, ResponsiveActionsMode, ResponsiveActionsProps, RowsSnapshot, ServerGridArgs, ServerGridCreateApi, ServerGridDataApi, ServerGridDeleteApi, ServerGridEditApi, ServerGridEditToggleApi, ServerGridHandle, ServerGridProps, ServerGridSnapshot, ServerGridState, SidePanelHost, StatusColor, UseColorModeResult, UseServerGridOptions };
3764
+ export { APIContext, APIProvider, AccountMenuContent, ActiveCell, ActiveIcon, Base, ButtonWithDrawer, COLOR_SCHEME_SELECTOR, CSVUpload, ChipCell, ConfirmDialog, ContentLayout, ControlledAddressAutocomplete, ControlledAmountWithCurrency, ControlledAutocomplete, ControlledColor, ControlledDate$1 as ControlledDate, ControlledDate as ControlledDate_v2, ControlledDropdown, ControlledFileField$1 as ControlledFileField, ControlledFileField as ControlledFileField_v2, FileUploadBox as ControlledFileUploadBox, ControlledNumber, ControlledPhoneNumber, ControlledSelect$1 as ControlledSelect, ControlledSelect as ControlledSelect_v2, ControlledSlider as ControlledSimpleSlider, ControlledSlider$1 as ControlledSlider, ControlledSwitch, ControlledText, ControlledTimePicker, ControlledToggleButtons, CoverPage, CreateButtonBase, CreateButtonWithMenuOptions, CrudDropdown, CustomNoRows, DEFAULT_FORM_BREAKPOINTS, DEFAULT_PAGINATION, DeleteButton, DeleteConfirmationDialog, DetailFormDialog as DetailFormDialog_v2, DetailFormDrawer as DetailFormDrawer_v2, DetailForm as DetailForm_v2, DetailPage$1 as DetailPage, DetailPage as DetailPage_v2, DrawerGrid as DrawerGrid_v2, EditButton, ExportCSV$1 as ExportCSV, ExportCSV as ExportCSV_v2, ExtraButtons, FORM_CONTAINER_NAME, GlobalSearch, HEADER_CONTAINER, HEADER_NARROW, HistorialDrawer, KpiCard, LAYER_ORDER, ListPage, Loadable, LoadingComponent, Logo, MainDrawer, MainDrawer$1 as MainDrawer_v2, MainLayout, MenuItemWithLoading, ModuleCard, MoreOptions, MyGridEditSingleSelect, NavigationContext, NavigationProvider, NormalOrIcon, NotAllowed, NotFound, NotificationItem, NotificationsBell, ObjectProgressStack, PAGE_SIZE_OPTIONS, PageActionsHostContext, PageBadgeHostContext, PageInfo, PageInfoHostContext, Panel, PollingCountdownChip, PulseDot, RESPONSIVE_ACTION_MODES, ResponsiveActions, SIDE_PANEL_WIDTH_VAR, SaveCancelButton, ServerGrid as ServerGrid_v2, SidePanelHostContext, StatusBadge, StickyPageHeaderContext, StyledMenu, Tabs, Transitions, TrueFalse, UncontrolledText, changeTitle, closeProgressSnack, composeGridProps, deleteColumn$1 as deleteColumn, deleteColumn as deleteColumn_v2, editColumn, filterQuery, formContainerSx, formGridSx, formParser, headerContainerSx, _default as headerReducer, manualCacheRefresh, mergeSettings, openProgressSnack, query, renderChipCell, renderEditCellWithErrorTooltip, resolveChipOption, resolveInitialState, resolveStatusColor, setErrors, _default$1 as snackProgressReducer, statusColors, tags, theme, togglableFields, updateProgressSnackData, useAPI, useColorMode, useDetailForm, useHasPermission, useHasPermission_v2, useKeyboardShortcut, useMutationHandler, useNavigation, usePageActionsHost, usePageBadgeHost, usePageInfoHost, useServerGrid, useSidePanelHost, useStickyPageHeader, useStickyPageHeaderHost, valueLabel };
3765
+ export type { APIcontextProps, AccountMenuContentProps, AccountMenuItem, AddressValue, AppTheme, AutocompleteOption, ChipCellProps, ChipColor, ChipOption, ColorMode, ComoOpcionesProps, ConfirmDialogProps, ControlledAutocompleteProps, ControlledInput, CustomFilterDef, CustomToolbarProps, DeleteGridColumnsProps$1 as DeleteGridColumnsProps, DetachedPage, DetailExtraButton, DetailFormApi, DetailFormConfig, DetailFormController, DetailFormDialogProps, DetailFormDrawerNavigation, DetailFormDrawerProps, DetailFormProps, DetailFormStatus, DetailPageV2Props, DetailRenderProps, DrawerGridDrawerConfig, DrawerGridEditConfig, DrawerGridProps, EditGridColumnsProps, EditReadOnlyFields, ExportCSVProps as ExportCSVProps_v2, FieldFilter, FieldProps$1 as FieldProps, FieldValidationProps, FilterInput, FormBreakpoint, FormGridSxOptions, GlobalSearchOption, GlobalSearchProps, GridArgs, GridColDefPropsOverrides, GridLayerContribution, GridLayerId, GridLayerMap, JSONFormProps, JSONParserProps, KeyboardShortcut, KpiCardProps, MainDrawerV2Props, MainLayoutFooterConfig, MainLayoutPageHeaderProps, MainLayoutProps, MainLayoutSidebarFooterProps, MyDataGridProps, MyGridFilterModel, MyTab, MyTabProps, NotificationItemProps, NotificationsApi, NotificationsBellProps, PageActionsHost, PageBadgeHost, PageInfoHost, PageInfoProps, PageType, PanelProps, PollingCountdownChipProps, ProgressStatusProps, PulseDotProps, ResponsiveAction, ResponsiveActionsMode, ResponsiveActionsProps, RowsSnapshot, ServerGridArgs, ServerGridCreateApi, ServerGridDataApi, ServerGridDeleteApi, ServerGridEditApi, ServerGridEditToggleApi, ServerGridHandle, ServerGridProps, ServerGridSnapshot, ServerGridState, SidePanelHost, StatusColor, StickyPageHeaderHost, UseColorModeResult, UseServerGridOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acvl/frontend-components",
3
- "version": "0.0.75",
3
+ "version": "0.0.77",
4
4
  "description": "Component library for ACV frontend projects.",
5
5
  "homepage": "https://github.com/ACV-Logistics/acv-frontend-components#readme",
6
6
  "access": "public",