@wgalleti/primevue-components 0.3.4
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/README.md +218 -0
- package/dist/components/crud/WCrudColumnRenderer.vue.d.ts +8 -0
- package/dist/components/crud/WCrudFormDialog.vue.d.ts +214 -0
- package/dist/components/crud/WCrudView.vue.d.ts +89 -0
- package/dist/components/form/WAutoCompleteFK.vue.d.ts +43 -0
- package/dist/components/form/WFormRenderer.vue.d.ts +41 -0
- package/dist/components/form/WMoneyInput.vue.d.ts +28 -0
- package/dist/components/form/WTransferList.vue.d.ts +25 -0
- package/dist/components/index.d.ts +18 -0
- package/dist/components/ui/WActionBar.vue.d.ts +27 -0
- package/dist/components/ui/WDetailHeader.vue.d.ts +29 -0
- package/dist/components/ui/WEmptyState.vue.d.ts +13 -0
- package/dist/components/ui/WFormSection.vue.d.ts +23 -0
- package/dist/components/ui/WInfoCard.vue.d.ts +11 -0
- package/dist/components/ui/WKpiCard.vue.d.ts +33 -0
- package/dist/components/ui/WKpiGrid.vue.d.ts +31 -0
- package/dist/components/ui/WPageHeader.vue.d.ts +27 -0
- package/dist/components/ui/WProgressFlow.vue.d.ts +33 -0
- package/dist/components/ui/WSectionHeader.vue.d.ts +25 -0
- package/dist/components/ui/WStatusTag.vue.d.ts +10 -0
- package/dist/composables/index.d.ts +6 -0
- package/dist/composables/useApi.d.ts +2 -0
- package/dist/composables/useApiError.d.ts +4 -0
- package/dist/composables/useAppConfirm.d.ts +4 -0
- package/dist/composables/useAppToast.d.ts +6 -0
- package/dist/composables/useCrudManager.d.ts +2 -0
- package/dist/composables/useFormatters.d.ts +19 -0
- package/dist/data-providers/axiosDataProvider.d.ts +3 -0
- package/dist/data-providers/index.d.ts +2 -0
- package/dist/data-providers/supabaseDataProvider.d.ts +54 -0
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +3287 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +2 -0
- package/dist/primevue-components.css +1 -0
- package/dist/types/api.d.ts +60 -0
- package/dist/types/components/crud/WCrudColumnRenderer.vue.d.ts +8 -0
- package/dist/types/components/crud/WCrudFormDialog.vue.d.ts +49 -0
- package/dist/types/components/crud/WCrudView.vue.d.ts +103 -0
- package/dist/types/components/form/WAutoCompleteFK.vue.d.ts +43 -0
- package/dist/types/components/form/WFormRenderer.vue.d.ts +40 -0
- package/dist/types/components/form/WMoneyInput.vue.d.ts +28 -0
- package/dist/types/components/form/WTransferList.vue.d.ts +25 -0
- package/dist/types/components/index.d.ts +18 -0
- package/dist/types/components/ui/WActionBar.vue.d.ts +25 -0
- package/dist/types/components/ui/WDetailHeader.vue.d.ts +24 -0
- package/dist/types/components/ui/WEmptyState.vue.d.ts +13 -0
- package/dist/types/components/ui/WFormSection.vue.d.ts +19 -0
- package/dist/types/components/ui/WInfoCard.vue.d.ts +11 -0
- package/dist/types/components/ui/WKpiCard.vue.d.ts +32 -0
- package/dist/types/components/ui/WKpiGrid.vue.d.ts +26 -0
- package/dist/types/components/ui/WPageHeader.vue.d.ts +22 -0
- package/dist/types/components/ui/WProgressFlow.vue.d.ts +28 -0
- package/dist/types/components/ui/WSectionHeader.vue.d.ts +22 -0
- package/dist/types/components/ui/WStatusTag.vue.d.ts +10 -0
- package/dist/types/composables/index.d.ts +6 -0
- package/dist/types/composables/useApi.d.ts +2 -0
- package/dist/types/composables/useApiError.d.ts +4 -0
- package/dist/types/composables/useAppConfirm.d.ts +4 -0
- package/dist/types/composables/useAppToast.d.ts +6 -0
- package/dist/types/composables/useCrudManager.d.ts +2 -0
- package/dist/types/composables/useFormatters.d.ts +19 -0
- package/dist/types/crud.d.ts +184 -0
- package/dist/types/data-providers/axiosDataProvider.d.ts +3 -0
- package/dist/types/data-providers/index.d.ts +2 -0
- package/dist/types/data-providers/supabaseDataProvider.d.ts +54 -0
- package/dist/types/dataProvider.d.ts +28 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/plugin.d.ts +2 -0
- package/dist/types/types/api.d.ts +60 -0
- package/dist/types/types/crud.d.ts +184 -0
- package/dist/types/types/dataProvider.d.ts +28 -0
- package/dist/types/types/index.d.ts +6 -0
- package/dist/types/types/plugin.d.ts +24 -0
- package/dist/types/utils/cep.d.ts +14 -0
- package/dist/types/utils/dates.d.ts +5 -0
- package/dist/types/utils/fieldMapper.d.ts +20 -0
- package/dist/types/utils/masks.d.ts +8 -0
- package/dist/utils/cep.d.ts +14 -0
- package/dist/utils/dates.d.ts +5 -0
- package/dist/utils/fieldMapper.d.ts +20 -0
- package/dist/utils/masks.d.ts +8 -0
- package/package.json +78 -0
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +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(2,1fr);gap:1rem 1rem}.w-crud-form-col-full{grid-column:span 2}.w-crud-form-col-half{grid-column:span 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 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-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}}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Formato padrao de resposta paginada da API (DRF).
|
|
4
|
+
*/
|
|
5
|
+
export interface PaginatedResponse<T> {
|
|
6
|
+
data: T[];
|
|
7
|
+
page: number;
|
|
8
|
+
page_size: number;
|
|
9
|
+
rows: number;
|
|
10
|
+
extras?: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Estado reativo de paginacao.
|
|
14
|
+
*/
|
|
15
|
+
export interface PaginationState {
|
|
16
|
+
page: number;
|
|
17
|
+
pageSize: number;
|
|
18
|
+
rows: number;
|
|
19
|
+
totalPages: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Estado de ordenacao server-side.
|
|
23
|
+
*/
|
|
24
|
+
export interface SortState {
|
|
25
|
+
field: string | null;
|
|
26
|
+
order: 1 | -1 | 0;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Opcoes do useApi composable.
|
|
30
|
+
*/
|
|
31
|
+
export interface UseApiOptions {
|
|
32
|
+
endpoint: string;
|
|
33
|
+
pageSize?: number;
|
|
34
|
+
searchDebounce?: number;
|
|
35
|
+
immediate?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Retorno do useApi composable.
|
|
39
|
+
*/
|
|
40
|
+
export interface UseApiReturn<T> {
|
|
41
|
+
items: Ref<T[]>;
|
|
42
|
+
loading: Ref<boolean>;
|
|
43
|
+
search: Ref<string>;
|
|
44
|
+
pagination: PaginationState;
|
|
45
|
+
extras: Ref<Record<string, unknown>>;
|
|
46
|
+
sort: SortState;
|
|
47
|
+
fetchItems(params?: Record<string, unknown>): Promise<void>;
|
|
48
|
+
refresh(): Promise<void>;
|
|
49
|
+
setSearch(value: string): void;
|
|
50
|
+
setFilter(key: string, value: unknown): void;
|
|
51
|
+
clearFilters(): void;
|
|
52
|
+
onPage(event: {
|
|
53
|
+
page: number;
|
|
54
|
+
rows: number;
|
|
55
|
+
}): void;
|
|
56
|
+
onSort(event: {
|
|
57
|
+
sortField: string;
|
|
58
|
+
sortOrder: 1 | -1 | 0;
|
|
59
|
+
}): void;
|
|
60
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ColumnDef } from '@/types/crud';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
column: ColumnDef;
|
|
4
|
+
value: unknown;
|
|
5
|
+
rowData: Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { FieldDef } from '@/types/crud';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
title: string;
|
|
5
|
+
fields: FieldDef[];
|
|
6
|
+
formData: Record<string, unknown>;
|
|
7
|
+
isEditing: boolean;
|
|
8
|
+
saving: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
width?: string;
|
|
11
|
+
};
|
|
12
|
+
declare var __VLS_20: `field-${string}`, __VLS_21: {
|
|
13
|
+
field: FieldDef;
|
|
14
|
+
formData: Record<string, unknown>;
|
|
15
|
+
isEditing: boolean;
|
|
16
|
+
setFormField: (f: string, v: unknown) => void;
|
|
17
|
+
}, __VLS_24: `image-${string}`, __VLS_25: {
|
|
18
|
+
field: FieldDef;
|
|
19
|
+
formData: Record<string, unknown>;
|
|
20
|
+
}, __VLS_27: {
|
|
21
|
+
saving: boolean;
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
};
|
|
24
|
+
type __VLS_Slots = {} & {
|
|
25
|
+
[K in NonNullable<typeof __VLS_20>]?: (props: typeof __VLS_21) => any;
|
|
26
|
+
} & {
|
|
27
|
+
[K in NonNullable<typeof __VLS_24>]?: (props: typeof __VLS_25) => any;
|
|
28
|
+
} & {
|
|
29
|
+
footer?: (props: typeof __VLS_27) => any;
|
|
30
|
+
};
|
|
31
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
32
|
+
"update:visible": (value: boolean) => any;
|
|
33
|
+
"update:field": (field: string, value: unknown) => any;
|
|
34
|
+
save: () => any;
|
|
35
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
36
|
+
"onUpdate:visible"?: ((value: boolean) => any) | undefined;
|
|
37
|
+
"onUpdate:field"?: ((field: string, value: unknown) => any) | undefined;
|
|
38
|
+
onSave?: (() => any) | undefined;
|
|
39
|
+
}>, {
|
|
40
|
+
disabled: boolean;
|
|
41
|
+
width: string;
|
|
42
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
43
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
44
|
+
export default _default;
|
|
45
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
46
|
+
new (): {
|
|
47
|
+
$slots: S;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { CrudManagerReturn, KpiItem } from '@/types/crud';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
crud: CrudManagerReturn<any>;
|
|
4
|
+
title: string;
|
|
5
|
+
subtitle?: string;
|
|
6
|
+
showSearch?: boolean;
|
|
7
|
+
showHeader?: boolean;
|
|
8
|
+
dialogWidth?: string;
|
|
9
|
+
autoInit?: boolean;
|
|
10
|
+
showKpi?: boolean;
|
|
11
|
+
kpiIcon?: string;
|
|
12
|
+
kpiLabel?: string;
|
|
13
|
+
extraKpis?: KpiItem[];
|
|
14
|
+
expandable?: boolean;
|
|
15
|
+
viewToggle?: boolean;
|
|
16
|
+
defaultView?: 'table' | 'cards';
|
|
17
|
+
cardFields?: number;
|
|
18
|
+
};
|
|
19
|
+
declare var __VLS_1: {}, __VLS_11: {}, __VLS_40: {}, __VLS_42: {}, __VLS_44: {}, __VLS_70: {}, __VLS_81: `column-${string}`, __VLS_82: {
|
|
20
|
+
data: any;
|
|
21
|
+
value: any;
|
|
22
|
+
}, __VLS_99: {
|
|
23
|
+
data: any;
|
|
24
|
+
crud: CrudManagerReturn<any>;
|
|
25
|
+
}, __VLS_101: {
|
|
26
|
+
data: any;
|
|
27
|
+
}, __VLS_119: {}, __VLS_121: {}, __VLS_123: {}, __VLS_149: {}, __VLS_152: `column-${string}`, __VLS_153: {
|
|
28
|
+
data: any;
|
|
29
|
+
value: any;
|
|
30
|
+
}, __VLS_166: {
|
|
31
|
+
data: any;
|
|
32
|
+
crud: CrudManagerReturn<any>;
|
|
33
|
+
}, __VLS_176: {
|
|
34
|
+
crud: CrudManagerReturn<any>;
|
|
35
|
+
dialogWidth: string;
|
|
36
|
+
}, __VLS_188: `field-${string}`, __VLS_189: {
|
|
37
|
+
field: import("@/types/crud").FieldDef;
|
|
38
|
+
formData: Record<string, unknown>;
|
|
39
|
+
isEditing: boolean;
|
|
40
|
+
setFormField: (f: string, v: unknown) => void;
|
|
41
|
+
};
|
|
42
|
+
type __VLS_Slots = {} & {
|
|
43
|
+
[K in NonNullable<typeof __VLS_81>]?: (props: typeof __VLS_82) => any;
|
|
44
|
+
} & {
|
|
45
|
+
[K in NonNullable<typeof __VLS_152>]?: (props: typeof __VLS_153) => any;
|
|
46
|
+
} & {
|
|
47
|
+
[K in NonNullable<typeof __VLS_188>]?: (props: typeof __VLS_189) => any;
|
|
48
|
+
} & {
|
|
49
|
+
'header-actions'?: (props: typeof __VLS_1) => any;
|
|
50
|
+
} & {
|
|
51
|
+
'before-table'?: (props: typeof __VLS_11) => any;
|
|
52
|
+
} & {
|
|
53
|
+
'toolbar-start'?: (props: typeof __VLS_40) => any;
|
|
54
|
+
} & {
|
|
55
|
+
'toolbar-filters'?: (props: typeof __VLS_42) => any;
|
|
56
|
+
} & {
|
|
57
|
+
'toolbar-actions'?: (props: typeof __VLS_44) => any;
|
|
58
|
+
} & {
|
|
59
|
+
empty?: (props: typeof __VLS_70) => any;
|
|
60
|
+
} & {
|
|
61
|
+
'row-actions'?: (props: typeof __VLS_99) => any;
|
|
62
|
+
} & {
|
|
63
|
+
expansion?: (props: typeof __VLS_101) => any;
|
|
64
|
+
} & {
|
|
65
|
+
'toolbar-start'?: (props: typeof __VLS_119) => any;
|
|
66
|
+
} & {
|
|
67
|
+
'toolbar-filters'?: (props: typeof __VLS_121) => any;
|
|
68
|
+
} & {
|
|
69
|
+
'toolbar-actions'?: (props: typeof __VLS_123) => any;
|
|
70
|
+
} & {
|
|
71
|
+
empty?: (props: typeof __VLS_149) => any;
|
|
72
|
+
} & {
|
|
73
|
+
'row-actions'?: (props: typeof __VLS_166) => any;
|
|
74
|
+
} & {
|
|
75
|
+
'form-dialog'?: (props: typeof __VLS_176) => any;
|
|
76
|
+
};
|
|
77
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
78
|
+
"row-expand": (data: unknown) => any;
|
|
79
|
+
"row-collapse": (data: unknown) => any;
|
|
80
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
81
|
+
"onRow-expand"?: ((data: unknown) => any) | undefined;
|
|
82
|
+
"onRow-collapse"?: ((data: unknown) => any) | undefined;
|
|
83
|
+
}>, {
|
|
84
|
+
dialogWidth: string;
|
|
85
|
+
showHeader: boolean;
|
|
86
|
+
showSearch: boolean;
|
|
87
|
+
autoInit: boolean;
|
|
88
|
+
showKpi: boolean;
|
|
89
|
+
kpiIcon: string;
|
|
90
|
+
kpiLabel: string;
|
|
91
|
+
extraKpis: KpiItem[];
|
|
92
|
+
expandable: boolean;
|
|
93
|
+
viewToggle: boolean;
|
|
94
|
+
defaultView: "table" | "cards";
|
|
95
|
+
cardFields: number;
|
|
96
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
97
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
98
|
+
export default _default;
|
|
99
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
100
|
+
new (): {
|
|
101
|
+
$slots: S;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { FieldDef, ColumnDef } from '@/types/crud';
|
|
2
|
+
interface ColumnMeta {
|
|
3
|
+
field: string;
|
|
4
|
+
header: string;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
modelValue: string | number | Record<string, unknown> | null;
|
|
8
|
+
endpoint: string;
|
|
9
|
+
endpointParams?: Record<string, string | number | boolean>;
|
|
10
|
+
optionLabel?: string;
|
|
11
|
+
optionValue?: string;
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
showClear?: boolean;
|
|
15
|
+
forceSelection?: boolean;
|
|
16
|
+
columns?: ColumnMeta[];
|
|
17
|
+
minLength?: number;
|
|
18
|
+
dialogHeader?: string;
|
|
19
|
+
canCreate?: boolean;
|
|
20
|
+
canEdit?: boolean;
|
|
21
|
+
canDelete?: boolean;
|
|
22
|
+
crudFields?: FieldDef[];
|
|
23
|
+
crudColumns?: ColumnDef[];
|
|
24
|
+
dialogWidth?: string;
|
|
25
|
+
};
|
|
26
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
27
|
+
"update:modelValue": (value: Record<string, unknown> | null) => any;
|
|
28
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
29
|
+
"onUpdate:modelValue"?: ((value: Record<string, unknown> | null) => any) | undefined;
|
|
30
|
+
}>, {
|
|
31
|
+
placeholder: string;
|
|
32
|
+
optionLabel: string;
|
|
33
|
+
optionValue: string;
|
|
34
|
+
disabled: boolean;
|
|
35
|
+
showClear: boolean;
|
|
36
|
+
forceSelection: boolean;
|
|
37
|
+
minLength: number;
|
|
38
|
+
canCreate: boolean;
|
|
39
|
+
canEdit: boolean;
|
|
40
|
+
canDelete: boolean;
|
|
41
|
+
dialogWidth: string;
|
|
42
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
43
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { FieldDef } from '@/types/crud';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
fields: FieldDef[];
|
|
4
|
+
formData: Record<string, unknown>;
|
|
5
|
+
isEditing: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare function validateAll(): string[];
|
|
9
|
+
declare function clearErrors(): void;
|
|
10
|
+
declare var __VLS_2: `field-${string}`, __VLS_3: {
|
|
11
|
+
field: FieldDef;
|
|
12
|
+
formData: Record<string, unknown>;
|
|
13
|
+
isEditing: boolean;
|
|
14
|
+
setFormField: (f: string, v: unknown) => void;
|
|
15
|
+
}, __VLS_30: `image-${string}`, __VLS_31: {
|
|
16
|
+
field: FieldDef;
|
|
17
|
+
formData: Record<string, unknown>;
|
|
18
|
+
};
|
|
19
|
+
type __VLS_Slots = {} & {
|
|
20
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
21
|
+
} & {
|
|
22
|
+
[K in NonNullable<typeof __VLS_30>]?: (props: typeof __VLS_31) => any;
|
|
23
|
+
};
|
|
24
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
|
|
25
|
+
validateAll: typeof validateAll;
|
|
26
|
+
clearErrors: typeof clearErrors;
|
|
27
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
28
|
+
"update:field": (field: string, value: unknown) => any;
|
|
29
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
30
|
+
"onUpdate:field"?: ((field: string, value: unknown) => any) | undefined;
|
|
31
|
+
}>, {
|
|
32
|
+
disabled: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
35
|
+
export default _default;
|
|
36
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
37
|
+
new (): {
|
|
38
|
+
$slots: S;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** Numeric model — the real value sent to the API (e.g. 1234.56). */
|
|
3
|
+
modelValue: number | null;
|
|
4
|
+
/** Fixed decimal places (default: 2). */
|
|
5
|
+
decimals?: number;
|
|
6
|
+
/** Show a "R$" prefix. Ignored when `prefix` is set. */
|
|
7
|
+
currency?: boolean;
|
|
8
|
+
/** Custom leading addon (overrides `currency`). */
|
|
9
|
+
prefix?: string;
|
|
10
|
+
/** Trailing addon. */
|
|
11
|
+
suffix?: string;
|
|
12
|
+
/** Display locale for grouping/decimal separators (default: 'pt-BR'). */
|
|
13
|
+
locale?: string;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
invalid?: boolean;
|
|
17
|
+
};
|
|
18
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
|
+
"update:modelValue": (value: number | null) => any;
|
|
20
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
+
"onUpdate:modelValue"?: ((value: number | null) => any) | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
currency: boolean;
|
|
24
|
+
disabled: boolean;
|
|
25
|
+
decimals: number;
|
|
26
|
+
locale: string;
|
|
27
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
export default _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type Id = string | number;
|
|
2
|
+
type Item = Record<string, unknown>;
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
/** Full pool of available records. */
|
|
5
|
+
source: Item[];
|
|
6
|
+
/** Currently selected ids (v-model:selected). */
|
|
7
|
+
selected: Id[];
|
|
8
|
+
/** Field used as the record id (default: 'id'). */
|
|
9
|
+
trackBy?: string;
|
|
10
|
+
/** Field used for the visible label (default: 'nome'). */
|
|
11
|
+
optionLabel?: string;
|
|
12
|
+
/** Fields to match when searching (default: [optionLabel]). */
|
|
13
|
+
searchFields?: string[];
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
};
|
|
16
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
"update:selected": (ids: Id[]) => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
19
|
+
"onUpdate:selected"?: ((ids: Id[]) => any) | undefined;
|
|
20
|
+
}>, {
|
|
21
|
+
optionLabel: string;
|
|
22
|
+
selected: Id[];
|
|
23
|
+
trackBy: string;
|
|
24
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { default as WCrudView } from './crud/WCrudView.vue';
|
|
2
|
+
export { default as WCrudFormDialog } from './crud/WCrudFormDialog.vue';
|
|
3
|
+
export { default as WCrudColumnRenderer } from './crud/WCrudColumnRenderer.vue';
|
|
4
|
+
export { default as WAutoCompleteFK } from './form/WAutoCompleteFK.vue';
|
|
5
|
+
export { default as WFormRenderer } from './form/WFormRenderer.vue';
|
|
6
|
+
export { default as WMoneyInput } from './form/WMoneyInput.vue';
|
|
7
|
+
export { default as WTransferList } from './form/WTransferList.vue';
|
|
8
|
+
export { default as WStatusTag } from './ui/WStatusTag.vue';
|
|
9
|
+
export { default as WPageHeader } from './ui/WPageHeader.vue';
|
|
10
|
+
export { default as WEmptyState } from './ui/WEmptyState.vue';
|
|
11
|
+
export { default as WDetailHeader } from './ui/WDetailHeader.vue';
|
|
12
|
+
export { default as WInfoCard } from './ui/WInfoCard.vue';
|
|
13
|
+
export { default as WKpiCard } from './ui/WKpiCard.vue';
|
|
14
|
+
export { default as WKpiGrid } from './ui/WKpiGrid.vue';
|
|
15
|
+
export { default as WSectionHeader } from './ui/WSectionHeader.vue';
|
|
16
|
+
export { default as WFormSection } from './ui/WFormSection.vue';
|
|
17
|
+
export { default as WActionBar } from './ui/WActionBar.vue';
|
|
18
|
+
export { default as WProgressFlow } from './ui/WProgressFlow.vue';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
align?: 'between' | 'start' | 'end';
|
|
3
|
+
stackOnMobile?: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
primary?: (props: typeof __VLS_1) => any;
|
|
8
|
+
} & {
|
|
9
|
+
default?: (props: typeof __VLS_3) => any;
|
|
10
|
+
} & {
|
|
11
|
+
filters?: (props: typeof __VLS_5) => any;
|
|
12
|
+
} & {
|
|
13
|
+
secondary?: (props: typeof __VLS_7) => any;
|
|
14
|
+
};
|
|
15
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
16
|
+
align: "between" | "start" | "end";
|
|
17
|
+
stackOnMobile: boolean;
|
|
18
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
20
|
+
export default _default;
|
|
21
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
22
|
+
new (): {
|
|
23
|
+
$slots: S;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle?: string;
|
|
4
|
+
icon?: string;
|
|
5
|
+
backRoute?: string;
|
|
6
|
+
backTo?: string | Record<string, unknown>;
|
|
7
|
+
status?: string;
|
|
8
|
+
statusMap?: Record<string, {
|
|
9
|
+
label: string;
|
|
10
|
+
severity: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
declare var __VLS_12: {};
|
|
14
|
+
type __VLS_Slots = {} & {
|
|
15
|
+
actions?: (props: typeof __VLS_12) => any;
|
|
16
|
+
};
|
|
17
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
21
|
+
new (): {
|
|
22
|
+
$slots: S;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
icon: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
actionLabel?: string;
|
|
6
|
+
actionIcon?: string;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
+
action: () => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onAction?: (() => any) | undefined;
|
|
12
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
variant?: 'default' | 'muted' | 'outlined';
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_1: {}, __VLS_3: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
actions?: (props: typeof __VLS_1) => any;
|
|
9
|
+
} & {
|
|
10
|
+
default?: (props: typeof __VLS_3) => any;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface InfoField {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string | number | null | undefined;
|
|
4
|
+
format?: 'currency' | 'date' | 'datetime' | 'number' | 'text';
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
title?: string;
|
|
8
|
+
fields: InfoField[];
|
|
9
|
+
};
|
|
10
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string | number;
|
|
4
|
+
icon?: string;
|
|
5
|
+
hint?: string;
|
|
6
|
+
severity?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|
|
7
|
+
trend?: {
|
|
8
|
+
value: string;
|
|
9
|
+
direction?: 'up' | 'down' | 'neutral';
|
|
10
|
+
};
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
};
|
|
13
|
+
declare var __VLS_17: {}, __VLS_19: {}, __VLS_21: {}, __VLS_23: {}, __VLS_25: {};
|
|
14
|
+
type __VLS_Slots = {} & {
|
|
15
|
+
icon?: (props: typeof __VLS_17) => any;
|
|
16
|
+
} & {
|
|
17
|
+
trend?: (props: typeof __VLS_19) => any;
|
|
18
|
+
} & {
|
|
19
|
+
value?: (props: typeof __VLS_21) => any;
|
|
20
|
+
} & {
|
|
21
|
+
hint?: (props: typeof __VLS_23) => any;
|
|
22
|
+
} & {
|
|
23
|
+
footer?: (props: typeof __VLS_25) => any;
|
|
24
|
+
};
|
|
25
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
27
|
+
export default _default;
|
|
28
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
29
|
+
new (): {
|
|
30
|
+
$slots: S;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { KpiItem } from '@/types/crud';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
items?: KpiItem[];
|
|
4
|
+
columns?: 2 | 3 | 4;
|
|
5
|
+
dense?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_1: {
|
|
8
|
+
key: number;
|
|
9
|
+
item: KpiItem;
|
|
10
|
+
index: number;
|
|
11
|
+
};
|
|
12
|
+
type __VLS_Slots = {} & {
|
|
13
|
+
item?: (props: typeof __VLS_1) => any;
|
|
14
|
+
};
|
|
15
|
+
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;
|
|
17
|
+
items: KpiItem[];
|
|
18
|
+
dense: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle?: string;
|
|
4
|
+
actionLabel?: string;
|
|
5
|
+
actionIcon?: string;
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_1: {};
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
actions?: (props: typeof __VLS_1) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
action: () => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
14
|
+
onAction?: (() => any) | undefined;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
19
|
+
new (): {
|
|
20
|
+
$slots: S;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
interface ProgressStep {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
steps: ProgressStep[];
|
|
8
|
+
currentStep: string;
|
|
9
|
+
orientation?: 'horizontal' | 'vertical';
|
|
10
|
+
};
|
|
11
|
+
declare var __VLS_1: {
|
|
12
|
+
step: ProgressStep;
|
|
13
|
+
index: number;
|
|
14
|
+
state: string;
|
|
15
|
+
};
|
|
16
|
+
type __VLS_Slots = {} & {
|
|
17
|
+
step?: (props: typeof __VLS_1) => any;
|
|
18
|
+
};
|
|
19
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
20
|
+
orientation: "horizontal" | "vertical";
|
|
21
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
23
|
+
export default _default;
|
|
24
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
25
|
+
new (): {
|
|
26
|
+
$slots: S;
|
|
27
|
+
};
|
|
28
|
+
};
|