@expcat/tigercat-core 1.3.1 → 1.3.3

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/index.cjs CHANGED
@@ -5809,7 +5809,7 @@ function getSpaceStyle(size = "md") {
5809
5809
 
5810
5810
  // src/utils/table-utils.ts
5811
5811
  var tableContainerClasses = "relative w-full overflow-auto";
5812
- var tableBaseClasses = "w-full border-collapse";
5812
+ var tableBaseClasses = "w-full border-separate border-spacing-0";
5813
5813
  var tableResponsiveTableClasses = "max-sm:min-w-max";
5814
5814
  var tableResponsiveCardListClasses = "hidden max-sm:grid max-sm:gap-3 max-sm:p-3";
5815
5815
  var CARD_HIDE_CLASSES = {
@@ -6059,7 +6059,8 @@ function getTableWrapperClasses(bordered, maxHeight) {
6059
6059
  function getTableHeaderClasses(stickyHeader) {
6060
6060
  return classNames(
6061
6061
  tableHeaderBackgroundClasses,
6062
- "border-b border-[var(--tiger-border,#e5e7eb)]",
6062
+ // border on cells, not <thead> — the table is `border-separate`
6063
+ "[&_th]:border-b [&_th]:border-[var(--tiger-border,#e5e7eb)]",
6063
6064
  stickyHeader && "sticky top-0 z-10"
6064
6065
  );
6065
6066
  }
@@ -6084,7 +6085,9 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
6084
6085
  }
6085
6086
  function getTableRowClasses(hoverable, striped, isEven, customClassName) {
6086
6087
  return classNames(
6087
- "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0",
6088
+ // border on cells, not <tr> — the table is `border-separate`; `:not(:last-child)`
6089
+ // reproduces the old `last:border-b-0` (every row except the last gets a bottom rule)
6090
+ "[&:not(:last-child)>td]:border-b [&:not(:last-child)>td]:border-[var(--tiger-border,#e5e7eb)]",
6088
6091
  hoverable && tableRowHoverClasses,
6089
6092
  striped && isEven && tableRowStripedClasses,
6090
6093
  customClassName
@@ -6194,7 +6197,8 @@ function getExpandIconClasses(expanded) {
6194
6197
  }
6195
6198
  function getExpandedRowClasses() {
6196
6199
  return classNames(
6197
- "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0",
6200
+ // border on cells, not <tr> — the table is `border-separate`
6201
+ "[&:not(:last-child)>td]:border-b [&:not(:last-child)>td]:border-[var(--tiger-border,#e5e7eb)]",
6198
6202
  "bg-[var(--tiger-surface-muted,#f9fafb)]/30"
6199
6203
  );
6200
6204
  }
@@ -6237,7 +6241,7 @@ function createTableRowKeyCache(rowKey) {
6237
6241
  }
6238
6242
  return { get, getMany };
6239
6243
  }
6240
- var tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold border-t-2 border-[var(--tiger-border,#e5e7eb)]";
6244
+ var tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold [&>td]:border-t-2 [&>td]:border-[var(--tiger-border,#e5e7eb)]";
6241
6245
  function getEditableCellClasses(isEditing) {
6242
6246
  return classNames(
6243
6247
  isEditing ? "ring-2 ring-[var(--tiger-primary,#2563eb)] ring-inset bg-[var(--tiger-surface,#ffffff)]" : "cursor-pointer hover:bg-[var(--tiger-primary,#2563eb)]/5"
@@ -14512,7 +14516,7 @@ function groupDataByColumn(data, groupBy) {
14512
14516
  }
14513
14517
  return groups;
14514
14518
  }
14515
- var tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] border-b border-[var(--tiger-border,#e5e7eb)]";
14519
+ var tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] [&>td]:border-b [&>td]:border-[var(--tiger-border,#e5e7eb)]";
14516
14520
  function getGroupHeaderCellClasses(size) {
14517
14521
  const padding = {
14518
14522
  sm: "px-3 py-2",
package/dist/index.d.cts CHANGED
@@ -3469,9 +3469,17 @@ declare function getSpaceStyle(size?: SpaceSize): Record<string, string> | undef
3469
3469
  */
3470
3470
  declare const tableContainerClasses = "relative w-full overflow-auto";
3471
3471
  /**
3472
- * Base table classes
3473
- */
3474
- declare const tableBaseClasses = "w-full border-collapse";
3472
+ * Base table classes.
3473
+ *
3474
+ * Uses `border-separate` + `border-spacing-0` (not `border-collapse`) on purpose:
3475
+ * `position: sticky` on `<th>`/`<td>` is unreliable under `border-collapse`
3476
+ * (fixed/locked columns drift or jitter while scrolling horizontally). In the
3477
+ * separate model sticky cells pin correctly. The trade-off is that borders on
3478
+ * `<tr>`/`<thead>` are not painted, so every horizontal separator must live on
3479
+ * the cells — see `getTableHeaderClasses`, `getTableRowClasses`,
3480
+ * `getExpandedRowClasses`, `tableSummaryRowClasses` and `tableGroupHeaderClasses`.
3481
+ */
3482
+ declare const tableBaseClasses = "w-full border-separate border-spacing-0";
3475
3483
  declare const tableResponsiveTableClasses = "max-sm:min-w-max";
3476
3484
  declare const tableResponsiveCardListClasses = "hidden max-sm:grid max-sm:gap-3 max-sm:p-3";
3477
3485
  declare const tableResponsiveCardClasses = "rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface,#ffffff)] shadow-sm";
@@ -3727,7 +3735,7 @@ declare function createTableRowKeyCache<T>(rowKey: string | ((record: T) => stri
3727
3735
  /**
3728
3736
  * Summary row footer classes
3729
3737
  */
3730
- declare const tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold border-t-2 border-[var(--tiger-border,#e5e7eb)]";
3738
+ declare const tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold [&>td]:border-t-2 [&>td]:border-[var(--tiger-border,#e5e7eb)]";
3731
3739
  /**
3732
3740
  * Editable cell classes
3733
3741
  */
@@ -15128,7 +15136,7 @@ declare function groupDataByColumn<T>(data: T[], groupBy: string): Map<string, T
15128
15136
  /**
15129
15137
  * Get group header row classes
15130
15138
  */
15131
- declare const tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] border-b border-[var(--tiger-border,#e5e7eb)]";
15139
+ declare const tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] [&>td]:border-b [&>td]:border-[var(--tiger-border,#e5e7eb)]";
15132
15140
  /**
15133
15141
  * Get group header cell padding classes
15134
15142
  */
package/dist/index.d.ts CHANGED
@@ -3469,9 +3469,17 @@ declare function getSpaceStyle(size?: SpaceSize): Record<string, string> | undef
3469
3469
  */
3470
3470
  declare const tableContainerClasses = "relative w-full overflow-auto";
3471
3471
  /**
3472
- * Base table classes
3473
- */
3474
- declare const tableBaseClasses = "w-full border-collapse";
3472
+ * Base table classes.
3473
+ *
3474
+ * Uses `border-separate` + `border-spacing-0` (not `border-collapse`) on purpose:
3475
+ * `position: sticky` on `<th>`/`<td>` is unreliable under `border-collapse`
3476
+ * (fixed/locked columns drift or jitter while scrolling horizontally). In the
3477
+ * separate model sticky cells pin correctly. The trade-off is that borders on
3478
+ * `<tr>`/`<thead>` are not painted, so every horizontal separator must live on
3479
+ * the cells — see `getTableHeaderClasses`, `getTableRowClasses`,
3480
+ * `getExpandedRowClasses`, `tableSummaryRowClasses` and `tableGroupHeaderClasses`.
3481
+ */
3482
+ declare const tableBaseClasses = "w-full border-separate border-spacing-0";
3475
3483
  declare const tableResponsiveTableClasses = "max-sm:min-w-max";
3476
3484
  declare const tableResponsiveCardListClasses = "hidden max-sm:grid max-sm:gap-3 max-sm:p-3";
3477
3485
  declare const tableResponsiveCardClasses = "rounded-[var(--tiger-radius-md,0.5rem)] border border-[var(--tiger-border,#e5e7eb)] bg-[var(--tiger-surface,#ffffff)] shadow-sm";
@@ -3727,7 +3735,7 @@ declare function createTableRowKeyCache<T>(rowKey: string | ((record: T) => stri
3727
3735
  /**
3728
3736
  * Summary row footer classes
3729
3737
  */
3730
- declare const tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold border-t-2 border-[var(--tiger-border,#e5e7eb)]";
3738
+ declare const tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold [&>td]:border-t-2 [&>td]:border-[var(--tiger-border,#e5e7eb)]";
3731
3739
  /**
3732
3740
  * Editable cell classes
3733
3741
  */
@@ -15128,7 +15136,7 @@ declare function groupDataByColumn<T>(data: T[], groupBy: string): Map<string, T
15128
15136
  /**
15129
15137
  * Get group header row classes
15130
15138
  */
15131
- declare const tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] border-b border-[var(--tiger-border,#e5e7eb)]";
15139
+ declare const tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] [&>td]:border-b [&>td]:border-[var(--tiger-border,#e5e7eb)]";
15132
15140
  /**
15133
15141
  * Get group header cell padding classes
15134
15142
  */
package/dist/index.js CHANGED
@@ -3903,7 +3903,7 @@ function getSpaceStyle(size = "md") {
3903
3903
 
3904
3904
  // src/utils/table-utils.ts
3905
3905
  var tableContainerClasses = "relative w-full overflow-auto";
3906
- var tableBaseClasses = "w-full border-collapse";
3906
+ var tableBaseClasses = "w-full border-separate border-spacing-0";
3907
3907
  var tableResponsiveTableClasses = "max-sm:min-w-max";
3908
3908
  var tableResponsiveCardListClasses = "hidden max-sm:grid max-sm:gap-3 max-sm:p-3";
3909
3909
  var CARD_HIDE_CLASSES = {
@@ -4153,7 +4153,8 @@ function getTableWrapperClasses(bordered, maxHeight) {
4153
4153
  function getTableHeaderClasses(stickyHeader) {
4154
4154
  return classNames(
4155
4155
  tableHeaderBackgroundClasses,
4156
- "border-b border-[var(--tiger-border,#e5e7eb)]",
4156
+ // border on cells, not <thead> — the table is `border-separate`
4157
+ "[&_th]:border-b [&_th]:border-[var(--tiger-border,#e5e7eb)]",
4157
4158
  stickyHeader && "sticky top-0 z-10"
4158
4159
  );
4159
4160
  }
@@ -4178,7 +4179,9 @@ function getTableHeaderCellClasses(size, align, sortable, customClassName) {
4178
4179
  }
4179
4180
  function getTableRowClasses(hoverable, striped, isEven, customClassName) {
4180
4181
  return classNames(
4181
- "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0",
4182
+ // border on cells, not <tr> — the table is `border-separate`; `:not(:last-child)`
4183
+ // reproduces the old `last:border-b-0` (every row except the last gets a bottom rule)
4184
+ "[&:not(:last-child)>td]:border-b [&:not(:last-child)>td]:border-[var(--tiger-border,#e5e7eb)]",
4182
4185
  hoverable && tableRowHoverClasses,
4183
4186
  striped && isEven && tableRowStripedClasses,
4184
4187
  customClassName
@@ -4288,7 +4291,8 @@ function getExpandIconClasses(expanded) {
4288
4291
  }
4289
4292
  function getExpandedRowClasses() {
4290
4293
  return classNames(
4291
- "border-b border-[var(--tiger-border,#e5e7eb)] last:border-b-0",
4294
+ // border on cells, not <tr> — the table is `border-separate`
4295
+ "[&:not(:last-child)>td]:border-b [&:not(:last-child)>td]:border-[var(--tiger-border,#e5e7eb)]",
4292
4296
  "bg-[var(--tiger-surface-muted,#f9fafb)]/30"
4293
4297
  );
4294
4298
  }
@@ -4331,7 +4335,7 @@ function createTableRowKeyCache(rowKey) {
4331
4335
  }
4332
4336
  return { get, getMany };
4333
4337
  }
4334
- var tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold border-t-2 border-[var(--tiger-border,#e5e7eb)]";
4338
+ var tableSummaryRowClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold [&>td]:border-t-2 [&>td]:border-[var(--tiger-border,#e5e7eb)]";
4335
4339
  function getEditableCellClasses(isEditing) {
4336
4340
  return classNames(
4337
4341
  isEditing ? "ring-2 ring-[var(--tiger-primary,#2563eb)] ring-inset bg-[var(--tiger-surface,#ffffff)]" : "cursor-pointer hover:bg-[var(--tiger-primary,#2563eb)]/5"
@@ -12613,7 +12617,7 @@ function groupDataByColumn(data, groupBy) {
12613
12617
  }
12614
12618
  return groups;
12615
12619
  }
12616
- var tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] border-b border-[var(--tiger-border,#e5e7eb)]";
12620
+ var tableGroupHeaderClasses = "bg-[var(--tiger-surface-muted,#f3f4f6)] font-semibold text-sm text-[var(--tiger-text,#111827)] [&>td]:border-b [&>td]:border-[var(--tiger-border,#e5e7eb)]";
12617
12621
  function getGroupHeaderCellClasses(size) {
12618
12622
  const padding = {
12619
12623
  sm: "px-3 py-2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expcat/tigercat-core",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "type": "module",
5
5
  "description": "Core utilities for Tigercat UI library",
6
6
  "license": "MIT",