@expcat/tigercat-react 1.2.47 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/{chunk-JLQBG5XU.js → chunk-2WDCWFOM.js} +5 -3
  2. package/dist/{chunk-D4FXVNRW.mjs → chunk-3CJFNG54.mjs} +2 -2
  3. package/dist/{chunk-ZDGBH4NA.js → chunk-4LX5UGPQ.js} +21 -8
  4. package/dist/{chunk-EWSYARW4.js → chunk-4ZTFIXZR.js} +96 -62
  5. package/dist/{chunk-USWK2S3Y.mjs → chunk-5TE7KLE5.mjs} +3 -1
  6. package/dist/{chunk-VJJ76I7U.js → chunk-6HDMUF23.js} +2 -1
  7. package/dist/{chunk-36I5APFX.js → chunk-6OMCHC6W.js} +8 -6
  8. package/dist/{chunk-CGIBGSNE.js → chunk-6TR7JB6C.js} +49 -8
  9. package/dist/{chunk-FZIF5LZW.js → chunk-AW5M3EL4.js} +5 -5
  10. package/dist/{chunk-ZL44XLSB.mjs → chunk-B3CRHKTZ.mjs} +1 -1
  11. package/dist/{chunk-6Z4LLPZA.js → chunk-BBLVRLXT.js} +1 -0
  12. package/dist/{chunk-CHS54PVQ.mjs → chunk-BWDQZSAB.mjs} +2 -1
  13. package/dist/{chunk-IFVIPIAA.js → chunk-BXOZZXVG.js} +146 -57
  14. package/dist/{chunk-IHH2O7YK.js → chunk-C5BPHZXK.js} +19 -1
  15. package/dist/{chunk-UPPHGL64.js → chunk-CY5GRTAX.js} +4 -3
  16. package/dist/{chunk-H2YHUFMK.js → chunk-EEWHWEYO.js} +5 -5
  17. package/dist/{chunk-Y5E4XH6H.mjs → chunk-F6IXIH6B.mjs} +4 -3
  18. package/dist/{chunk-I5YYA7FB.mjs → chunk-FB34UWF7.mjs} +3 -3
  19. package/dist/{chunk-OFCKGWTS.js → chunk-FJDTVJTX.js} +7 -2
  20. package/dist/{chunk-UIO6O4MI.js → chunk-FQO7BKXW.js} +4 -2
  21. package/dist/{chunk-6KQYWZ6J.mjs → chunk-GN3TSQWW.mjs} +49 -8
  22. package/dist/{chunk-7JFP3MIW.js → chunk-GQFVVAEF.js} +3 -3
  23. package/dist/{chunk-TUA5PDRX.mjs → chunk-HDCC4FBL.mjs} +19 -1
  24. package/dist/{chunk-RL6HARKE.mjs → chunk-I2AUOICV.mjs} +1 -1
  25. package/dist/{chunk-UVWLYRAC.js → chunk-I373B74W.js} +7 -7
  26. package/dist/{chunk-NF3OF7S5.mjs → chunk-IGAMV6ML.mjs} +1 -1
  27. package/dist/{chunk-AGHGG73I.mjs → chunk-INHQJXHD.mjs} +146 -57
  28. package/dist/{chunk-P6E3DILH.mjs → chunk-IXV5YBCZ.mjs} +5 -3
  29. package/dist/{chunk-7E24KEVK.mjs → chunk-KGSDDVRC.mjs} +1 -1
  30. package/dist/{chunk-T4OVGM4X.mjs → chunk-KXNWY2Q7.mjs} +1 -0
  31. package/dist/{chunk-PKWHSCFK.mjs → chunk-L5AMVEQL.mjs} +2 -2
  32. package/dist/{chunk-BCQQYERG.js → chunk-N4PP3ENO.js} +2 -2
  33. package/dist/{chunk-TYZNV54N.mjs → chunk-NITD53UU.mjs} +5 -3
  34. package/dist/{chunk-56DP32W7.mjs → chunk-NVEIVIAW.mjs} +2 -2
  35. package/dist/{chunk-DSXII6ZF.js → chunk-OZD75CLT.js} +3 -3
  36. package/dist/{chunk-ZDS5WL22.mjs → chunk-PTMVWEIC.mjs} +8 -6
  37. package/dist/{chunk-JCINYGGM.js → chunk-PUZDW7NR.js} +12 -12
  38. package/dist/{chunk-AE2QE2C6.js → chunk-PZNVU37I.js} +2 -2
  39. package/dist/{chunk-ABTJVM3X.js → chunk-RF2BA2N6.js} +2 -2
  40. package/dist/{chunk-XJXEAXWY.mjs → chunk-RQXY2MGX.mjs} +21 -8
  41. package/dist/{chunk-TANTMMR7.mjs → chunk-RYHM75MP.mjs} +2 -1
  42. package/dist/{chunk-TLU3ROLT.js → chunk-UMZ3PMUJ.js} +2 -1
  43. package/dist/{chunk-TGKNEMD4.mjs → chunk-WMPCN7OF.mjs} +3 -1
  44. package/dist/{chunk-LYYL2JMP.js → chunk-WOSKRZOO.js} +2 -1
  45. package/dist/{chunk-HUMGEP7S.mjs → chunk-WX5VUIGT.mjs} +3 -2
  46. package/dist/{chunk-OXDX6CH2.mjs → chunk-Y5RQN5BO.mjs} +1 -1
  47. package/dist/{chunk-OQTPXPAP.mjs → chunk-YN5ZIWCE.mjs} +8 -3
  48. package/dist/{chunk-KVZE7UGH.mjs → chunk-Z4PDV7HB.mjs} +89 -55
  49. package/dist/{chunk-JVTAKNRO.mjs → chunk-ZA5EFHET.mjs} +1 -1
  50. package/dist/{chunk-VCULFIZ5.js → chunk-ZJI2VLIL.js} +2 -0
  51. package/dist/{chunk-56ZV3VVY.js → chunk-ZLNBE4IS.js} +2 -0
  52. package/dist/{chunk-PR3PQUKM.js → chunk-ZZAR4IDS.js} +1 -1
  53. package/dist/components/ActivityFeed.js +5 -5
  54. package/dist/components/ActivityFeed.mjs +4 -4
  55. package/dist/components/Button.js +2 -2
  56. package/dist/components/Button.mjs +1 -1
  57. package/dist/components/Card.js +2 -2
  58. package/dist/components/Card.mjs +1 -1
  59. package/dist/components/ChatWindow.js +3 -3
  60. package/dist/components/ChatWindow.mjs +2 -2
  61. package/dist/components/CommentThread.js +4 -4
  62. package/dist/components/CommentThread.mjs +3 -3
  63. package/dist/components/Content.js +2 -2
  64. package/dist/components/Content.mjs +1 -1
  65. package/dist/components/CropUpload.js +4 -4
  66. package/dist/components/CropUpload.mjs +3 -3
  67. package/dist/components/DataTableWithToolbar.d.mts +10 -3
  68. package/dist/components/DataTableWithToolbar.d.ts +10 -3
  69. package/dist/components/DataTableWithToolbar.js +6 -6
  70. package/dist/components/DataTableWithToolbar.mjs +5 -5
  71. package/dist/components/Drawer.js +2 -2
  72. package/dist/components/Drawer.mjs +1 -1
  73. package/dist/components/Dropdown.d.mts +9 -0
  74. package/dist/components/Dropdown.d.ts +9 -0
  75. package/dist/components/Dropdown.js +2 -2
  76. package/dist/components/Dropdown.mjs +1 -1
  77. package/dist/components/DropdownItem.js +3 -3
  78. package/dist/components/DropdownItem.mjs +2 -2
  79. package/dist/components/DropdownMenu.js +2 -2
  80. package/dist/components/DropdownMenu.mjs +1 -1
  81. package/dist/components/Form.js +2 -2
  82. package/dist/components/Form.mjs +1 -1
  83. package/dist/components/FormItem.js +3 -3
  84. package/dist/components/FormItem.mjs +2 -2
  85. package/dist/components/FormWizard.js +3 -3
  86. package/dist/components/FormWizard.mjs +2 -2
  87. package/dist/components/Header.js +2 -2
  88. package/dist/components/Header.mjs +1 -1
  89. package/dist/components/Icon.js +2 -2
  90. package/dist/components/Icon.mjs +1 -1
  91. package/dist/components/Image.js +3 -2
  92. package/dist/components/Image.mjs +2 -1
  93. package/dist/components/Menu.js +2 -2
  94. package/dist/components/Menu.mjs +1 -1
  95. package/dist/components/MenuItem.js +2 -2
  96. package/dist/components/MenuItem.mjs +1 -1
  97. package/dist/components/MenuItemGroup.js +2 -2
  98. package/dist/components/MenuItemGroup.mjs +1 -1
  99. package/dist/components/Modal.js +3 -3
  100. package/dist/components/Modal.mjs +2 -2
  101. package/dist/components/NotificationCenter.js +4 -4
  102. package/dist/components/NotificationCenter.mjs +3 -3
  103. package/dist/components/Popconfirm.d.mts +7 -1
  104. package/dist/components/Popconfirm.d.ts +7 -1
  105. package/dist/components/Popconfirm.js +2 -2
  106. package/dist/components/Popconfirm.mjs +1 -1
  107. package/dist/components/Popover.d.mts +7 -1
  108. package/dist/components/Popover.d.ts +7 -1
  109. package/dist/components/Popover.js +2 -2
  110. package/dist/components/Popover.mjs +1 -1
  111. package/dist/components/Select.js +2 -2
  112. package/dist/components/Select.mjs +1 -1
  113. package/dist/components/SubMenu.js +2 -2
  114. package/dist/components/SubMenu.mjs +1 -1
  115. package/dist/components/Table.d.mts +1 -1
  116. package/dist/components/Table.d.ts +1 -1
  117. package/dist/components/Table.js +3 -3
  118. package/dist/components/Table.mjs +2 -2
  119. package/dist/components/Tag.js +2 -2
  120. package/dist/components/Tag.mjs +1 -1
  121. package/dist/components/Timeline.js +2 -2
  122. package/dist/components/Timeline.mjs +1 -1
  123. package/dist/index.d.mts +1 -1
  124. package/dist/index.d.ts +1 -1
  125. package/dist/index.js +27 -27
  126. package/dist/index.mjs +26 -26
  127. package/package.json +2 -2
