Modules
MishkaGervaz is a Spark-based DSL library that provides declarative admin table and form configuration for Ash Framework resources.
Behaviour for UI component adapters.
Ash Domain extension for MishkaGervaz shared table and form configuration.
Introspection helpers for MishkaGervaz.Domain.
Form-specific introspection for domains using MishkaGervaz.Domain.
Table-specific introspection for domains using MishkaGervaz.Domain.
Delegate module for domain introspection.
DSL definitions for MishkaGervaz.
DSL section for domain-level navigation configuration.
Entity struct for navigation menu group configuration.
Splode-based error handling for MishkaGervaz.
Action execution errors.
Raised when an action fails to execute.
Data-related errors (loading, querying, fetching).
Raised when data loading fails.
Unknown/unclassified errors.
Behaviour for form field type renderers.
Behaviour for form layout templates.
Form DSL definitions for MishkaGervaz.
DataLoader entity DSL definition for form configuration.
Domain-level form defaults inherited by every resource that uses
MishkaGervaz.Resource under this domain.
Events entity DSL definition for form configuration.
Fields section — declares form fields manually or via auto-discovery.
Groups section — bundles fields into named groups for layout and access control.
Hooks section DSL definition for form configuration.
Identity section — naming and routing for a form.
Layout section — grid, mode, step navigation, and the form chrome
(header / footer / notice).
Presentation section — UI adapter, template, features, and theming.
Source section — action mapping, preloading, actor resolution, and per-mode access control.
State section DSL definition for form configuration.
Submit entity — configures the create / update / cancel buttons.
Uploads section — file upload entities tied to fields of type
:upload.
Per-mode (or global) access gate inside the source block.
Auto-discover form fields from the resource's public Ash attributes.
Per-field defaults applied to every auto-discovered field unless an
explicit override block changes them. Lives inside
MishkaGervaz.Form.Entities.AutoFields.
Per-field override applied on top of an auto-discovered field. Lets
you change the inferred type, flip required / visible / readonly
flags, attach a custom format function, or replace the ui block
outright. Lives inside MishkaGervaz.Form.Entities.AutoFields.
Default UI options applied to every auto-discovered field — boolean
widget choice, textarea threshold, select prompt, and similar
rendering hints. Lives inside MishkaGervaz.Form.Entities.AutoFields.
Data-loader module overrides — replace the default record / tenant / relation / hook loaders with your own implementations.
Event-handler module overrides — replace the default event-handling pipeline (or any sub-handler) with your own implementations.
Form field — name, type, validation, access predicates, and an
optional ui sub-entity for label / placeholder / styling plus an
optional preload sub-entity for relation field eager-loading.
Three-tier preload configuration for a relation Field.
UI/presentation configuration for a MishkaGervaz.Form.Entities.Field
— label, placeholder, description, icon, CSS classes, debounce
override, grid span, plus add/remove labels for repeater controls.
Form footer — content rendered below the submit row.
Form field group — bundles fields into a named, layout-aware unit.
UI/presentation configuration for a MishkaGervaz.Form.Entities.Group
— label, icon, description, container classes, and a per-group columns
override.
Form header — static title + description pair rendered above the fields, with optional icon and a custom HEEx render escape hatch.
Sub-field declaration inside a :nested form field — used for
embedded resources and constrained {:array, :map} attributes.
UI/presentation configuration for a
MishkaGervaz.Form.Entities.NestedField — label, placeholder,
description, CSS class, rows (for textarea sub-fields), and grid
span.
Static form notice — alerts and banners with a known position, validation binding, dismiss tracking, and master-only restriction.
UI/presentation configuration for a MishkaGervaz.Form.Entities.Notice
— wrapper CSS classes and template-specific extras.
Wizard / tabs step — a named bundle of groups with optional navigation guards.
UI/presentation configuration for a MishkaGervaz.Form.Entities.Step
— label, icon, description, and step-container CSS classes.
Submit / cancel button block — the singleton entity that owns the
three button sub-entities (create, update, cancel), the ui
styling sub-entity, and the position field (:top, :bottom, or
:both).
Single submit / cancel button configuration.
Shared button styling for a MishkaGervaz.Form.Entities.Submit
block — submit-button class, cancel-button class, and the wrapper
container class.
File upload configuration — accept rules, count and size limits, plus optional dropzone text and preview UI.
UI/presentation configuration for a MishkaGervaz.Form.Entities.Upload
— label, icon, dropzone classes, and preview-area classes.
Resolves the final form submit configuration by merging the resource-level
submit (built from the DSL entity) with the domain-level submit defaults.
Default form template for MishkaGervaz.
Compiles the domain-level form configuration into a single map and
persists it under the :form key of :mishka_gervaz_domain_config.
Compiles the form DSL state into a single runtime-friendly map and
persists it under :mishka_gervaz_form_config.
Fills the form DSL state with sensible defaults before downstream transformers run.
Resolves field configurations from the form DSL.
Built-in form field type registry.
Array-of-maps repeatable field type.
Checkbox input field type.
Combobox field type: text input with dropdown suggestions.
Date picker field type. Validates ISO-8601 date strings.
DateTime picker field type. Accepts both ISO-8601 naive and zoned strings.
File upload field type.
Hidden input field type.
JSON editor field type.
Multi-select dropdown field type.
Nested / embedded form field type. Used for inputs_for and constrained-map fields.
Numeric input field type.
Password input field type.
Range slider field type. Validates numeric input.
Relation field type for selecting related records in forms.
Single-select dropdown field type. Trims string values on sanitize.
String list field type.
Default text input field type. Strips HTML tags and trims whitespace on sanitize.
Multi-line text input field type. Pass-through sanitization (preserves newlines and markup).
Toggle switch field type. Boolean variant rendered as a switch instead of a checkbox.
Upload field type for inline positioning of uploads within form fields.
Shared helpers for MishkaGervaz.Form.Verifiers.*.
Validates the chrome entities (header, footer, notice) declared inside
the layout section of MishkaGervaz form DSL.
Validates the fields section of MishkaGervaz form DSL.
Validates the groups section of MishkaGervaz form DSL.
Validates the identity section of MishkaGervaz form DSL.
Validates the source.preload configuration of MishkaGervaz form DSL.
Validates the source section of MishkaGervaz form DSL.
Validates the step configuration within the layout section of
MishkaGervaz form DSL.
Validates the uploads section of MishkaGervaz form DSL.
Handles async data loading for MishkaGervaz forms.
Shared helpers for MishkaGervaz.Form.Web.DataLoader.
Executes hooks during form data loading.
Loads records for edit mode and creates AshPhoenix.Form for forms.
Loads options for relation/select fields in forms.
Resolves tenant and actions for form operations.
Handles all form events for MishkaGervaz.
Shared helpers for MishkaGervaz.Form.Web.Events and its sub-handlers.
Executes lifecycle hooks during form events.
Handles relation field events for search, multi-select, and dropdown state.
Sanitizes form input values.
Handles wizard step navigation events.
Handles form submission (phx-submit events).
Handles file upload events.
Handles form validation (phx-change events).
LiveComponent for MishkaGervaz admin forms.
Bridge between LiveComponent and Form Templates.
Single state struct for a MishkaGervaz form LiveView.
Handles access control for form operations.
Builds field configuration from DSL and resource attributes.
Builds group layout configuration from DSL.
Shared helpers for MishkaGervaz.Form.Web.State.
Resolves UI adapter, template, and presentation options for forms.
Static form configuration that never changes after initialization.
Builds wizard/tabs step configuration from DSL.
Shared utility functions for file upload wiring in MishkaGervaz forms.
Default Gettext backend for MishkaGervaz.
Shared helper functions for MishkaGervaz.
Provides Gettext macros with configurable backend support.
Ash extension for MishkaGervaz admin UI DSL.
Introspection helpers for MishkaGervaz.Resource.
Form-specific introspection for resources using MishkaGervaz.Resource.
Table-specific introspection for resources using MishkaGervaz.Resource.
Delegate module for resource introspection.
Resolves the final table archive configuration by merging the resource-level
archive map (built from the DSL) with the domain-level archive defaults.
Behaviour for row action type renderers.
Behaviour for column type renderers.
Behaviour for filter type implementations.
Behaviour for layout templates.
Behaviour for type registry modules.
Table DSL definitions for MishkaGervaz.
Bulk actions section DSL definition for table configuration.
Columns section DSL definition for table configuration.
DataLoader entity DSL definition for table configuration.
DSL section for domain-level table configuration.
Events entity DSL definition for table configuration.
Filter groups section DSL definition for table configuration.
Filters section DSL definition for table configuration.
Hooks section DSL definition for table configuration.
Identity section DSL definition for table configuration.
Layout section DSL definition for table configuration.
Pagination entity DSL definition for table configuration.
Presentation section DSL definition for table configuration.
Realtime entity DSL definition for table configuration.
DSL section for auto-refresh configuration at the resource level.
Row section DSL definition for table configuration.
Row actions section DSL definition for table configuration.
Source section DSL definition for table configuration.
State section DSL definition for table configuration.
Empty and Error state entities DSL definition for table configuration.
DSL section for URL state synchronization at the resource level.
Entity struct for per-action lifecycle hooks (row + bulk).
Configuration for auto-discovering columns from Ash resource attributes.
Default options for auto-discovered columns.
Override configuration for a specific auto-discovered column.
Default UI options for auto-discovered columns.
Entity struct for bulk action configuration.
UI configuration for a bulk action.
Entity struct for table column configuration.
UI/presentation configuration for a column.
Entity struct for data_loader configuration.
Entity struct for a separator in dropdown menus.
Entity struct for empty state configuration.
Entity struct for error state configuration.
Entity struct for events configuration.
Entity struct for table filter configuration.
Preload configuration for relation filters.
UI configuration for a filter.
Entity struct for table filter group configuration.
UI/presentation configuration for a filter group.
Entity struct for table footer configuration.
Entity struct for table header configuration.
Entity struct for static table notices (alerts/banners).
UI/presentation configuration for a table notice.
Entity struct for pagination configuration.
UI/presentation configuration for pagination.
Entity struct for realtime configuration.
Entity struct for row action configuration.
UI configuration for a row action.
Entity struct for a dropdown menu containing row actions.
Entity struct for row override configuration.
Media gallery template for image/file-heavy data.
Shared rendering functions used by all templates.
Default table template with rows and columns layout.
Builds the domain-level configuration from the DSL state.
Builds the final runtime configuration from the DSL state.
Shared helper functions for MishkaGervaz transformers.
Merges default values into the DSL configuration.
Resolves column configurations from the DSL.
Built-in action type registry.
Accordion action type - renders an expand/collapse button for row details.
Destroy action type - renders a delete button with confirmation.
Edit action type - renders a button that sends the record to the form component.
Event action type - renders a button that triggers a LiveView event.
Link action type - renders a navigation link.
Permanent destroy action type - renders a button to permanently delete archived records.
Row click action type - makes the entire row clickable.
Unarchive action type - renders a restore button for archived records.
Update action type - renders a button that triggers an Ash update action.
Built-in column type registry.
Array/List column type.
Badge/Status column type.
Boolean column type with icon display.
Date column type.
DateTime column type.
Link column type.
Numeric column type.
Default text column type.
UUID column type.
Built-in filter type registry.
Boolean checkbox filter type.
Date picker filter type.
Date range filter type.
Number input filter type.
Relationship filter type for selecting related records.
Select dropdown filter type.
Text search filter type.
Shared helpers for MishkaGervaz.Table.Verifiers.*.
Validates the bulk_actions section of MishkaGervaz DSL.
Validates the columns section of MishkaGervaz DSL.
Validates the domain table configuration.
Validates the filters section of MishkaGervaz DSL.
Validates the identity section of MishkaGervaz DSL.
Validates the chrome entities (header, footer, notice) declared inside the table layout section.
Validates pagination configuration at the resource level.
Validates the row_actions section of MishkaGervaz DSL.
Validates the source section of MishkaGervaz DSL.
Built-in state-transition rules for tables.
Handles async data loading with streams for MishkaGervaz tables.
Parses raw filter values from form submissions.
Pure data helpers for MishkaGervaz.Table.Web.DataLoader.
Executes hooks during data loading.
Handles pagination logic for data loading.
Builds Ash queries with filters and sorting from table state.
Handles paginated loading of relation filter options.
Resolves tenant and read actions based on state.
Handles all table events for MishkaGervaz.
Handles bulk action execution for Events module.
Handles hook execution for Events module.
Handles record operations for Events module.
Handles relation filter events for dynamic search, load more, and multi-select.
Handles input sanitization for Events module.
Handles selection operations for Events module.
LiveComponent for MishkaGervaz admin tables.
Auto-refresh functionality for MishkaGervaz tables.
Bridge between LiveComponent and Templates.
Single state struct for MishkaGervaz table.
Handles access control for records and actions.
Builds row actions, dropdowns, and bulk actions from DSL configuration.
Builds column configuration from DSL and resource attributes.
Builds filter configuration from DSL and resource attributes.
Helper functions for MishkaGervaz.Table.Web.State.
Resolves UI adapter, template, and presentation options.
Static table configuration that never changes after initialization.
Handles URL synchronization for table state.
URL state synchronization for bookmarkable table views.
Dynamic UI adapter for database-driven components.
UI adapter for media gallery template.
Default Tailwind CSS UI adapter.