@erplora/outfitkit 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ok-data-table.js +22 -19
- package/dist/outfitkit.bundle.js +22 -19
- package/package.json +1 -1
package/dist/ok-data-table.js
CHANGED
|
@@ -170,12 +170,15 @@ class OkDataTable extends LitElement {
|
|
|
170
170
|
|
|
171
171
|
/* ── Topbar / cabecera (relieve) ─────────────────────────────────────────────────────── */
|
|
172
172
|
.bar { display: flex; flex-direction: column; gap: 0.6rem; padding: 0.65rem 1rem; border-bottom: 1px solid var(--border-color); background: var(--header-background); }
|
|
173
|
-
/* Toolbar CONSOLIDADA: TODOS los controles
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* izquierda
|
|
173
|
+
/* Toolbar CONSOLIDADA: TODOS los controles son hijos directos de UNA sola fila flex que
|
|
174
|
+
* envuelve ELEMENTO A ELEMENTO (no por bloques): caben en una línea → una línea; los que no
|
|
175
|
+
* caben bajan a la(s) línea(s) que hagan falta. El cluster derecho se empuja al borde con
|
|
176
|
+
* .tk-spacer (hueco flexible) solo cuando todo cabe en una línea; al envolver, el spacer se
|
|
177
|
+
* oculta y todo se apila a la izquierda.
|
|
178
|
+
* ORDEN CANÓNICO (2026-06-22, izquierda→derecha): [buscador] · [filtros en línea] · ‹spacer› ·
|
|
179
|
+
* [SELECTORES: columnas → filas/página] · [BOTONES: vistas → filtros(funnel) → import → export →
|
|
180
|
+
* alta → ⋮ → acción primaria]. Es decir: buscador al inicio, filtros en medio, y al final los
|
|
181
|
+
* selectores (columnas, luego «N por página») seguidos de los botones de acción. */
|
|
179
182
|
.bar-main { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
|
|
180
183
|
.bar-main > ion-button { --padding-start: 0.5rem; --padding-end: 0.5rem; margin: 0; }
|
|
181
184
|
/* Spacer que absorbe el hueco libre en pantallas anchas (empuja el cluster derecho al borde).
|
|
@@ -886,6 +889,19 @@ class OkDataTable extends LitElement {
|
|
|
886
889
|
${this.hasSearch ? html`<div class="search">${searchbar}</div>` : nothing}
|
|
887
890
|
${this.inlineFilters ? this.renderInlineFilters() : nothing}
|
|
888
891
|
<span class="tk-spacer"></span>
|
|
892
|
+
${this.effColumnPicker ? html`
|
|
893
|
+
<ion-select
|
|
894
|
+
class="tk-cols"
|
|
895
|
+
multiple
|
|
896
|
+
interface="popover"
|
|
897
|
+
aria-label=${this.t.columnsVisible}
|
|
898
|
+
.value=${this.visibleColumns.map((c) => c.key)}
|
|
899
|
+
.selectedText=${this.t.columns}
|
|
900
|
+
@ionChange=${(e) => this.setVisibleColumns(e.detail.value)}
|
|
901
|
+
>
|
|
902
|
+
${this.columns.map((c) => html`<ion-select-option value=${c.key}>${c.header}</ion-select-option>`)}
|
|
903
|
+
</ion-select>
|
|
904
|
+
` : nothing}
|
|
889
905
|
${this.effPageSizes.length ? html`
|
|
890
906
|
<ion-select
|
|
891
907
|
class="tk-psize"
|
|
@@ -903,19 +919,6 @@ class OkDataTable extends LitElement {
|
|
|
903
919
|
${this.toolButton("grid-outline", this.viewMode === "cards", () => this.setViewMode("cards"), this.t.viewCards)}
|
|
904
920
|
</span>
|
|
905
921
|
` : nothing}
|
|
906
|
-
${this.effColumnPicker ? html`
|
|
907
|
-
<ion-select
|
|
908
|
-
class="tk-cols"
|
|
909
|
-
multiple
|
|
910
|
-
interface="popover"
|
|
911
|
-
aria-label=${this.t.columnsVisible}
|
|
912
|
-
.value=${this.visibleColumns.map((c) => c.key)}
|
|
913
|
-
.selectedText=${this.t.columns}
|
|
914
|
-
@ionChange=${(e) => this.setVisibleColumns(e.detail.value)}
|
|
915
|
-
>
|
|
916
|
-
${this.columns.map((c) => html`<ion-select-option value=${c.key}>${c.header}</ion-select-option>`)}
|
|
917
|
-
</ion-select>
|
|
918
|
-
` : nothing}
|
|
919
922
|
${this.hasFilterRow && !this.inlineFilters ? this.toolButton("funnel-outline", this.panel === "filters" || this.activeFilterCount > 0, () => this.toggle("filters"), this.t.filters, this.serverSide ? void 0 : this.activeFilterCount) : nothing}
|
|
920
923
|
${this.effImport ? html`
|
|
921
924
|
${this.toolButton("cloud-upload-outline", false, () => this.renderRoot.querySelector(".tk-file")?.click(), this.t.importCsv)}
|
package/dist/outfitkit.bundle.js
CHANGED
|
@@ -1095,12 +1095,15 @@ class _ extends g {
|
|
|
1095
1095
|
|
|
1096
1096
|
/* ── Topbar / cabecera (relieve) ─────────────────────────────────────────────────────── */
|
|
1097
1097
|
.bar { display: flex; flex-direction: column; gap: 0.6rem; padding: 0.65rem 1rem; border-bottom: 1px solid var(--border-color); background: var(--header-background); }
|
|
1098
|
-
/* Toolbar CONSOLIDADA: TODOS los controles
|
|
1099
|
-
*
|
|
1100
|
-
*
|
|
1101
|
-
*
|
|
1102
|
-
*
|
|
1103
|
-
* izquierda
|
|
1098
|
+
/* Toolbar CONSOLIDADA: TODOS los controles son hijos directos de UNA sola fila flex que
|
|
1099
|
+
* envuelve ELEMENTO A ELEMENTO (no por bloques): caben en una línea → una línea; los que no
|
|
1100
|
+
* caben bajan a la(s) línea(s) que hagan falta. El cluster derecho se empuja al borde con
|
|
1101
|
+
* .tk-spacer (hueco flexible) solo cuando todo cabe en una línea; al envolver, el spacer se
|
|
1102
|
+
* oculta y todo se apila a la izquierda.
|
|
1103
|
+
* ORDEN CANÓNICO (2026-06-22, izquierda→derecha): [buscador] · [filtros en línea] · ‹spacer› ·
|
|
1104
|
+
* [SELECTORES: columnas → filas/página] · [BOTONES: vistas → filtros(funnel) → import → export →
|
|
1105
|
+
* alta → ⋮ → acción primaria]. Es decir: buscador al inicio, filtros en medio, y al final los
|
|
1106
|
+
* selectores (columnas, luego «N por página») seguidos de los botones de acción. */
|
|
1104
1107
|
.bar-main { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
|
|
1105
1108
|
.bar-main > ion-button { --padding-start: 0.5rem; --padding-end: 0.5rem; margin: 0; }
|
|
1106
1109
|
/* Spacer que absorbe el hueco libre en pantallas anchas (empuja el cluster derecho al borde).
|
|
@@ -1686,6 +1689,19 @@ class _ extends g {
|
|
|
1686
1689
|
${this.hasSearch ? s`<div class="search">${d}</div>` : m}
|
|
1687
1690
|
${this.inlineFilters ? this.renderInlineFilters() : m}
|
|
1688
1691
|
<span class="tk-spacer"></span>
|
|
1692
|
+
${this.effColumnPicker ? s`
|
|
1693
|
+
<ion-select
|
|
1694
|
+
class="tk-cols"
|
|
1695
|
+
multiple
|
|
1696
|
+
interface="popover"
|
|
1697
|
+
aria-label=${this.t.columnsVisible}
|
|
1698
|
+
.value=${this.visibleColumns.map((p) => p.key)}
|
|
1699
|
+
.selectedText=${this.t.columns}
|
|
1700
|
+
@ionChange=${(p) => this.setVisibleColumns(p.detail.value)}
|
|
1701
|
+
>
|
|
1702
|
+
${this.columns.map((p) => s`<ion-select-option value=${p.key}>${p.header}</ion-select-option>`)}
|
|
1703
|
+
</ion-select>
|
|
1704
|
+
` : m}
|
|
1689
1705
|
${this.effPageSizes.length ? s`
|
|
1690
1706
|
<ion-select
|
|
1691
1707
|
class="tk-psize"
|
|
@@ -1703,19 +1719,6 @@ class _ extends g {
|
|
|
1703
1719
|
${this.toolButton("grid-outline", this.viewMode === "cards", () => this.setViewMode("cards"), this.t.viewCards)}
|
|
1704
1720
|
</span>
|
|
1705
1721
|
` : m}
|
|
1706
|
-
${this.effColumnPicker ? s`
|
|
1707
|
-
<ion-select
|
|
1708
|
-
class="tk-cols"
|
|
1709
|
-
multiple
|
|
1710
|
-
interface="popover"
|
|
1711
|
-
aria-label=${this.t.columnsVisible}
|
|
1712
|
-
.value=${this.visibleColumns.map((p) => p.key)}
|
|
1713
|
-
.selectedText=${this.t.columns}
|
|
1714
|
-
@ionChange=${(p) => this.setVisibleColumns(p.detail.value)}
|
|
1715
|
-
>
|
|
1716
|
-
${this.columns.map((p) => s`<ion-select-option value=${p.key}>${p.header}</ion-select-option>`)}
|
|
1717
|
-
</ion-select>
|
|
1718
|
-
` : m}
|
|
1719
1722
|
${this.hasFilterRow && !this.inlineFilters ? this.toolButton("funnel-outline", this.panel === "filters" || this.activeFilterCount > 0, () => this.toggle("filters"), this.t.filters, this.serverSide ? void 0 : this.activeFilterCount) : m}
|
|
1720
1723
|
${this.effImport ? s`
|
|
1721
1724
|
${this.toolButton("cloud-upload-outline", !1, () => this.renderRoot.querySelector(".tk-file")?.click(), this.t.importCsv)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@erplora/outfitkit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "OutfitKit — librería de Web Components (Lit) que CONSTRUYE lo que Ionic no tiene (tree, data-table rica, inline-feedback, kpi/stat, stepper/wizard, calendar, kanban…) sobre primitivos de Ionic. Ionic es la base; OutfitKit cubre los huecos. npm + CDN, imports individuales, CSP-safe. Tema vía tokens --ok-* (fallback a --ion-*).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|