@@ -8,6 +8,7 @@ import {
8
8
  iconSvgDefaultStrokeLinejoin,
9
9
  iconSvgDefaultStrokeWidth,
10
10
  iconWrapperClasses,
11
+ getIconDefinition,
11
12
  SVG_DEFAULT_FILL,
12
13
  SVG_DEFAULT_STROKE,
13
14
  SVG_DEFAULT_VIEWBOX_24,
@@ -15,6 +16,7 @@ import {
15
16
  } from "@expcat/tigercat-core";
16
17
  import { jsx } from "react/jsx-runtime";
17
18
  var Icon = ({
19
+ name,
18
20
  size = "md",
19
21
  color = "currentColor",
20
22
  className,
@@ -25,6 +27,22 @@ var Icon = ({
25
27
  const iconClasses = classNames(iconWrapperClasses, className);
26
28
  const iconStyle = { ...style, color };
27
29
  const isDecorative = props["aria-label"] == null && props["aria-labelledby"] == null && props.role == null;
30
+ const hasChildren = React.Children.count(children) > 0;
31
+ const definition = !hasChildren && name ? getIconDefinition(name) : void 0;
32
+ const builtInSvg = definition ? /* @__PURE__ */ jsx(
33
+ "svg",
34
+ {
35
+ className: classNames(iconSvgBaseClasses, iconSizeClasses[size]),
36
+ xmlns: SVG_DEFAULT_XMLNS,
37
+ viewBox: definition.viewBox,
38
+ fill: definition.mode === "fill" ? "currentColor" : SVG_DEFAULT_FILL,
39
+ stroke: definition.mode === "stroke" ? "currentColor" : SVG_DEFAULT_STROKE,
40
+ strokeWidth: definition.mode === "stroke" ? 1.5 : void 0,
41
+ strokeLinecap: definition.mode === "stroke" ? iconSvgDefaultStrokeLinecap : void 0,
42
+ strokeLinejoin: definition.mode === "stroke" ? iconSvgDefaultStrokeLinejoin : void 0,
43
+ children: definition.paths.map((d, i) => /* @__PURE__ */ jsx("path", { d }, i))
44
+ }
45
+ ) : null;
28
46
  const processedChildren = React.Children.map(children, (child) => {
29
47
  if (!React.isValidElement(child) || child.type !== "svg") {
30
48
  return child;
@@ -49,7 +67,7 @@ var Icon = ({
49
67
  className: iconClasses,
50
68
  style: iconStyle,
51
69
  ...isDecorative ? { "aria-hidden": true } : { role: props.role ?? "img" },
52
- children: processedChildren
70
+ children: builtInSvg ?? processedChildren
53
71
  }
54
72
  );
55
73
  };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QAIBQHIO.mjs";
4
4
  import {
5
5
  Button
6
- } from "./chunk-USWK2S3Y.mjs";
6
+ } from "./chunk-5TE7KLE5.mjs";
7
7
  import {
8
8
  renderBodyPortal,
9
9
  useBodyScrollLock,
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkPR3PQUKMjs = require('./chunk-PR3PQUKM.js');
3
+ var _chunkZZAR4IDSjs = require('./chunk-ZZAR4IDS.js');
4
4
 
5
5
 
6
6
  var _chunk3MRP3XYIjs = require('./chunk-3MRP3XYI.js');
@@ -9,13 +9,13 @@ var _chunk3MRP3XYIjs = require('./chunk-3MRP3XYI.js');
9
9
  var _chunkQYYAXM5Fjs = require('./chunk-QYYAXM5F.js');
10
10
 
11
11
 
12
- var _chunkVCULFIZ5js = require('./chunk-VCULFIZ5.js');
12
+ var _chunkZJI2VLILjs = require('./chunk-ZJI2VLIL.js');
13
13
 
14
14
 
15
15
  var _chunkUF3DXKCIjs = require('./chunk-UF3DXKCI.js');
16
16
 
17
17
 
18
- var _chunkUIO6O4MIjs = require('./chunk-UIO6O4MI.js');
18
+ var _chunkFQO7BKXWjs = require('./chunk-FQO7BKXW.js');
19
19
 
20
20
 
21
21
  var _chunk4MQCUKICjs = require('./chunk-4MQCUKIC.js');
@@ -105,7 +105,7 @@ var ActivityFeed = ({
105
105
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _tigercatcore.activityItemTitleGroupClasses, children: [
106
106
  titleText ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUF3DXKCIjs.Text, { tag: "div", size: "sm", weight: "semibold", className: "text-gray-900 dark:text-gray-100 hover:text-blue-600 dark:hover:text-blue-400 transition-colors cursor-pointer truncate", children: titleText }) : null,
107
107
  item.status ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
108
- _chunkVCULFIZ5js.Tag,
108
+ _chunkZJI2VLILjs.Tag,
109
109
  {
110
110
  variant: _nullishCoalesce(item.status.variant, () => ( "default")),
111
111
  size: "sm",
@@ -141,7 +141,7 @@ var ActivityFeed = ({
141
141
  ...props,
142
142
  "data-tiger-activity-feed": true,
143
143
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
144
- _chunkUIO6O4MIjs.Card,
144
+ _chunkFQO7BKXWjs.Card,
145
145
  {
146
146
  variant: "bordered",
147
147
  size: "sm",
@@ -162,7 +162,7 @@ var ActivityFeed = ({
162
162
  ...props,
163
163
  "data-tiger-activity-feed": true,
164
164
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
165
- _chunkUIO6O4MIjs.Card,
165
+ _chunkFQO7BKXWjs.Card,
166
166
  {
167
167
  variant: "bordered",
168
168
  size: "sm",
@@ -194,7 +194,7 @@ var ActivityFeed = ({
194
194
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUF3DXKCIjs.Text, { tag: "span", size: "sm", weight: "bold", className: "text-gray-900 dark:text-gray-100 uppercase tracking-wider", children: groupTitle })
195
195
  ] }))) : null,
196
196
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
197
- _chunkPR3PQUKMjs.Timeline,
197
+ _chunkZZAR4IDSjs.Timeline,
198
198
  {
199
199
  items: timelineItems,
200
200
  style: {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useFormContext
3
- } from "./chunk-Y5E4XH6H.mjs";
3
+ } from "./chunk-F6IXIH6B.mjs";
4
4
 
5
5
  // src/components/FormItem.tsx
6
6
  import React, { useMemo, useEffect, useState, useCallback, useId, useRef } from "react";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Select
3
- } from "./chunk-T4OVGM4X.mjs";
3
+ } from "./chunk-KXNWY2Q7.mjs";
4
4
  import {
5
5
  Radio
6
6
  } from "./chunk-NPTXXUXF.mjs";
@@ -22,6 +22,7 @@ import {
22
22
  getTableWrapperClasses,
23
23
  getCardColumns,
24
24
  getCardGridInfo,
25
+ getTableResponsiveCardClasses,
25
26
  getTableResponsiveCardListClasses,
26
27
  getTableResponsiveTableClasses,
27
28
  getTableVirtualRecommendation,
@@ -29,7 +30,6 @@ import {
29
30
  formatTableSortByText,
30
31
  getTableLabels,
31
32
  tableBaseClasses,
32
- tableResponsiveCardClasses,
33
33
  tableResponsiveCardLabelClasses,
34
34
  tableResponsiveCardRowClasses,
35
35
  tableResponsiveCardTitleClasses,
@@ -996,6 +996,9 @@ function Table({
996
996
  cardClassName,
997
997
  renderCard,
998
998
  cardLayout,
999
+ cardSelectionPosition = "controls-row",
1000
+ cardPadding,
1001
+ cardFieldGap = "gap-3",
999
1002
  // v0.6.0 props
1000
1003
  virtual = false,
1001
1004
  autoVirtual = true,
@@ -1291,7 +1294,7 @@ function Table({
1291
1294
  }
1292
1295
  }
1293
1296
  ) }) : null,
1294
- ctx.paginatedData.length === 0 ? /* @__PURE__ */ jsx6("div", { className: tableResponsiveCardClasses, children: /* @__PURE__ */ jsx6(Empty, { showImage: false, description: tableLabels.emptyText }) }) : ctx.paginatedData.map((record, index) => {
1297
+ ctx.paginatedData.length === 0 ? /* @__PURE__ */ jsx6("div", { className: getTableResponsiveCardClasses(cardPadding), children: /* @__PURE__ */ jsx6(Empty, { showImage: false, description: tableLabels.emptyText }) }) : ctx.paginatedData.map((record, index) => {
1295
1298
  const key = ctx.pageRowKeys[index];
1296
1299
  const isExpanded = ctx.expandedRowKeySet.has(key);
1297
1300
  const isSelected = ctx.selectedRowKeySet.has(key);
@@ -1309,54 +1312,57 @@ function Table({
1309
1312
  };
1310
1313
  const customCard = renderCard?.(renderContext);
1311
1314
  const resolvedCardClassName = typeof cardClassName === "function" ? cardClassName(record, index) : cardClassName;
1315
+ const controlsNode = internalRowSelection?.showCheckbox !== false && internalRowSelection || internalExpandable && isRowExpandable ? /* @__PURE__ */ jsxs5(Fragment, { children: [
1316
+ internalRowSelection && internalRowSelection.showCheckbox !== false && /* @__PURE__ */ jsx6("span", { onClick: (event) => event.stopPropagation(), children: internalRowSelection.type === "radio" ? /* @__PURE__ */ jsx6(
1317
+ Radio,
1318
+ {
1319
+ value: key,
1320
+ checked: isSelected,
1321
+ disabled: internalRowSelection.getCheckboxProps?.(record)?.disabled,
1322
+ "aria-label": formatTableSelectRowAriaLabel(
1323
+ tableLabels.selectRowAriaLabel,
1324
+ index + 1,
1325
+ tableLocale?.locale
1326
+ ),
1327
+ onChange: () => ctx.handleSelectRow(key, true)
1328
+ }
1329
+ ) : /* @__PURE__ */ jsx6(
1330
+ Checkbox,
1331
+ {
1332
+ size: "sm",
1333
+ checked: isSelected,
1334
+ disabled: internalRowSelection.getCheckboxProps?.(record)?.disabled,
1335
+ "aria-label": formatTableSelectRowAriaLabel(
1336
+ tableLabels.selectRowAriaLabel,
1337
+ index + 1,
1338
+ tableLocale?.locale
1339
+ ),
1340
+ onChange: (checked) => ctx.handleSelectRow(key, checked)
1341
+ }
1342
+ ) }),
1343
+ internalExpandable && isRowExpandable && /* @__PURE__ */ jsx6(
1344
+ "button",
1345
+ {
1346
+ type: "button",
1347
+ className: "text-sm text-[var(--tiger-primary,#2563eb)]",
1348
+ "aria-expanded": isExpanded,
1349
+ onClick: (event) => {
1350
+ event.stopPropagation();
1351
+ ctx.handleToggleExpand(key, record);
1352
+ },
1353
+ children: isExpanded ? tableLabels.collapseText : tableLabels.expandText
1354
+ }
1355
+ )
1356
+ ] }) : null;
1312
1357
  return /* @__PURE__ */ jsx6(
1313
1358
  "div",
1314
1359
  {
1315
- className: classNames3(tableResponsiveCardClasses, resolvedCardClassName),
1360
+ className: classNames3(
1361
+ getTableResponsiveCardClasses(cardPadding),
1362
+ resolvedCardClassName
1363
+ ),
1316
1364
  onClick: () => ctx.handleRowClick(record, index, key),
1317
1365
  children: customCard !== void 0 && customCard !== null ? customCard : /* @__PURE__ */ jsxs5(Fragment, { children: [
1318
- internalRowSelection?.showCheckbox !== false && internalRowSelection || internalExpandable && isRowExpandable ? /* @__PURE__ */ jsxs5("div", { className: "mb-2 flex items-center gap-3", children: [
1319
- internalRowSelection && internalRowSelection.showCheckbox !== false && /* @__PURE__ */ jsx6("span", { onClick: (event) => event.stopPropagation(), children: internalRowSelection.type === "radio" ? /* @__PURE__ */ jsx6(
1320
- Radio,
1321
- {
1322
- value: key,
1323
- checked: isSelected,
1324
- disabled: internalRowSelection.getCheckboxProps?.(record)?.disabled,
1325
- "aria-label": formatTableSelectRowAriaLabel(
1326
- tableLabels.selectRowAriaLabel,
1327
- index + 1,
1328
- tableLocale?.locale
1329
- ),
1330
- onChange: () => ctx.handleSelectRow(key, true)
1331
- }
1332
- ) : /* @__PURE__ */ jsx6(
1333
- Checkbox,
1334
- {
1335
- size: "sm",
1336
- checked: isSelected,
1337
- disabled: internalRowSelection.getCheckboxProps?.(record)?.disabled,
1338
- "aria-label": formatTableSelectRowAriaLabel(
1339
- tableLabels.selectRowAriaLabel,
1340
- index + 1,
1341
- tableLocale?.locale
1342
- ),
1343
- onChange: (checked) => ctx.handleSelectRow(key, checked)
1344
- }
1345
- ) }),
1346
- internalExpandable && isRowExpandable && /* @__PURE__ */ jsx6(
1347
- "button",
1348
- {
1349
- type: "button",
1350
- className: "text-sm text-[var(--tiger-primary,#2563eb)]",
1351
- "aria-expanded": isExpanded,
1352
- onClick: (event) => {
1353
- event.stopPropagation();
1354
- ctx.handleToggleExpand(key, record);
1355
- },
1356
- children: isExpanded ? tableLabels.collapseText : tableLabels.expandText
1357
- }
1358
- )
1359
- ] }) : null,
1360
1366
  (() => {
1361
1367
  const { titleColumn, bodyColumns } = getCardColumns(ctx.displayColumns);
1362
1368
  const renderCellContent = (column) => {
@@ -1365,29 +1371,99 @@ function Table({
1365
1371
  };
1366
1372
  if (hasCustomCardLayout) {
1367
1373
  return /* @__PURE__ */ jsxs5(Fragment, { children: [
1368
- titleColumn && /* @__PURE__ */ jsx6("div", { className: tableResponsiveCardTitleClasses, children: renderCellContent(titleColumn) }),
1369
- /* @__PURE__ */ jsx6("div", { className: "grid grid-cols-12 gap-3 mt-2", children: bodyColumns.map((column) => {
1374
+ titleColumn && /* @__PURE__ */ jsxs5(
1375
+ "div",
1376
+ {
1377
+ className: classNames3(
1378
+ tableResponsiveCardTitleClasses,
1379
+ cardSelectionPosition === "title-inline" && controlsNode && "flex items-center gap-3"
1380
+ ),
1381
+ children: [
1382
+ cardSelectionPosition === "title-inline" && controlsNode,
1383
+ /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1", children: renderCellContent(titleColumn) })
1384
+ ]
1385
+ }
1386
+ ),
1387
+ (!titleColumn || cardSelectionPosition !== "title-inline") && controlsNode && /* @__PURE__ */ jsx6("div", { className: "mb-2 flex items-center gap-3", children: controlsNode }),
1388
+ /* @__PURE__ */ jsx6("div", { className: classNames3("grid grid-cols-12 mt-2", cardFieldGap), children: bodyColumns.map((column) => {
1370
1389
  const layoutItem = cardLayoutMap.get(column.key);
1371
1390
  const gridInfo = getCardGridInfo(column, layoutItem);
1372
1391
  if (gridInfo.hideLabel) {
1373
- return /* @__PURE__ */ jsx6("div", { className: gridInfo.className, children: renderCellContent(column) }, column.key);
1392
+ return /* @__PURE__ */ jsx6(
1393
+ "div",
1394
+ {
1395
+ className: classNames3(
1396
+ gridInfo.className,
1397
+ gridInfo.divider && "border-t border-[var(--tiger-border,#e5e7eb)] pt-3"
1398
+ ),
1399
+ children: renderCellContent(column)
1400
+ },
1401
+ column.key
1402
+ );
1374
1403
  }
1375
1404
  if (gridInfo.labelPosition === "top") {
1376
- return /* @__PURE__ */ jsxs5("div", { className: gridInfo.className, children: [
1377
- /* @__PURE__ */ jsx6("div", { className: "text-xs font-medium uppercase tracking-wider text-[var(--tiger-text-muted,#6b7280)] mb-1", children: column.title }),
1378
- /* @__PURE__ */ jsx6("div", { className: "min-w-0 text-sm text-[var(--tiger-text,#111827)] break-words", children: renderCellContent(column) })
1379
- ] }, column.key);
1405
+ return /* @__PURE__ */ jsxs5(
1406
+ "div",
1407
+ {
1408
+ className: classNames3(
1409
+ gridInfo.className,
1410
+ gridInfo.divider && "border-t border-[var(--tiger-border,#e5e7eb)] pt-3"
1411
+ ),
1412
+ children: [
1413
+ /* @__PURE__ */ jsx6(
1414
+ "div",
1415
+ {
1416
+ className: classNames3(
1417
+ "text-xs font-medium uppercase tracking-wider text-[var(--tiger-text-muted,#6b7280)] mb-1",
1418
+ gridInfo.labelClassName
1419
+ ),
1420
+ children: column.title
1421
+ }
1422
+ ),
1423
+ /* @__PURE__ */ jsx6(
1424
+ "div",
1425
+ {
1426
+ className: classNames3(
1427
+ "min-w-0 text-sm text-[var(--tiger-text,#111827)] break-words",
1428
+ gridInfo.valueClassName
1429
+ ),
1430
+ children: renderCellContent(column)
1431
+ }
1432
+ )
1433
+ ]
1434
+ },
1435
+ column.key
1436
+ );
1380
1437
  }
1381
1438
  return /* @__PURE__ */ jsxs5(
1382
1439
  "div",
1383
1440
  {
1384
1441
  className: classNames3(
1385
1442
  gridInfo.className,
1386
- "grid grid-cols-[auto_1fr] gap-2 items-baseline"
1443
+ "grid grid-cols-[auto_1fr] gap-2 items-baseline",
1444
+ gridInfo.divider && "border-t border-[var(--tiger-border,#e5e7eb)] pt-3"
1387
1445
  ),
1388
1446
  children: [
1389
- /* @__PURE__ */ jsx6("div", { className: "text-xs font-medium uppercase tracking-wider text-[var(--tiger-text-muted,#6b7280)] shrink-0", children: column.title }),
1390
- /* @__PURE__ */ jsx6("div", { className: "min-w-0 text-sm text-[var(--tiger-text,#111827)] break-words", children: renderCellContent(column) })
1447
+ /* @__PURE__ */ jsx6(
1448
+ "div",
1449
+ {
1450
+ className: classNames3(
1451
+ "text-xs font-medium uppercase tracking-wider text-[var(--tiger-text-muted,#6b7280)] shrink-0",
1452
+ gridInfo.labelClassName
1453
+ ),
1454
+ children: column.title
1455
+ }
1456
+ ),
1457
+ /* @__PURE__ */ jsx6(
1458
+ "div",
1459
+ {
1460
+ className: classNames3(
1461
+ "min-w-0 text-sm text-[var(--tiger-text,#111827)] break-words",
1462
+ gridInfo.valueClassName
1463
+ ),
1464
+ children: renderCellContent(column)
1465
+ }
1466
+ )
1391
1467
  ]
1392
1468
  },
1393
1469
  column.key
@@ -1396,7 +1472,20 @@ function Table({
1396
1472
  ] });
1397
1473
  }
1398
1474
  return /* @__PURE__ */ jsxs5(Fragment, { children: [
1399
- titleColumn && /* @__PURE__ */ jsx6("div", { className: tableResponsiveCardTitleClasses, children: renderCellContent(titleColumn) }),
1475
+ titleColumn && /* @__PURE__ */ jsxs5(
1476
+ "div",
1477
+ {
1478
+ className: classNames3(
1479
+ tableResponsiveCardTitleClasses,
1480
+ cardSelectionPosition === "title-inline" && controlsNode && "flex items-center gap-3"
1481
+ ),
1482
+ children: [
1483
+ cardSelectionPosition === "title-inline" && controlsNode,
1484
+ /* @__PURE__ */ jsx6("span", { className: "min-w-0 flex-1", children: renderCellContent(titleColumn) })
1485
+ ]
1486
+ }
1487
+ ),
1488
+ (!titleColumn || cardSelectionPosition !== "title-inline") && controlsNode && /* @__PURE__ */ jsx6("div", { className: "mb-2 flex items-center gap-3", children: controlsNode }),
1400
1489
  bodyColumns.map((column) => /* @__PURE__ */ jsxs5("div", { className: tableResponsiveCardRowClasses, children: [
1401
1490
  /* @__PURE__ */ jsx6("div", { className: tableResponsiveCardLabelClasses, children: column.title }),
1402
1491
  /* @__PURE__ */ jsx6("div", { className: tableResponsiveCardValueClasses, children: renderCellContent(column) })
@@ -3,7 +3,7 @@ import React from "react";
3
3
  import {
4
4
  classNames,
5
5
  getCardClasses,
6
- cardSizeClasses,
6
+ resolveCardPadding,
7
7
  cardHeaderClasses,
8
8
  cardFooterClasses,
9
9
  cardCoverWrapperClasses,
@@ -21,6 +21,7 @@ var Card = React.memo(
21
21
  hoverable = false,
22
22
  cover,
23
23
  coverAlt = "Card cover image",
24
+ padding,
24
25
  header,
25
26
  footer,
26
27
  actions,
@@ -29,11 +30,12 @@ var Card = React.memo(
29
30
  ...props
30
31
  }) => {
31
32
  const isHorizontal = direction === "horizontal";
32
- const sectionSizeClass = cover ? cardSizeClasses[size] : void 0;
33
+ const paddingClass = resolveCardPadding(size, padding);
34
+ const sectionSizeClass = cover ? paddingClass : void 0;
33
35
  const cardClasses = classNames(
34
36
  getCardClasses(variant, hoverable),
35
37
  cardDirectionClasses[direction],
36
- !cover && cardSizeClasses[size],
38
+ !cover && paddingClass,
37
39
  className
38
40
  );
39
41
  const getSectionClasses = (baseClasses) => classNames(baseClasses, sectionSizeClass);
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-QAIBQHIO.mjs";
8
8
  import {
9
9
  Button
10
- } from "./chunk-USWK2S3Y.mjs";
10
+ } from "./chunk-5TE7KLE5.mjs";
11
11
 
12
12
  // src/components/FormWizard.tsx
13
13
  import { useCallback, useEffect, useMemo, useState } from "react";
@@ -485,6 +485,7 @@ var Select = (props) => {
485
485
  "aria-expanded": isOpen,
486
486
  "aria-controls": listboxId,
487
487
  "aria-activedescendant": isOpen && activeIndex >= 0 ? getOptionId(activeIndex) : void 0,
488
+ "data-state": isOpen ? "open" : "closed",
488
489
  children: [
489
490
  /* @__PURE__ */ jsx(
490
491
  "span",
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-A42OLED6.mjs";
8
8
  import {
9
9
  Button
10
- } from "./chunk-USWK2S3Y.mjs";
10
+ } from "./chunk-5TE7KLE5.mjs";
11
11
  import {
12
12
  Loading
13
13
  } from "./chunk-FNJDBFKM.mjs";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-HLS4CHWX.mjs";
17
17
  import {
18
18
  Card
19
- } from "./chunk-P6E3DILH.mjs";
19
+ } from "./chunk-IXV5YBCZ.mjs";
20
20
 
21
21
  // src/components/NotificationCenter.tsx
22
22
  import { useMemo, useEffect, useState, useCallback } from "react";
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkUPPHGL64js = require('./chunk-UPPHGL64.js');
3
+ var _chunkCY5GRTAXjs = require('./chunk-CY5GRTAX.js');
4
4
 
5
5
  // src/components/FormItem.tsx
6
6
  var _react = require('react'); var _react2 = _interopRequireDefault(_react);
@@ -43,7 +43,7 @@ var FormItem = ({
43
43
  className,
44
44
  condition
45
45
  }) => {
46
- const formContext = _chunkUPPHGL64js.useFormContext.call(void 0, );
46
+ const formContext = _chunkCY5GRTAXjs.useFormContext.call(void 0, );
47
47
  const [errorMessage, setErrorMessage] = _react.useState.call(void 0, "");
48
48
  const [shakeTrigger, setShakeTrigger] = _react.useState.call(void 0, 0);
49
49
  const prevFormErrorRef = _react.useRef.call(void 0, "");
@@ -57,6 +57,7 @@ var Dropdown = ({
57
57
  style,
58
58
  onOpenChange,
59
59
  children,
60
+ renderTrigger,
60
61
  ...divProps
61
62
  }) => {
62
63
  const [internalVisible, setInternalVisible] = useState(defaultOpen);
@@ -170,18 +171,18 @@ var Dropdown = ({
170
171
  [closeOnClick, handleItemClick]
171
172
  );
172
173
  const childrenArray = React.Children.toArray(children);
173
- let triggerElement = null;
174
+ let triggerElement = renderTrigger ? renderTrigger({ open: visible }) : null;
174
175
  let menuElement = null;
175
176
  childrenArray.forEach((child) => {
176
177
  if (!React.isValidElement(child)) {
177
- if (triggerElement == null) triggerElement = child;
178
+ if (!renderTrigger && triggerElement == null) triggerElement = child;
178
179
  return;
179
180
  }
180
181
  if (child.type === DropdownMenu) {
181
182
  menuElement = child;
182
183
  return;
183
184
  }
184
- if (triggerElement == null) {
185
+ if (!renderTrigger && triggerElement == null) {
185
186
  triggerElement = child;
186
187
  }
187
188
  });
@@ -227,6 +228,7 @@ var Dropdown = ({
227
228
  "aria-haspopup": "menu",
228
229
  "aria-expanded": visible,
229
230
  "aria-controls": visible ? menuId : void 0,
231
+ "data-state": visible ? "open" : "closed",
230
232
  children: [
231
233
  triggerElement,
232
234
  chevronNode
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-7QZ4XT2P.mjs";
4
4
  import {
5
5
  Button
6
- } from "./chunk-USWK2S3Y.mjs";
6
+ } from "./chunk-5TE7KLE5.mjs";
7
7
  import {
8
8
  Tag
9
- } from "./chunk-TGKNEMD4.mjs";
9
+ } from "./chunk-WMPCN7OF.mjs";
10
10
  import {
11
11
  Text
12
12
  } from "./chunk-HLS4CHWX.mjs";
@@ -3,7 +3,7 @@
3
3
  var _chunkTDODFBBOjs = require('./chunk-TDODFBBO.js');
4
4
 
5
5
 
6
- var _chunk56ZV3VVYjs = require('./chunk-56ZV3VVY.js');
6
+ var _chunkZLNBE4ISjs = require('./chunk-ZLNBE4IS.js');
7
7
 
8
8
 
9
9
 
@@ -313,8 +313,8 @@ var Modal = ({
313
313
  ),
314
314
  children && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.modalBodyClasses, children }),
315
315
  footer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _tigercatcore.modalFooterClasses, "data-tiger-modal-footer": "", children: footer }) : showDefaultFooter ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _tigercatcore.modalFooterClasses, "data-tiger-modal-footer": "", children: [
316
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk56ZV3VVYjs.Button, { variant: "secondary", onClick: handleClose, children: resolvedCancelText }),
317
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk56ZV3VVYjs.Button, { onClick: handleOk, children: resolvedOkText })
316
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZLNBE4ISjs.Button, { variant: "secondary", onClick: handleClose, children: resolvedCancelText }),
317
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZLNBE4ISjs.Button, { onClick: handleOk, children: resolvedOkText })
318
318
  ] }) : null
319
319
  ]
320
320
  }
@@ -129,11 +129,12 @@ var Popconfirm = ({
129
129
  const cancelButtonClasses = getPopconfirmCancelButtonClasses();
130
130
  const okButtonClasses = useMemo(() => getPopconfirmOkButtonClasses(okType), [okType]);
131
131
  if (!children) return null;
132
+ const resolvedChildren = typeof children === "function" ? children({ open: Boolean(currentVisible) }) : children;
132
133
  const mergedStyle = mergeStyleValues(style);
133
134
  const triggerProps = {
134
135
  className: triggerClasses,
135
136
  onClick: (event) => {
136
- const target = children;
137
+ const target = resolvedChildren;
137
138
  if (React.isValidElement(target)) {
138
139
  const onChildClick = target.props.onClick;
139
140
  if (typeof onChildClick === "function") {
@@ -146,13 +147,14 @@ var Popconfirm = ({
146
147
  },
147
148
  "aria-haspopup": "dialog",
148
149
  "aria-expanded": Boolean(currentVisible),
149
- "aria-controls": currentVisible ? popconfirmId : void 0
150
+ "aria-controls": currentVisible ? popconfirmId : void 0,
151
+ "data-state": currentVisible ? "open" : "closed"
150
152
  };
151
153
  const triggerNode = (() => {
152
- if (React.isValidElement(children)) {
153
- return React.cloneElement(children, {
154
+ if (React.isValidElement(resolvedChildren)) {
155
+ return React.cloneElement(resolvedChildren, {
154
156
  ...triggerProps,
155
- className: classNames(children.props.className, triggerProps.className)
157
+ className: classNames(resolvedChildren.props.className, triggerProps.className)
156
158
  });
157
159
  }
158
160
  return /* @__PURE__ */ jsx(
@@ -169,7 +171,7 @@ var Popconfirm = ({
169
171
  handleTriggerClick();
170
172
  }
171
173
  },
172
- children
174
+ children: resolvedChildren
173
175
  }
174
176
  );
175
177
  })();