@leaflink/stash 53.4.8 → 53.4.10

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.
@@ -47,6 +47,9 @@ isSelectable: boolean;
47
47
  layout: string;
48
48
  radius: string;
49
49
  stickyHeader: undefined;
50
+ pinnedLeftWidth: number;
51
+ pinnedRightWidth: number;
52
+ tableMinWidth: undefined;
50
53
  }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<TableProps>, {
51
54
  density: undefined;
52
55
  emptyStateText: string;
@@ -60,6 +63,9 @@ isSelectable: boolean;
60
63
  layout: string;
61
64
  radius: string;
62
65
  stickyHeader: undefined;
66
+ pinnedLeftWidth: number;
67
+ pinnedRightWidth: number;
68
+ tableMinWidth: undefined;
63
69
  }>>> & Readonly<{}>, {
64
70
  isLoading: boolean;
65
71
  radius: "none" | "rounded" | "rounded-bottom";
@@ -76,6 +82,9 @@ stickyHeader: {
76
82
  listLength: number;
77
83
  maxHeight: string;
78
84
  };
85
+ pinnedLeftWidth: number;
86
+ pinnedRightWidth: number;
87
+ tableMinWidth: number;
79
88
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>, {
80
89
  head?(_: {}): any;
81
90
  empty?(_: {}): any;
@@ -197,6 +206,18 @@ export declare interface TableProps {
197
206
  listLength: number;
198
207
  maxHeight: string;
199
208
  };
209
+ /**
210
+ * Total width (px) of left-pinned columns. Used to offset scroll overlay elements.
211
+ */
212
+ pinnedLeftWidth?: number;
213
+ /**
214
+ * Total width (px) of right-pinned columns. Used to offset scroll overlay elements.
215
+ */
216
+ pinnedRightWidth?: number;
217
+ /**
218
+ * When set, applied as min-width on the <table> element so columns don't collapse below their TanStack sizes.
219
+ */
220
+ tableMinWidth?: number;
200
221
  }
201
222
 
202
223
  export declare enum TableRadius {
@@ -1,69 +1,72 @@
1
- import { defineComponent as k, useCssModule as D, inject as h, computed as s, createElementBlock as b, openBlock as c, normalizeClass as n, unref as e, createElementVNode as T, renderSlot as g, createCommentVNode as d, createBlock as x } from "vue";
1
+ import { defineComponent as g, useCssModule as T, inject as h, computed as s, createElementBlock as b, openBlock as n, normalizeClass as c, unref as e, createElementVNode as x, renderSlot as E, createCommentVNode as d, createBlock as y } from "vue";
2
2
  import "lodash-es/cloneDeep";
3
3
  import "./Module.keys-DcqBbvvT.js";
4
4
  import "lodash-es/get";
5
- import w from "./Icon.js";
6
- import { D as y } from "./DataView.keys-aSOnA4AD.js";
5
+ import I from "./Icon.js";
6
+ import { D as w } from "./DataView.keys-aSOnA4AD.js";
7
7
  import "./Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js";
8
8
  import "lodash-es/uniqueId";
9
9
  import "@leaflink/snitch";
10
- import { T as E } from "./Table.keys-LHQf6FEH.js";
11
- import { _ as N } from "./_plugin-vue_export-helper-CHgC5LLL.js";
12
- const A = {
10
+ import { T as N } from "./Table.keys-LHQf6FEH.js";
11
+ import { _ as A } from "./_plugin-vue_export-helper-CHgC5LLL.js";
12
+ const B = {
13
13
  key: 0,
14
14
  class: "relative h-4 w-3"
15
- }, B = /* @__PURE__ */ k({
15
+ }, j = /* @__PURE__ */ g({
16
16
  __name: "TableHeaderCell",
17
17
  props: {
18
18
  sortId: { default: "" },
19
19
  schemaDrivenHeader: { default: void 0 }
20
20
  },
21
- setup(I) {
22
- const r = I, t = D(), m = h(E.key);
21
+ setup(k) {
22
+ const r = k, t = T(), m = h(N.key);
23
23
  if (!m)
24
24
  throw new Error("TableHeaderCell must be used within a Table component");
25
- const { density: p, hasActions: C } = m, a = s(() => !!r.schemaDrivenHeader), { currentSortId: H, currentSortOrder: v, updateCurrentSort: _ } = h(
26
- y.key,
27
- y.defaults
28
- ), l = s(() => a.value ? r.schemaDrivenHeader.column.getCanSort() : !!r.sortId), o = s(() => a.value ? !!r.schemaDrivenHeader.column.getIsSorted() : H.value === r.sortId), f = s(() => a.value ? r.schemaDrivenHeader.column.getIsSorted() : o.value && v.value ? v.value : !1);
25
+ const { density: p, hasActions: C } = m, o = s(() => !!r.schemaDrivenHeader), H = s(
26
+ () => o.value && !!r.schemaDrivenHeader.column.getIsPinned()
27
+ ), { currentSortId: D, currentSortOrder: f, updateCurrentSort: v } = h(
28
+ w.key,
29
+ w.defaults
30
+ ), l = s(() => o.value ? r.schemaDrivenHeader.column.getCanSort() : !!r.sortId), a = s(() => o.value ? !!r.schemaDrivenHeader.column.getIsSorted() : D.value === r.sortId), _ = s(() => o.value ? r.schemaDrivenHeader.column.getIsSorted() : a.value && f.value ? f.value : !1);
29
31
  function S(i) {
30
32
  var u;
31
- if (a.value) {
33
+ if (o.value) {
32
34
  (u = r.schemaDrivenHeader.column.getToggleSortingHandler()) == null || u(i);
33
35
  return;
34
36
  }
35
- l.value && typeof _ == "function" && _(r.sortId, { shouldEmit: !0 });
37
+ l.value && typeof v == "function" && v(r.sortId, { shouldEmit: !0 });
36
38
  }
37
- return (i, u) => (c(), b("th", {
38
- class: n(["stash-table-header-cell border-b border-r border-ice-200 p-3 text-xs font-medium text-ice-900", [
39
+ return (i, u) => (n(), b("th", {
40
+ class: c(["stash-table-header-cell border-b border-r border-ice-200 p-3 text-xs font-medium text-ice-900", [
39
41
  e(t).root,
40
42
  {
41
- "bg-white": !o.value,
42
- "stash-table-header-cell--sorted bg-blue-100": o.value,
43
+ "bg-white": !a.value,
44
+ "stash-table-header-cell--sorted bg-blue-100": a.value,
43
45
  [e(t)["root--density-compact"]]: e(p) === "compact",
44
46
  [e(t)["root--density-comfortable"]]: e(p) === "comfortable",
45
47
  [e(t)["has-actions"]]: e(C),
48
+ [e(t)["pinned-sticky"]]: H.value,
46
49
  "cursor-pointer": l.value
47
50
  }
48
51
  ]]),
49
52
  "data-test": "stash-table-header-cell",
50
53
  onClick: S
51
54
  }, [
52
- T("div", {
53
- class: n(["flex justify-between", e(t)["content-wrapper"]])
55
+ x("div", {
56
+ class: c(["flex justify-between", e(t)["content-wrapper"]])
54
57
  }, [
55
- g(i.$slots, "default"),
56
- l.value ? (c(), b("div", A, [
57
- !o.value || f.value === "asc" ? (c(), x(w, {
58
+ E(i.$slots, "default"),
59
+ l.value ? (n(), b("div", B, [
60
+ !a.value || _.value === "asc" ? (n(), y(I, {
58
61
  key: 0,
59
- class: n(["absolute text-ice-700", [e(t).caret, e(t)["caret-up"]]]),
62
+ class: c(["absolute text-ice-700", [e(t).caret, e(t)["caret-up"]]]),
60
63
  "data-test": "icon|caret-up",
61
64
  name: "caret-up",
62
65
  size: "dense"
63
66
  }, null, 8, ["class"])) : d("", !0),
64
- !o.value || f.value === "desc" ? (c(), x(w, {
67
+ !a.value || _.value === "desc" ? (n(), y(I, {
65
68
  key: 1,
66
- class: n(["absolute text-ice-700", [e(t).caret, e(t)["caret-down"]]]),
69
+ class: c(["absolute text-ice-700", [e(t).caret, e(t)["caret-down"]]]),
67
70
  "data-test": "icon|caret-down",
68
71
  name: "caret-down",
69
72
  size: "dense"
@@ -72,18 +75,19 @@ const A = {
72
75
  ], 2)
73
76
  ], 2));
74
77
  }
75
- }), j = "_root_1xv85_5", z = "_caret_1xv85_21", M = {
76
- root: j,
77
- "has-actions": "_has-actions_1xv85_17",
78
- "content-wrapper": "_content-wrapper_1xv85_17",
79
- "caret-up": "_caret-up_1xv85_21",
80
- "caret-down": "_caret-down_1xv85_25",
81
- caret: z,
82
- "root--density-comfortable": "_root--density-comfortable_1xv85_34"
83
- }, O = {
84
- $style: M
85
- }, Q = /* @__PURE__ */ N(B, [["__cssModules", O]]);
78
+ }), z = "_root_flohv_5", M = "_caret_flohv_25", O = {
79
+ root: z,
80
+ "pinned-sticky": "_pinned-sticky_flohv_17",
81
+ "has-actions": "_has-actions_flohv_21",
82
+ "content-wrapper": "_content-wrapper_flohv_21",
83
+ "caret-up": "_caret-up_flohv_25",
84
+ "caret-down": "_caret-down_flohv_29",
85
+ caret: M,
86
+ "root--density-comfortable": "_root--density-comfortable_flohv_38"
87
+ }, V = {
88
+ $style: O
89
+ }, U = /* @__PURE__ */ A(j, [["__cssModules", V]]);
86
90
  export {
87
- Q as default
91
+ U as default
88
92
  };
89
93
  //# sourceMappingURL=TableHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderCell.js","sources":["../src/components/TableHeaderCell/TableHeaderCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import type { Header } from '@tanstack/vue-table';\n import { computed, inject, useCssModule } from 'vue';\n\n import { DATA_VIEW_INJECTION, SortValueDeserialized } from '../DataView/DataView.vue';\n import Icon from '../Icon/Icon.vue';\n import { TABLE_INJECTION } from '../Table/Table.vue';\n\n export interface TableHeaderCellProps {\n /**\n * A unique value correlated to the data in this header's column (without a leading hyphen/dash).\n * For example: `'product_name'` (with no leading dash/hyphen).\n */\n sortId?: SortValueDeserialized['id'];\n\n /**\n * TanStack header instance passed when Table is in schema-driven mode.\n * When provided, sorting is controlled by TanStack instead of DataView.\n * Typed as any so DataTable can pass Header<TData, unknown> without a type assertion.\n */\n schemaDrivenHeader?: Header<any, any>;\n }\n\n const props = withDefaults(defineProps<TableHeaderCellProps>(), {\n sortId: '',\n schemaDrivenHeader: undefined,\n });\n const classes = useCssModule();\n\n const tableInjection = inject(TABLE_INJECTION.key);\n if (!tableInjection) {\n throw new Error('TableHeaderCell must be used within a Table component');\n }\n\n const { density, hasActions } = tableInjection;\n\n const hasSchemaDrivenHeader = computed(() => !!props.schemaDrivenHeader);\n\n // #region sorting\n const { currentSortId, currentSortOrder, updateCurrentSort } = inject(\n DATA_VIEW_INJECTION.key,\n DATA_VIEW_INJECTION.defaults,\n );\n\n const isSortable = computed(() => {\n if (hasSchemaDrivenHeader.value) {\n return props.schemaDrivenHeader!.column.getCanSort();\n }\n return !!props.sortId;\n });\n\n const isActiveSort = computed(() => {\n if (hasSchemaDrivenHeader.value) {\n return !!props.schemaDrivenHeader!.column.getIsSorted();\n }\n return currentSortId.value === props.sortId;\n });\n\n const sortDirection = computed<'asc' | 'desc' | false>(() => {\n if (hasSchemaDrivenHeader.value) {\n return props.schemaDrivenHeader!.column.getIsSorted();\n }\n if (isActiveSort.value && currentSortOrder.value) {\n return currentSortOrder.value;\n }\n return false;\n });\n\n function onRootClick(event: MouseEvent) {\n if (hasSchemaDrivenHeader.value) {\n props.schemaDrivenHeader!.column.getToggleSortingHandler()?.(event);\n return;\n }\n\n if (isSortable.value && typeof updateCurrentSort === 'function') {\n updateCurrentSort(props.sortId, { shouldEmit: true });\n }\n }\n // #endregion sorting\n</script>\n\n<template>\n <th\n class=\"stash-table-header-cell border-b border-r border-ice-200 p-3 text-xs font-medium text-ice-900\"\n :class=\"[\n classes.root,\n {\n 'bg-white': !isActiveSort,\n 'stash-table-header-cell--sorted bg-blue-100': isActiveSort,\n [classes['root--density-compact']]: density === 'compact',\n [classes['root--density-comfortable']]: density === 'comfortable',\n [classes['has-actions']]: hasActions,\n 'cursor-pointer': isSortable,\n },\n ]\"\n data-test=\"stash-table-header-cell\"\n @click=\"onRootClick\"\n >\n <div class=\"flex justify-between\" :class=\"classes['content-wrapper']\">\n <!-- @slot default -->\n <slot></slot>\n <div v-if=\"isSortable\" class=\"relative h-4 w-3\">\n <Icon\n v-if=\"!isActiveSort || sortDirection === 'asc'\"\n class=\"absolute text-ice-700\"\n :class=\"[classes.caret, classes['caret-up']]\"\n data-test=\"icon|caret-up\"\n name=\"caret-up\"\n size=\"dense\"\n />\n <Icon\n v-if=\"!isActiveSort || sortDirection === 'desc'\"\n class=\"absolute text-ice-700\"\n :class=\"[classes.caret, classes['caret-down']]\"\n data-test=\"icon|caret-down\"\n name=\"caret-down\"\n size=\"dense\"\n />\n </div>\n </div>\n </th>\n</template>\n\n<style module>\n @reference \"../../../styles/main.css\";\n\n @layer utilities {\n .root {\n border-left: none;\n border-top: none;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .root:last-of-type {\n border-right: 0;\n }\n\n .has-actions:last-of-type .content-wrapper {\n justify-content: flex-end !important;\n }\n\n .caret-up {\n top: -5px;\n }\n\n .caret-down {\n top: 2px;\n }\n\n :global(.stash-table-header-cell--sorted) .caret {\n top: -2px; /* vertically center the caret icon */\n }\n\n @media (width >= theme(--breakpoint-lg)) {\n .root--density-comfortable:last-of-type {\n padding-right: 24px;\n }\n\n .root--density-comfortable:first-of-type:not(\n :global(.stash-table-header-row__selection-cell),\n :global(.stash-table-row__selection-cell)\n ) {\n padding-left: 24px;\n }\n }\n }\n</style>\n"],"names":["props","__props","classes","useCssModule","tableInjection","inject","TABLE_INJECTION","density","hasActions","hasSchemaDrivenHeader","computed","currentSortId","currentSortOrder","updateCurrentSort","DATA_VIEW_INJECTION","isSortable","isActiveSort","sortDirection","onRootClick","event","_a","_createElementBlock","_unref","_createElementVNode","_normalizeClass","_renderSlot","_ctx","_openBlock","_hoisted_1","_createBlock","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBE,UAAMA,IAAQC,GAIRC,IAAUC,EAAA,GAEVC,IAAiBC,EAAOC,EAAgB,GAAG;AACjD,QAAI,CAACF;AACH,YAAM,IAAI,MAAM,uDAAuD;AAGzE,UAAM,EAAE,SAAAG,GAAS,YAAAC,EAAA,IAAeJ,GAE1BK,IAAwBC,EAAS,MAAM,CAAC,CAACV,EAAM,kBAAkB,GAGjE,EAAE,eAAAW,GAAe,kBAAAC,GAAkB,mBAAAC,EAAA,IAAsBR;AAAA,MAC7DS,EAAoB;AAAA,MACpBA,EAAoB;AAAA,IAAA,GAGhBC,IAAaL,EAAS,MACtBD,EAAsB,QACjBT,EAAM,mBAAoB,OAAO,WAAA,IAEnC,CAAC,CAACA,EAAM,MAChB,GAEKgB,IAAeN,EAAS,MACxBD,EAAsB,QACjB,CAAC,CAACT,EAAM,mBAAoB,OAAO,YAAA,IAErCW,EAAc,UAAUX,EAAM,MACtC,GAEKiB,IAAgBP,EAAiC,MACjDD,EAAsB,QACjBT,EAAM,mBAAoB,OAAO,YAAA,IAEtCgB,EAAa,SAASJ,EAAiB,QAClCA,EAAiB,QAEnB,EACR;AAED,aAASM,EAAYC,GAAmB;;AACtC,UAAIV,EAAsB,OAAO;AAC/B,SAAAW,IAAApB,EAAM,mBAAoB,OAAO,wBAAA,MAAjC,QAAAoB,EAA6DD;AAC7D;AAAA,MACF;AAEA,MAAIJ,EAAW,SAAS,OAAOF,KAAsB,cACnDA,EAAkBb,EAAM,QAAQ,EAAE,YAAY,IAAM;AAAA,IAExD;2BAKAqB,EAsCK,MAAA;AAAA,MArCH,UAAM,iGAA+F;AAAA,QACrFC,EAAApB,CAAA,EAAQ;AAAA;uBAAmCc,EAAA;AAAA,yDAAqEA,EAAA;AAAA,UAAuB,CAAAM,EAAApB,CAAA,6BAAmCoB,EAAAf,CAAA,MAAO;AAAA,UAAyB,CAAAe,EAAApB,CAAA,iCAAuCoB,EAAAf,CAAA,MAAO;AAAA,UAA6B,CAAAe,EAAApB,CAAA,mBAAyBoB,EAAAd,CAAA;AAAA,4BAAsCO,EAAA;AAAA,QAAA;AAAA;MAWpW,aAAU;AAAA,MACT,SAAOG;AAAA,IAAA;MAERK,EAqBM,OAAA;AAAA,QArBD,OAAKC,EAAA,CAAC,wBAA+BF,EAAApB,CAAA,EAAO,iBAAA,CAAA,CAAA;AAAA,MAAA;QAE/CuB,EAAaC,EAAA,QAAA,SAAA;AAAA,QACFX,EAAA,SAAXY,EAAA,GAAAN,EAiBM,OAjBNO,GAiBM;AAAA,UAfK,CAAAZ,EAAA,SAAgBC,EAAA,UAAa,cADtCY,EAOEC,GAAA;AAAA;YALA,UAAM,yBAAuB,CACpBR,KAAQ,OAAOA,EAAApB,CAAA,EAAO,UAAA,CAAA,CAAA,CAAA;AAAA,YAC/B,aAAU;AAAA,YACV,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;UAGE,CAAAc,EAAA,SAAgBC,EAAA,UAAa,eADtCY,EAOEC,GAAA;AAAA;YALA,UAAM,yBAAuB,CACpBR,KAAQ,OAAOA,EAAApB,CAAA,EAAO,YAAA,CAAA,CAAA,CAAA;AAAA,YAC/B,aAAU;AAAA,YACV,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableHeaderCell.js","sources":["../src/components/TableHeaderCell/TableHeaderCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import type { Header } from '@tanstack/vue-table';\n import { computed, inject, useCssModule } from 'vue';\n\n import { DATA_VIEW_INJECTION, SortValueDeserialized } from '../DataView/DataView.vue';\n import Icon from '../Icon/Icon.vue';\n import { TABLE_INJECTION } from '../Table/Table.vue';\n\n export interface TableHeaderCellProps {\n /**\n * A unique value correlated to the data in this header's column (without a leading hyphen/dash).\n * For example: `'product_name'` (with no leading dash/hyphen).\n */\n sortId?: SortValueDeserialized['id'];\n\n /**\n * TanStack header instance passed when Table is in schema-driven mode.\n * When provided, sorting is controlled by TanStack instead of DataView.\n * Typed as any so DataTable can pass Header<TData, unknown> without a type assertion.\n */\n schemaDrivenHeader?: Header<any, any>;\n }\n\n const props = withDefaults(defineProps<TableHeaderCellProps>(), {\n sortId: '',\n schemaDrivenHeader: undefined,\n });\n const classes = useCssModule();\n\n const tableInjection = inject(TABLE_INJECTION.key);\n if (!tableInjection) {\n throw new Error('TableHeaderCell must be used within a Table component');\n }\n\n const { density, hasActions } = tableInjection;\n\n const hasSchemaDrivenHeader = computed(() => !!props.schemaDrivenHeader);\n\n const isPinnedHeader = computed(\n () => hasSchemaDrivenHeader.value && !!props.schemaDrivenHeader!.column.getIsPinned(),\n );\n\n // #region sorting\n const { currentSortId, currentSortOrder, updateCurrentSort } = inject(\n DATA_VIEW_INJECTION.key,\n DATA_VIEW_INJECTION.defaults,\n );\n\n const isSortable = computed(() => {\n if (hasSchemaDrivenHeader.value) {\n return props.schemaDrivenHeader!.column.getCanSort();\n }\n return !!props.sortId;\n });\n\n const isActiveSort = computed(() => {\n if (hasSchemaDrivenHeader.value) {\n return !!props.schemaDrivenHeader!.column.getIsSorted();\n }\n return currentSortId.value === props.sortId;\n });\n\n const sortDirection = computed<'asc' | 'desc' | false>(() => {\n if (hasSchemaDrivenHeader.value) {\n return props.schemaDrivenHeader!.column.getIsSorted();\n }\n if (isActiveSort.value && currentSortOrder.value) {\n return currentSortOrder.value;\n }\n return false;\n });\n\n function onRootClick(event: MouseEvent) {\n if (hasSchemaDrivenHeader.value) {\n props.schemaDrivenHeader!.column.getToggleSortingHandler()?.(event);\n return;\n }\n\n if (isSortable.value && typeof updateCurrentSort === 'function') {\n updateCurrentSort(props.sortId, { shouldEmit: true });\n }\n }\n // #endregion sorting\n</script>\n\n<template>\n <th\n class=\"stash-table-header-cell border-b border-r border-ice-200 p-3 text-xs font-medium text-ice-900\"\n :class=\"[\n classes.root,\n {\n 'bg-white': !isActiveSort,\n 'stash-table-header-cell--sorted bg-blue-100': isActiveSort,\n [classes['root--density-compact']]: density === 'compact',\n [classes['root--density-comfortable']]: density === 'comfortable',\n [classes['has-actions']]: hasActions,\n [classes['pinned-sticky']]: isPinnedHeader,\n 'cursor-pointer': isSortable,\n },\n ]\"\n data-test=\"stash-table-header-cell\"\n @click=\"onRootClick\"\n >\n <div class=\"flex justify-between\" :class=\"classes['content-wrapper']\">\n <!-- @slot default -->\n <slot></slot>\n <div v-if=\"isSortable\" class=\"relative h-4 w-3\">\n <Icon\n v-if=\"!isActiveSort || sortDirection === 'asc'\"\n class=\"absolute text-ice-700\"\n :class=\"[classes.caret, classes['caret-up']]\"\n data-test=\"icon|caret-up\"\n name=\"caret-up\"\n size=\"dense\"\n />\n <Icon\n v-if=\"!isActiveSort || sortDirection === 'desc'\"\n class=\"absolute text-ice-700\"\n :class=\"[classes.caret, classes['caret-down']]\"\n data-test=\"icon|caret-down\"\n name=\"caret-down\"\n size=\"dense\"\n />\n </div>\n </div>\n </th>\n</template>\n\n<style module>\n @reference \"../../../styles/main.css\";\n\n @layer utilities {\n .root {\n border-left: none;\n border-top: none;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .root:last-of-type {\n border-right: 0;\n }\n\n .pinned-sticky {\n z-index: 2;\n }\n\n .has-actions:last-of-type .content-wrapper {\n justify-content: flex-end !important;\n }\n\n .caret-up {\n top: -5px;\n }\n\n .caret-down {\n top: 2px;\n }\n\n :global(.stash-table-header-cell--sorted) .caret {\n top: -2px; /* vertically center the caret icon */\n }\n\n @media (width >= theme(--breakpoint-lg)) {\n .root--density-comfortable:last-of-type {\n padding-right: 24px;\n }\n\n .root--density-comfortable:first-of-type:not(\n :global(.stash-table-header-row__selection-cell),\n :global(.stash-table-row__selection-cell)\n ) {\n padding-left: 24px;\n }\n }\n }\n</style>\n"],"names":["props","__props","classes","useCssModule","tableInjection","inject","TABLE_INJECTION","density","hasActions","hasSchemaDrivenHeader","computed","isPinnedHeader","currentSortId","currentSortOrder","updateCurrentSort","DATA_VIEW_INJECTION","isSortable","isActiveSort","sortDirection","onRootClick","event","_a","_createElementBlock","_unref","_createElementVNode","_normalizeClass","_renderSlot","_ctx","_openBlock","_hoisted_1","_createBlock","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBE,UAAMA,IAAQC,GAIRC,IAAUC,EAAA,GAEVC,IAAiBC,EAAOC,EAAgB,GAAG;AACjD,QAAI,CAACF;AACH,YAAM,IAAI,MAAM,uDAAuD;AAGzE,UAAM,EAAE,SAAAG,GAAS,YAAAC,EAAA,IAAeJ,GAE1BK,IAAwBC,EAAS,MAAM,CAAC,CAACV,EAAM,kBAAkB,GAEjEW,IAAiBD;AAAA,MACrB,MAAMD,EAAsB,SAAS,CAAC,CAACT,EAAM,mBAAoB,OAAO,YAAA;AAAA,IAAY,GAIhF,EAAE,eAAAY,GAAe,kBAAAC,GAAkB,mBAAAC,EAAA,IAAsBT;AAAA,MAC7DU,EAAoB;AAAA,MACpBA,EAAoB;AAAA,IAAA,GAGhBC,IAAaN,EAAS,MACtBD,EAAsB,QACjBT,EAAM,mBAAoB,OAAO,WAAA,IAEnC,CAAC,CAACA,EAAM,MAChB,GAEKiB,IAAeP,EAAS,MACxBD,EAAsB,QACjB,CAAC,CAACT,EAAM,mBAAoB,OAAO,YAAA,IAErCY,EAAc,UAAUZ,EAAM,MACtC,GAEKkB,IAAgBR,EAAiC,MACjDD,EAAsB,QACjBT,EAAM,mBAAoB,OAAO,YAAA,IAEtCiB,EAAa,SAASJ,EAAiB,QAClCA,EAAiB,QAEnB,EACR;AAED,aAASM,EAAYC,GAAmB;;AACtC,UAAIX,EAAsB,OAAO;AAC/B,SAAAY,IAAArB,EAAM,mBAAoB,OAAO,wBAAA,MAAjC,QAAAqB,EAA6DD;AAC7D;AAAA,MACF;AAEA,MAAIJ,EAAW,SAAS,OAAOF,KAAsB,cACnDA,EAAkBd,EAAM,QAAQ,EAAE,YAAY,IAAM;AAAA,IAExD;2BAKAsB,EAuCK,MAAA;AAAA,MAtCH,UAAM,iGAA+F;AAAA,QACrFC,EAAArB,CAAA,EAAQ;AAAA;uBAAmCe,EAAA;AAAA,yDAAqEA,EAAA;AAAA,UAAuB,CAAAM,EAAArB,CAAA,6BAAmCqB,EAAAhB,CAAA,MAAO;AAAA,UAAyB,CAAAgB,EAAArB,CAAA,iCAAuCqB,EAAAhB,CAAA,MAAO;AAAA,UAA6B,CAAAgB,EAAArB,CAAA,mBAAyBqB,EAAAf,CAAA;AAAA,UAAqB,CAAAe,EAAArB,CAAA,qBAA2BS,EAAA;AAAA,4BAA0CK,EAAA;AAAA,QAAA;AAAA;MAYxZ,aAAU;AAAA,MACT,SAAOG;AAAA,IAAA;MAERK,EAqBM,OAAA;AAAA,QArBD,OAAKC,EAAA,CAAC,wBAA+BF,EAAArB,CAAA,EAAO,iBAAA,CAAA,CAAA;AAAA,MAAA;QAE/CwB,EAAaC,EAAA,QAAA,SAAA;AAAA,QACFX,EAAA,SAAXY,EAAA,GAAAN,EAiBM,OAjBNO,GAiBM;AAAA,UAfK,CAAAZ,EAAA,SAAgBC,EAAA,UAAa,cADtCY,EAOEC,GAAA;AAAA;YALA,UAAM,yBAAuB,CACpBR,KAAQ,OAAOA,EAAArB,CAAA,EAAO,UAAA,CAAA,CAAA,CAAA;AAAA,YAC/B,aAAU;AAAA,YACV,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;UAGE,CAAAe,EAAA,SAAgBC,EAAA,UAAa,eADtCY,EAOEC,GAAA;AAAA;YALA,UAAM,yBAAuB,CACpBR,KAAQ,OAAOA,EAAArB,CAAA,EAAO,YAAA,CAAA,CAAA,CAAA;AAAA,YAC/B,aAAU;AAAA,YACV,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;;;;;;;;;;;;;;;;;"}