@wgalleti/primevue-components 0.4.0 → 0.6.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.
@@ -1 +1 @@
1
- .w-crud-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-crud-header-content{min-width:0}.w-crud-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-crud-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-crud-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-crud-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1.25rem}.w-crud-kpi{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background)}.w-crud-kpi-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);flex-shrink:0;font-size:1.125rem}.w-crud-kpi-icon--primary{background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-crud-kpi-icon--success{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-kpi-icon--warning{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-crud-kpi-icon--danger{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-crud-kpi-icon--info{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-crud-kpi-content{min-width:0}.w-crud-kpi-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em;line-height:1;margin-bottom:.25rem}.w-crud-kpi-value{font-size:1.25rem;font-weight:700;color:var(--p-text-color);letter-spacing:-.02em;line-height:1}.w-crud-table{border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);overflow:hidden}.w-crud-table .p-datatable{font-size:.8125rem}.w-crud-table .p-datatable-header{background:transparent;border-bottom:1px solid var(--p-content-border-color);padding:.75rem 1rem}.w-crud-table .p-datatable-thead>tr>th{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--p-text-muted-color);background:var(--p-content-background)}.w-crud-table .p-datatable-tbody>tr>td{padding-top:.625rem;padding-bottom:.625rem}.w-crud-table .p-datatable-paginator-bottom{border-top:1px solid var(--p-content-border-color)}.w-crud-paginator .p-paginator-content{justify-content:flex-end}.w-crud-paginator .p-paginator-current{font-size:.75rem;color:var(--p-text-muted-color);margin-right:auto!important}.w-crud-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem 0}.w-crud-toolbar-start{display:flex;align-items:center;gap:.75rem}.w-crud-toolbar-end{display:flex;align-items:center;gap:.5rem}.w-crud-actions-header .p-datatable-column-header-content{justify-content:center}.w-crud-actions{display:flex;align-items:center;justify-content:center;gap:.125rem}.w-crud-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem}.w-crud-empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-empty-title{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-crud-empty-text{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.25rem}.p-datatable-header-cell.text-right .p-datatable-column-header-content{justify-content:flex-end}.p-datatable-header-cell.text-center .p-datatable-column-header-content{justify-content:center}.p-dialog.w-crud-form-dialog>.p-dialog-header{padding-bottom:.5rem}.p-dialog.w-crud-form-dialog>.p-dialog-content{padding-bottom:.75rem}.w-crud-form{display:flex;flex-direction:column;gap:1.5rem}.w-crud-form-group-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--p-surface-200)}.dark .w-crud-form-group-header{border-bottom-color:var(--p-surface-700)}.w-crud-form-group-title{font-size:.875rem;font-weight:600;color:var(--p-text-color);margin:0}.w-crud-form-group-desc{font-size:.75rem;color:var(--p-text-muted-color);margin:.25rem 0 0}.w-crud-form-cep-error{display:block;font-size:.75rem;color:var(--p-red-500);margin-top:.25rem}.w-crud-form-cep-spinner{margin-left:.375rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-crud-form-fields{display:grid;grid-template-columns:repeat(var(--w-form-cols, 2),1fr);gap:1rem 1rem}.w-crud-form-col-full{grid-column:span var(--w-col-span, 2)}.w-crud-form-col-half{grid-column:span var(--w-col-span, 1)}@media(max-width:640px){.w-crud-form-fields{grid-template-columns:1fr}.w-crud-form-col-full,.w-crud-form-col-half,.w-crud-form-switch{grid-column:1 / -1}}.w-crud-form-field{display:flex;flex-direction:column}.w-crud-form-required{color:var(--p-red-400, #f87171);margin-left:.125rem}.w-crud-form-label{display:block;font-weight:500;margin-bottom:.375rem;color:var(--p-text-color);font-size:.75rem}.w-crud-form-color-row{display:flex;align-items:center;gap:.5rem}.w-crud-form-switch{grid-column:span var(--w-col-span, 2);display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;background:var(--p-content-hover-background)}.w-crud-form-switch-label{font-size:.875rem;font-weight:500;color:var(--p-text-color);-webkit-user-select:none;user-select:none}.w-crud-form-error{display:block;font-size:.75rem;color:var(--p-red-400, #f87171);margin-top:.25rem}.w-crud-form-footer{display:flex;justify-content:space-between;gap:.5rem;padding-top:1rem;padding-bottom:.5rem;border-top:1px solid var(--p-content-border-color);margin-top:.25rem}.w-autocompletefk{position:relative;display:flex;align-items:stretch;width:100%}.w-autocompletefk .p-autocomplete{flex:1}.w-autocompletefk .p-autocomplete-input{padding-right:2.5rem}.w-autocompletefk-trigger{position:absolute;right:0;top:0;bottom:0;width:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--p-text-muted-color);cursor:pointer;border:none;background:transparent;border-left:1px solid var(--p-content-border-color);border-radius:0 var(--p-border-radius) var(--p-border-radius) 0;transition:color .15s,background-color .15s;font-size:.875rem}.w-autocompletefk-trigger:hover{color:var(--p-text-color);background:var(--p-content-hover-background)}.w-autocompletefk-trigger:disabled{opacity:.4;cursor:default}.w-autocompletefk-trigger i{font-size:.875rem}.w-autocompletefk-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.w-autocompletefk-toolbar-search{flex:1}.w-autocompletefk-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-autocompletefk-empty{text-align:center;padding:1.5rem;color:var(--p-text-muted-color);font-size:.875rem}.w-autocompletefk-footer{display:flex;justify-content:flex-end;gap:.5rem}.w-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-page-header-content{min-width:0}.w-page-header-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-page-header-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-page-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-detail-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.w-detail-header-icon{font-size:1.25rem;color:var(--p-primary-color)}.w-detail-header-content{min-width:0}.w-detail-header-title{font-size:1.125rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-detail-header-subtitle{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.125rem}.w-detail-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.w-empty-state-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-empty-state-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-empty-state-description{font-size:.8125rem;color:var(--p-text-muted-color);margin-top:.25rem;max-width:24rem}.w-info-card{padding:1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);margin-bottom:1rem}.w-info-card-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.75rem}.w-info-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.w-info-card-field{display:flex;flex-direction:column;gap:.125rem}.w-info-card-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em}.w-info-card-value{font-size:.875rem;font-weight:500;color:var(--p-text-color)}.w-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-section-header--compact{margin-bottom:.75rem}.w-section-header__main{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-section-header__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-section-header__content{min-width:0}.w-section-header__title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-section-header__title{font-size:1rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-section-header__subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-section-header__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section{border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background);padding:1rem}.w-form-section--muted{background:color-mix(in srgb,var(--p-content-background) 88%,var(--p-primary-color) 2%)}.w-form-section--outlined{background:transparent}.w-form-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-form-section__content{min-width:0}.w-form-section__title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-form-section__description{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-form-section__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section__body{display:flex;flex-direction:column;gap:1rem}.w-action-bar{display:flex;align-items:center;gap:.75rem}.w-action-bar--between{justify-content:space-between}.w-action-bar--start{justify-content:flex-start}.w-action-bar--end{justify-content:flex-end}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-action-bar__primary{min-width:0}.w-action-bar__secondary{justify-content:flex-end}.w-kpi-grid{display:grid;gap:.75rem}.w-kpi-grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.w-kpi-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.w-kpi-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.w-kpi-grid--dense{gap:.5rem}.w-kpi-card{display:flex;flex-direction:column;gap:.875rem;min-height:100%;padding:1rem 1.125rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-kpi-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.w-kpi-card__icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.875rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);font-size:1.125rem}.w-kpi-card__content{display:flex;flex-direction:column;gap:.25rem}.w-kpi-card__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);font-weight:600}.w-kpi-card__value{font-size:1.5rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--p-text-color)}.w-kpi-card__hint{font-size:.8125rem;color:var(--p-text-muted-color)}.w-kpi-card__footer{margin-top:auto}.w-kpi-card__trend{display:flex;justify-content:flex-end}.w-kpi-card__trend-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-kpi-card__trend-badge--up{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card__trend-badge--down{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card__loading{display:flex;align-items:center;gap:.875rem}.w-kpi-card__loading-content{display:flex;flex:1;flex-direction:column;gap:.5rem}.w-kpi-card--success .w-kpi-card__icon{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card--warning .w-kpi-card__icon{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-kpi-card--danger .w-kpi-card__icon{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card--info .w-kpi-card__icon{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-kpi-card--neutral .w-kpi-card__icon{background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-progress-flow{display:flex;gap:.75rem}.w-progress-flow--horizontal{align-items:stretch;flex-wrap:wrap}.w-progress-flow--vertical{flex-direction:column}.w-progress-flow__step{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-progress-flow--horizontal .w-progress-flow__step{flex:1 1 0;min-width:12rem;padding:.875rem 1rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-progress-flow__marker{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:999px;border:1px solid var(--p-content-border-color);color:var(--p-text-muted-color);background:transparent;font-size:.8125rem;font-weight:700}.w-progress-flow__content{min-width:0}.w-progress-flow__label{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-progress-flow__description{margin-top:.125rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-progress-flow__step--current .w-progress-flow__marker{border-color:var(--p-primary-color);background:color-mix(in srgb,var(--p-primary-color) 12%,transparent);color:var(--p-primary-color)}.w-progress-flow__step--done .w-progress-flow__marker{border-color:var(--p-green-500, #22c55e);background:color-mix(in srgb,var(--p-green-500, #22c55e) 12%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-view-toggle{display:inline-flex;align-items:center;gap:.125rem}.w-crud-toolbar--standalone{border:1px solid var(--p-content-border-color);background:var(--p-content-background);border-radius:.75rem;padding:.625rem .75rem;margin-bottom:.75rem}.w-crud-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.w-crud-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);cursor:default;transition:border-color .15s,box-shadow .15s}.w-crud-card:hover{border-color:color-mix(in srgb,var(--p-primary-color) 40%,var(--p-content-border-color))}.w-crud-card-body{display:flex;flex-direction:column;gap:.375rem;min-width:0}.w-crud-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.8125rem;min-width:0}.w-crud-card-row--title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.125rem}.w-crud-card-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);flex-shrink:0}.w-crud-card-value{min-width:0;text-align:right;color:var(--p-text-color)}.w-crud-card-row--title .w-crud-card-value{text-align:left}.w-crud-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:.125rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--p-content-border-color)}.w-crud-cards-loading{display:flex;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-cards-wrap .w-crud-paginator{margin-top:.75rem}.w-crud-card--selected{border-color:var(--p-primary-color);box-shadow:0 0 0 1px var(--p-primary-color)}.w-crud-content--rail{display:flex;align-items:flex-start;gap:.75rem}.w-crud-content-main{min-width:0}.w-crud-content--rail .w-crud-content-main{flex:1}.w-crud-rail{position:sticky;top:1rem;display:flex;flex-direction:column;align-items:center;gap:.375rem;flex-shrink:0;width:52px;padding:.5rem 0;border:1px solid var(--p-content-border-color);border-radius:15px;background:var(--p-content-background);box-shadow:var(--p-overlay-popover-shadow, 0 6px 20px rgba(15, 23, 42, .09))}.w-crud-rail-sep{width:60%;height:1px;background:var(--p-content-border-color);margin:.125rem 0}.w-crud-ctx-danger .p-contextmenu-item-link,.w-crud-ctx-danger .p-contextmenu-item-link .p-contextmenu-item-icon{color:var(--p-red-500, #ef4444)}.w-money-input__field{text-align:right}.w-transfer{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:stretch}.w-transfer--disabled{opacity:.6;pointer-events:none}.w-transfer__pane{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);padding:.625rem;min-width:0}.w-transfer__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.w-transfer__title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color)}.w-transfer__count{font-size:.6875rem;font-weight:600;color:var(--p-text-muted-color);background:var(--p-content-hover-background);border-radius:999px;padding:.0625rem .5rem}.w-transfer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem;max-height:14rem;overflow-y:auto}.w-transfer__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.375rem .5rem;border-radius:.5rem;font-size:.8125rem;color:var(--p-text-color);cursor:pointer;transition:background-color .12s}.w-transfer__item:hover{background:var(--p-content-hover-background)}.w-transfer__item i{color:var(--p-text-muted-color);font-size:.75rem}.w-transfer__empty{padding:.75rem .5rem;text-align:center;font-size:.75rem;color:var(--p-text-muted-color)}.w-transfer__controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem}@media(max-width:768px){.w-section-header,.w-form-section__header,.w-action-bar--stack{flex-direction:column;align-items:stretch}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{justify-content:flex-start}.w-kpi-grid--cols-2,.w-kpi-grid--cols-3,.w-kpi-grid--cols-4,.w-transfer{grid-template-columns:1fr}.w-transfer__controls{flex-direction:row}}
1
+ .w-crud-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-crud-header-content{min-width:0}.w-crud-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-crud-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-crud-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-crud-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1.25rem}.w-crud-kpi{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background)}.w-crud-kpi-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);flex-shrink:0;font-size:1.125rem}.w-crud-kpi-icon--primary{background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-crud-kpi-icon--success{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-kpi-icon--warning{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-crud-kpi-icon--danger{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-crud-kpi-icon--info{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-crud-kpi-content{min-width:0}.w-crud-kpi-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em;line-height:1;margin-bottom:.25rem}.w-crud-kpi-value{font-size:1.25rem;font-weight:700;color:var(--p-text-color);letter-spacing:-.02em;line-height:1}.w-crud-table{border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);overflow:hidden}.w-crud-table .p-datatable{font-size:.8125rem}.w-crud-table .p-datatable-header{background:transparent;border-bottom:1px solid var(--p-content-border-color);padding:.75rem 1rem}.w-crud-table .p-datatable-thead>tr>th{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--p-text-muted-color);background:var(--p-content-background)}.w-crud-table .p-datatable-tbody>tr>td{padding-top:.625rem;padding-bottom:.625rem}.w-crud-table .p-datatable-paginator-bottom{border-top:1px solid var(--p-content-border-color)}.w-crud-paginator .p-paginator-content{justify-content:flex-end}.w-crud-paginator .p-paginator-current{font-size:.75rem;color:var(--p-text-muted-color);margin-right:auto!important}.w-crud-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem 0}.w-crud-toolbar-start{display:flex;align-items:center;gap:.75rem}.w-crud-toolbar-end{display:flex;align-items:center;gap:.5rem}.w-crud-actions-header .p-datatable-column-header-content{justify-content:center}.w-crud-actions{display:flex;align-items:center;justify-content:center;gap:.125rem}.w-crud-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem}.w-crud-empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-empty-title{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-crud-empty-text{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.25rem}.p-datatable-header-cell.text-right .p-datatable-column-header-content{justify-content:flex-end}.p-datatable-header-cell.text-center .p-datatable-column-header-content{justify-content:center}.p-dialog.w-crud-form-dialog>.p-dialog-header{padding-bottom:.5rem}.p-dialog.w-crud-form-dialog>.p-dialog-content{padding-bottom:.75rem}.w-crud-form{display:flex;flex-direction:column;gap:1.5rem}.w-crud-form-group-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--p-surface-200)}.dark .w-crud-form-group-header{border-bottom-color:var(--p-surface-700)}.w-crud-form-group-title{font-size:.875rem;font-weight:600;color:var(--p-text-color);margin:0}.w-crud-form-group-desc{font-size:.75rem;color:var(--p-text-muted-color);margin:.25rem 0 0}.w-crud-form-cep-error{display:block;font-size:.75rem;color:var(--p-red-500);margin-top:.25rem}.w-crud-form-cep-spinner{margin-left:.375rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-crud-form-fields{display:grid;grid-template-columns:repeat(var(--w-form-cols, 2),1fr);gap:1rem 1rem}.w-crud-form-col-full{grid-column:span var(--w-col-span, 2)}.w-crud-form-col-half{grid-column:span var(--w-col-span, 1)}@media(max-width:640px){.w-crud-form-fields{grid-template-columns:1fr}.w-crud-form-col-full,.w-crud-form-col-half,.w-crud-form-switch{grid-column:1 / -1}}.w-crud-form-field{display:flex;flex-direction:column}.w-crud-form-required{color:var(--p-red-400, #f87171);margin-left:.125rem}.w-crud-form-label{display:block;font-weight:500;margin-bottom:.375rem;color:var(--p-text-color);font-size:.75rem}.w-crud-form-color-row{display:flex;align-items:center;gap:.5rem}.w-crud-form-switch{grid-column:span var(--w-col-span, 2);display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;background:var(--p-content-hover-background)}.w-crud-form-switch-label{font-size:.875rem;font-weight:500;color:var(--p-text-color);-webkit-user-select:none;user-select:none}.w-crud-form-error{display:block;font-size:.75rem;color:var(--p-red-400, #f87171);margin-top:.25rem}.w-crud-form-footer{display:flex;justify-content:space-between;gap:.5rem;padding-top:1rem;padding-bottom:.5rem;border-top:1px solid var(--p-content-border-color);margin-top:.25rem}.w-autocompletefk{position:relative;display:flex;align-items:stretch;width:100%}.w-autocompletefk .p-autocomplete{flex:1}.w-autocompletefk .p-autocomplete-input{padding-right:2.5rem}.w-autocompletefk-trigger{position:absolute;right:0;top:0;bottom:0;width:2.5rem;display:flex;align-items:center;justify-content:center;color:var(--p-text-muted-color);cursor:pointer;border:none;background:transparent;border-left:1px solid var(--p-content-border-color);border-radius:0 var(--p-border-radius) var(--p-border-radius) 0;transition:color .15s,background-color .15s;font-size:.875rem}.w-autocompletefk-trigger:hover{color:var(--p-text-color);background:var(--p-content-hover-background)}.w-autocompletefk-trigger:disabled{opacity:.4;cursor:default}.w-autocompletefk-trigger i{font-size:.875rem}.w-autocompletefk-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.w-autocompletefk-toolbar-search{flex:1}.w-autocompletefk-toolbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-autocompletefk-empty{text-align:center;padding:1.5rem;color:var(--p-text-muted-color);font-size:.875rem}.w-autocompletefk-footer{display:flex;justify-content:flex-end;gap:.5rem}.w-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.w-page-header-content{min-width:0}.w-page-header-title{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;color:var(--p-text-color);line-height:1.3}.w-page-header-subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-page-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-detail-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.w-detail-header-icon{font-size:1.25rem;color:var(--p-primary-color)}.w-detail-header-content{min-width:0}.w-detail-header-title{font-size:1.125rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-detail-header-subtitle{font-size:.75rem;color:var(--p-text-muted-color);margin-top:.125rem}.w-detail-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.w-empty-state-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:1rem;margin-bottom:1rem;background:var(--p-content-hover-background);color:var(--p-text-muted-color);font-size:1.5rem}.w-empty-state-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-empty-state-description{font-size:.8125rem;color:var(--p-text-muted-color);margin-top:.25rem;max-width:24rem}.w-info-card{padding:1.25rem;border-radius:.75rem;border:1px solid var(--p-content-border-color);background:var(--p-content-background);margin-bottom:1rem}.w-info-card-title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.75rem}.w-info-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.w-info-card-field{display:flex;flex-direction:column;gap:.125rem}.w-info-card-label{font-size:.6875rem;font-weight:500;color:var(--p-text-muted-color);text-transform:uppercase;letter-spacing:.05em}.w-info-card-value{font-size:.875rem;font-weight:500;color:var(--p-text-color)}.w-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-section-header--compact{margin-bottom:.75rem}.w-section-header__main{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-section-header__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:.75rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color)}.w-section-header__content{min-width:0}.w-section-header__title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-section-header__title{font-size:1rem;font-weight:600;color:var(--p-text-color);line-height:1.3}.w-section-header__subtitle{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-section-header__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section{border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background);padding:1rem}.w-form-section--muted{background:color-mix(in srgb,var(--p-content-background) 88%,var(--p-primary-color) 2%)}.w-form-section--outlined{background:transparent}.w-form-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.w-form-section__content{min-width:0}.w-form-section__title{font-size:.9375rem;font-weight:600;color:var(--p-text-color)}.w-form-section__description{margin-top:.125rem;font-size:.8125rem;color:var(--p-text-muted-color)}.w-form-section__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.w-form-section__body{display:flex;flex-direction:column;gap:1rem}.w-action-bar{display:flex;align-items:center;gap:.75rem}.w-action-bar--between{justify-content:space-between}.w-action-bar--start{justify-content:flex-start}.w-action-bar--end{justify-content:flex-end}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.w-action-bar__primary{min-width:0}.w-action-bar__secondary{justify-content:flex-end}.w-kpi-grid{display:grid;gap:.75rem}.w-kpi-grid--cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.w-kpi-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.w-kpi-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.w-kpi-grid--cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.w-kpi-grid--cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.w-kpi-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}.w-kpi-grid--dense{gap:.5rem}.w-kpi-card{display:flex;flex-direction:column;gap:.875rem;min-height:100%;padding:1rem 1.125rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-kpi-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.w-kpi-card__icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.875rem;background:color-mix(in srgb,var(--p-primary-color) 10%,transparent);color:var(--p-primary-color);font-size:1.125rem}.w-kpi-card__content{display:flex;flex-direction:column;gap:.25rem}.w-kpi-card__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);font-weight:600}.w-kpi-card__value{font-size:1.5rem;font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--p-text-color)}.w-kpi-card__hint{font-size:.8125rem;color:var(--p-text-muted-color)}.w-kpi-card__footer{margin-top:auto}.w-kpi-card__trend{display:flex;justify-content:flex-end}.w-kpi-card__trend-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-kpi-card__trend-badge--up{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card__trend-badge--down{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card__loading{display:flex;align-items:center;gap:.875rem}.w-kpi-card__loading-content{display:flex;flex:1;flex-direction:column;gap:.5rem}.w-kpi-card--success .w-kpi-card__icon{background:color-mix(in srgb,var(--p-green-500, #22c55e) 10%,transparent);color:var(--p-green-500, #22c55e)}.w-kpi-card--warning .w-kpi-card__icon{background:color-mix(in srgb,var(--p-yellow-500, #eab308) 10%,transparent);color:var(--p-yellow-500, #eab308)}.w-kpi-card--danger .w-kpi-card__icon{background:color-mix(in srgb,var(--p-red-500, #ef4444) 10%,transparent);color:var(--p-red-500, #ef4444)}.w-kpi-card--info .w-kpi-card__icon{background:color-mix(in srgb,var(--p-blue-500, #3b82f6) 10%,transparent);color:var(--p-blue-500, #3b82f6)}.w-kpi-card--neutral .w-kpi-card__icon{background:var(--p-content-hover-background);color:var(--p-text-muted-color)}.w-progress-flow{display:flex;gap:.75rem}.w-progress-flow--horizontal{align-items:stretch;flex-wrap:wrap}.w-progress-flow--vertical{flex-direction:column}.w-progress-flow__step{display:flex;align-items:flex-start;gap:.75rem;min-width:0}.w-progress-flow--horizontal .w-progress-flow__step{flex:1 1 0;min-width:12rem;padding:.875rem 1rem;border:1px solid var(--p-content-border-color);border-radius:1rem;background:var(--p-content-background)}.w-progress-flow__marker{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:999px;border:1px solid var(--p-content-border-color);color:var(--p-text-muted-color);background:transparent;font-size:.8125rem;font-weight:700}.w-progress-flow__content{min-width:0}.w-progress-flow__label{font-size:.875rem;font-weight:600;color:var(--p-text-color)}.w-progress-flow__description{margin-top:.125rem;font-size:.75rem;color:var(--p-text-muted-color)}.w-progress-flow__step--current .w-progress-flow__marker{border-color:var(--p-primary-color);background:color-mix(in srgb,var(--p-primary-color) 12%,transparent);color:var(--p-primary-color)}.w-progress-flow__step--done .w-progress-flow__marker{border-color:var(--p-green-500, #22c55e);background:color-mix(in srgb,var(--p-green-500, #22c55e) 12%,transparent);color:var(--p-green-500, #22c55e)}.w-crud-view-toggle{display:inline-flex;align-items:center;gap:.125rem}.w-crud-toolbar--standalone{border:1px solid var(--p-content-border-color);background:var(--p-content-background);border-radius:.75rem;padding:.625rem .75rem;margin-bottom:.75rem}.w-crud-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.w-crud-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);cursor:default;transition:border-color .15s,box-shadow .15s}.w-crud-card:hover{border-color:color-mix(in srgb,var(--p-primary-color) 40%,var(--p-content-border-color))}.w-crud-card-body{display:flex;flex-direction:column;gap:.375rem;min-width:0}.w-crud-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;font-size:.8125rem;min-width:0}.w-crud-card-row--title{font-size:.9375rem;font-weight:600;color:var(--p-text-color);margin-bottom:.125rem}.w-crud-card-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);flex-shrink:0}.w-crud-card-value{min-width:0;text-align:right;color:var(--p-text-color)}.w-crud-card-row--title .w-crud-card-value{text-align:left}.w-crud-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:.125rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--p-content-border-color)}.w-crud-cards-loading{display:flex;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--p-text-muted-color);font-size:1.5rem}.w-crud-cards-wrap .w-crud-paginator{margin-top:.75rem}.w-crud-card--selected{border-color:var(--p-primary-color);box-shadow:0 0 0 1px var(--p-primary-color)}.w-crud-content--rail{display:flex;align-items:flex-start;gap:.75rem}.w-crud-content-main{min-width:0}.w-crud-content--rail .w-crud-content-main{flex:1}.w-crud-rail{position:sticky;top:1rem;display:flex;flex-direction:column;align-items:center;gap:.375rem;flex-shrink:0;width:52px;padding:.5rem 0;border:1px solid var(--p-content-border-color);border-radius:15px;background:var(--p-content-background);box-shadow:var(--p-overlay-popover-shadow, 0 6px 20px rgba(15, 23, 42, .09))}.w-crud-rail-sep{width:60%;height:1px;background:var(--p-content-border-color);margin:.125rem 0}.w-crud-ctx-danger .p-contextmenu-item-link,.w-crud-ctx-danger .p-contextmenu-item-link .p-contextmenu-item-icon{color:var(--p-red-500, #ef4444)}.w-money-input__field{text-align:right}.w-transfer{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:stretch}.w-transfer--disabled{opacity:.6;pointer-events:none}.w-transfer__pane{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--p-content-border-color);border-radius:.75rem;background:var(--p-content-background);padding:.625rem;min-width:0}.w-transfer__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.w-transfer__title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color)}.w-transfer__count{font-size:.6875rem;font-weight:600;color:var(--p-text-muted-color);background:var(--p-content-hover-background);border-radius:999px;padding:.0625rem .5rem}.w-transfer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem;max-height:14rem;overflow-y:auto}.w-transfer__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.375rem .5rem;border-radius:.5rem;font-size:.8125rem;color:var(--p-text-color);cursor:pointer;transition:background-color .12s}.w-transfer__item:hover{background:var(--p-content-hover-background)}.w-transfer__item i{color:var(--p-text-muted-color);font-size:.75rem}.w-transfer__empty{padding:.75rem .5rem;text-align:center;font-size:.75rem;color:var(--p-text-muted-color)}.w-transfer__controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem}@media(max-width:768px){.w-section-header,.w-form-section__header,.w-action-bar--stack{flex-direction:column;align-items:stretch}.w-action-bar__primary,.w-action-bar__secondary,.w-action-bar__filters{justify-content:flex-start}.w-kpi-grid--cols-2,.w-kpi-grid--cols-3,.w-kpi-grid--cols-4,.w-transfer{grid-template-columns:1fr}.w-transfer__controls{flex-direction:row}}
@@ -3,13 +3,24 @@ interface ColumnMeta {
3
3
  field: string;
4
4
  header: string;
5
5
  }
6
+ /** Filtro em cascata já resolvido (nome do parâmetro + valor atual). */
7
+ interface DrilldownFilter {
8
+ field: string;
9
+ value: unknown;
10
+ required?: boolean;
11
+ }
6
12
  type __VLS_Props = {
7
13
  modelValue: string | number | Record<string, unknown> | null;
8
14
  endpoint: string;
9
15
  endpointParams?: Record<string, string | number | boolean>;
16
+ /** Filtro(s) em cascata resolvido(s): aplicado(s) como parâmetro na busca. Com
17
+ * `required` (default true), a busca só ocorre quando o valor estiver preenchido. */
18
+ drilldown?: DrilldownFilter | DrilldownFilter[];
10
19
  optionLabel?: string;
11
20
  optionValue?: string;
12
21
  placeholder?: string;
22
+ /** Placeholder exibido enquanto uma cascata obrigatória não estiver preenchida. */
23
+ blockedPlaceholder?: string;
13
24
  disabled?: boolean;
14
25
  showClear?: boolean;
15
26
  forceSelection?: boolean;
@@ -1,7 +1,12 @@
1
1
  import type { KpiItem } from '@/types/crud';
2
2
  type __VLS_Props = {
3
3
  items?: KpiItem[];
4
- columns?: 2 | 3 | 4;
4
+ /**
5
+ * Número fixo de colunas (2–6) ou 'auto' para preencher a largura com quantos
6
+ * KPIs couberem (responsivo, sem overflow). Use 'auto' em dashboards que devem
7
+ * aproveitar o máximo da tela.
8
+ */
9
+ columns?: 2 | 3 | 4 | 5 | 6 | 'auto';
5
10
  dense?: boolean;
6
11
  };
7
12
  declare var __VLS_1: {
@@ -13,7 +18,7 @@ type __VLS_Slots = {} & {
13
18
  item?: (props: typeof __VLS_1) => any;
14
19
  };
15
20
  declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
- columns: 2 | 3 | 4;
21
+ columns: 2 | 3 | 4 | 5 | 6 | "auto";
17
22
  items: KpiItem[];
18
23
  dense: boolean;
19
24
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -18,6 +18,19 @@ export type FieldType = 'text' | 'email' | 'password' | 'number' | 'currency' |
18
18
  export interface SelectOption {
19
19
  [key: string]: unknown;
20
20
  }
21
+ /**
22
+ * Filtro em cascata (drill-down) de um campo FK: torna a busca dependente do valor
23
+ * de outro campo do formulário, aplicando-o como filtro na requisição à API.
24
+ */
25
+ export interface FieldDependency {
26
+ /** Campo do formulário cujo valor alimenta o filtro (ex.: 'unidade_producao'). */
27
+ field: string;
28
+ /** Nome do parâmetro enviado à API. Default: o próprio `field`. */
29
+ param?: string;
30
+ /** Se true, a busca só ocorre quando o valor de origem estiver preenchido
31
+ * (cascata obrigatória). Default: true. */
32
+ required?: boolean;
33
+ }
21
34
  export interface FieldDef {
22
35
  field: string;
23
36
  label: string;
@@ -44,6 +57,14 @@ export interface FieldDef {
44
57
  searchFields?: string[];
45
58
  endpoint?: string;
46
59
  endpointParams?: Record<string, string | number | boolean>;
60
+ /** Filtro em cascata: torna esta FK dependente do valor de outro(s) campo(s) do
61
+ * formulário, aplicando-o(s) como filtro na busca da API (ex.: um "local" que só
62
+ * lista os da "unidade_producao" selecionada). Com `required` (default true), a
63
+ * busca só ocorre após o campo de origem estar preenchido. */
64
+ dependsOn?: FieldDependency | FieldDependency[];
65
+ /** Placeholder da FK enquanto uma cascata obrigatória (`dependsOn`) não estiver
66
+ * preenchida — ex.: "Selecione a unidade primeiro". */
67
+ blockedPlaceholder?: string;
47
68
  crudFields?: FieldDef[];
48
69
  crudColumns?: ColumnDef[];
49
70
  min?: number;
@@ -18,6 +18,19 @@ export type FieldType = 'text' | 'email' | 'password' | 'number' | 'currency' |
18
18
  export interface SelectOption {
19
19
  [key: string]: unknown;
20
20
  }
21
+ /**
22
+ * Filtro em cascata (drill-down) de um campo FK: torna a busca dependente do valor
23
+ * de outro campo do formulário, aplicando-o como filtro na requisição à API.
24
+ */
25
+ export interface FieldDependency {
26
+ /** Campo do formulário cujo valor alimenta o filtro (ex.: 'unidade_producao'). */
27
+ field: string;
28
+ /** Nome do parâmetro enviado à API. Default: o próprio `field`. */
29
+ param?: string;
30
+ /** Se true, a busca só ocorre quando o valor de origem estiver preenchido
31
+ * (cascata obrigatória). Default: true. */
32
+ required?: boolean;
33
+ }
21
34
  export interface FieldDef {
22
35
  field: string;
23
36
  label: string;
@@ -44,6 +57,14 @@ export interface FieldDef {
44
57
  searchFields?: string[];
45
58
  endpoint?: string;
46
59
  endpointParams?: Record<string, string | number | boolean>;
60
+ /** Filtro em cascata: torna esta FK dependente do valor de outro(s) campo(s) do
61
+ * formulário, aplicando-o(s) como filtro na busca da API (ex.: um "local" que só
62
+ * lista os da "unidade_producao" selecionada). Com `required` (default true), a
63
+ * busca só ocorre após o campo de origem estar preenchido. */
64
+ dependsOn?: FieldDependency | FieldDependency[];
65
+ /** Placeholder da FK enquanto uma cascata obrigatória (`dependsOn`) não estiver
66
+ * preenchida — ex.: "Selecione a unidade primeiro". */
67
+ blockedPlaceholder?: string;
47
68
  crudFields?: FieldDef[];
48
69
  crudColumns?: ColumnDef[];
49
70
  min?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wgalleti/primevue-components",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "publishConfig": {