@vritti/quantum-ui 0.5.1 → 0.5.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.
@@ -0,0 +1,94 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { c as cn } from './utils.js';
3
+ import { C as CompactSwitch } from './Switch.js';
4
+
5
+ const TONES = {
6
+ success: {
7
+ pill: "border-success/40 bg-success/10",
8
+ label: "text-success",
9
+ track: "data-[state=checked]:bg-success"
10
+ },
11
+ primary: {
12
+ pill: "border-primary/40 bg-primary/10",
13
+ label: "text-primary",
14
+ track: "data-[state=checked]:bg-primary"
15
+ },
16
+ warning: {
17
+ pill: "border-warning/40 bg-warning/10",
18
+ label: "text-warning",
19
+ track: "data-[state=checked]:bg-warning"
20
+ },
21
+ destructive: {
22
+ pill: "border-destructive/40 bg-destructive/10",
23
+ label: "text-destructive",
24
+ track: "data-[state=checked]:bg-destructive"
25
+ }
26
+ };
27
+ const SIZES = {
28
+ sm: { switchSize: "sm", label: "text-[10px]", pill: "py-1 pr-1.5 pl-2.5" },
29
+ md: { switchSize: "default", label: "text-[11px]", pill: "py-1 pr-1.5 pl-3" },
30
+ lg: { switchSize: "lg", label: "text-xs", pill: "py-1.5 pr-2 pl-3.5" }
31
+ };
32
+ const StatusSwitch = ({
33
+ checked,
34
+ onCheckedChange,
35
+ ariaLabel,
36
+ activeLabel = "Active",
37
+ inactiveLabel = "Inactive",
38
+ showLabels = true,
39
+ tone = "success",
40
+ size = "sm",
41
+ permission,
42
+ disabled,
43
+ disabledTip,
44
+ isLoading,
45
+ className
46
+ }) => {
47
+ const { pill, label, track } = TONES[tone];
48
+ const dimensions = SIZES[size];
49
+ const isBlocked = disabled || isLoading;
50
+ return /* @__PURE__ */ jsxs(
51
+ "div",
52
+ {
53
+ className: cn(
54
+ "inline-flex items-center gap-2 rounded-full border border-dotted transition-colors duration-200",
55
+ dimensions.pill,
56
+ checked ? pill : "border-border bg-transparent",
57
+ isBlocked && "opacity-70",
58
+ className
59
+ ),
60
+ children: [
61
+ showLabels && /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "grid justify-items-end", children: [inactiveLabel, activeLabel].map((text, index) => /* @__PURE__ */ jsx(
62
+ "span",
63
+ {
64
+ className: cn(
65
+ "col-start-1 row-start-1 select-none font-semibold uppercase leading-none tracking-[0.08em] transition-all duration-200",
66
+ dimensions.label,
67
+ checked === (index === 1) ? "translate-y-0 opacity-100" : "-translate-y-1 opacity-0",
68
+ index === 1 ? label : "text-muted-foreground"
69
+ ),
70
+ children: text
71
+ },
72
+ index
73
+ )) }),
74
+ /* @__PURE__ */ jsx(
75
+ CompactSwitch,
76
+ {
77
+ size: dimensions.switchSize,
78
+ className: cn(track, "disabled:opacity-100"),
79
+ checked,
80
+ permission,
81
+ disabled: isBlocked,
82
+ disabledTip: disabled ? disabledTip : void 0,
83
+ onCheckedChange,
84
+ "aria-label": ariaLabel
85
+ }
86
+ )
87
+ ]
88
+ }
89
+ );
90
+ };
91
+ StatusSwitch.displayName = "StatusSwitch";
92
+
93
+ export { StatusSwitch as S };
94
+ //# sourceMappingURL=StatusSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusSwitch.js","sources":["../lib/components/StatusSwitch/StatusSwitch.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport { CompactSwitch } from '../Switch';\n\nexport type StatusSwitchTone = 'success' | 'primary' | 'warning' | 'destructive';\nexport type StatusSwitchSize = 'sm' | 'md' | 'lg';\n\nconst TONES: Record<StatusSwitchTone, { pill: string; label: string; track: string }> = {\n success: {\n pill: 'border-success/40 bg-success/10',\n label: 'text-success',\n track: 'data-[state=checked]:bg-success',\n },\n primary: {\n pill: 'border-primary/40 bg-primary/10',\n label: 'text-primary',\n track: 'data-[state=checked]:bg-primary',\n },\n warning: {\n pill: 'border-warning/40 bg-warning/10',\n label: 'text-warning',\n track: 'data-[state=checked]:bg-warning',\n },\n destructive: {\n pill: 'border-destructive/40 bg-destructive/10',\n label: 'text-destructive',\n track: 'data-[state=checked]:bg-destructive',\n },\n};\n\nconst SIZES: Record<StatusSwitchSize, { switchSize: 'sm' | 'default' | 'lg'; label: string; pill: string }> = {\n sm: { switchSize: 'sm', label: 'text-[10px]', pill: 'py-1 pr-1.5 pl-2.5' },\n md: { switchSize: 'default', label: 'text-[11px]', pill: 'py-1 pr-1.5 pl-3' },\n lg: { switchSize: 'lg', label: 'text-xs', pill: 'py-1.5 pr-2 pl-3.5' },\n};\n\nexport interface StatusSwitchProps {\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n ariaLabel: string;\n activeLabel?: string;\n inactiveLabel?: string;\n showLabels?: boolean;\n tone?: StatusSwitchTone;\n size?: StatusSwitchSize;\n permission?: string;\n disabled?: boolean;\n disabledTip?: string;\n isLoading?: boolean;\n className?: string;\n}\n\n// A switch that names the state it is in, for a row or header that toggles one flag. The label pair occupies one grid\n// cell and slides, so the control never changes width as it flips and a column of them stays aligned.\nexport const StatusSwitch: React.FC<StatusSwitchProps> = ({\n checked,\n onCheckedChange,\n ariaLabel,\n activeLabel = 'Active',\n inactiveLabel = 'Inactive',\n showLabels = true,\n tone = 'success',\n size = 'sm',\n permission,\n disabled,\n disabledTip,\n isLoading,\n className,\n}) => {\n const { pill, label, track } = TONES[tone];\n const dimensions = SIZES[size];\n // Saving is not a reason the control is unavailable, so it blocks input without claiming one\n const isBlocked = disabled || isLoading;\n\n return (\n <div\n className={cn(\n 'inline-flex items-center gap-2 rounded-full border border-dotted transition-colors duration-200',\n dimensions.pill,\n checked ? pill : 'border-border bg-transparent',\n isBlocked && 'opacity-70',\n className,\n )}\n >\n {showLabels && (\n <span aria-hidden className=\"grid justify-items-end\">\n {[inactiveLabel, activeLabel].map((text, index) => (\n <span\n // biome-ignore lint/suspicious/noArrayIndexKey: a fixed pair of slots, not a reorderable list\n key={index}\n className={cn(\n 'col-start-1 row-start-1 select-none font-semibold uppercase leading-none tracking-[0.08em] transition-all duration-200',\n dimensions.label,\n checked === (index === 1) ? 'translate-y-0 opacity-100' : '-translate-y-1 opacity-0',\n index === 1 ? label : 'text-muted-foreground',\n )}\n >\n {text}\n </span>\n ))}\n </span>\n )}\n {/* The pill already dims as a whole, and CSS opacity multiplies down the tree — leaving the switch's own\n disabled:opacity-50 in place would render the control at 35% against a 70% label */}\n <CompactSwitch\n size={dimensions.switchSize}\n className={cn(track, 'disabled:opacity-100')}\n checked={checked}\n permission={permission}\n disabled={isBlocked}\n disabledTip={disabled ? disabledTip : undefined}\n onCheckedChange={onCheckedChange}\n aria-label={ariaLabel}\n />\n </div>\n );\n};\n\nStatusSwitch.displayName = 'StatusSwitch';\n"],"names":[],"mappings":"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"}
@@ -1632,6 +1632,10 @@ select:-webkit-autofill:active {
1632
1632
  z-index: 50;
1633
1633
  }
1634
1634
 
1635
+ .col-start-1 {
1636
+ grid-column-start: 1;
1637
+ }
1638
+
1635
1639
  .col-start-2 {
1636
1640
  grid-column-start: 2;
1637
1641
  }
@@ -2578,6 +2582,11 @@ select:-webkit-autofill:active {
2578
2582
  translate: var(--tw-translate-x) var(--tw-translate-y);
2579
2583
  }
2580
2584
 
2585
+ .-translate-y-1 {
2586
+ --tw-translate-y: calc(var(--spacing) * -1);
2587
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2588
+ }
2589
+
2581
2590
  .-translate-y-1\/2 {
2582
2591
  --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
2583
2592
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -2588,6 +2597,11 @@ select:-webkit-autofill:active {
2588
2597
  translate: var(--tw-translate-x) var(--tw-translate-y);
2589
2598
  }
2590
2599
 
2600
+ .translate-y-0 {
2601
+ --tw-translate-y: 0px;
2602
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2603
+ }
2604
+
2591
2605
  .translate-y-\[-50\%\] {
2592
2606
  --tw-translate-y: -50%;
2593
2607
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -2844,6 +2858,10 @@ select:-webkit-autofill:active {
2844
2858
  justify-content: flex-start;
2845
2859
  }
2846
2860
 
2861
+ .justify-items-end {
2862
+ justify-items: end;
2863
+ }
2864
+
2847
2865
  .gap-0 {
2848
2866
  gap: 0;
2849
2867
  }
@@ -3185,6 +3203,11 @@ select:-webkit-autofill:active {
3185
3203
  border-style: dashed;
3186
3204
  }
3187
3205
 
3206
+ .border-dotted {
3207
+ --tw-border-style: dotted;
3208
+ border-style: dotted;
3209
+ }
3210
+
3188
3211
  .border-none {
3189
3212
  --tw-border-style: none;
3190
3213
  border-style: none;
@@ -3259,6 +3282,16 @@ select:-webkit-autofill:active {
3259
3282
  }
3260
3283
  }
3261
3284
 
3285
+ .border-destructive\/40 {
3286
+ border-color: var(--destructive);
3287
+ }
3288
+
3289
+ @supports (color: color-mix(in lab, red, red)) {
3290
+ .border-destructive\/40 {
3291
+ border-color: color-mix(in oklab, var(--destructive) 40%, transparent);
3292
+ }
3293
+ }
3294
+
3262
3295
  .border-destructive\/50 {
3263
3296
  border-color: var(--destructive);
3264
3297
  }
@@ -3363,14 +3396,30 @@ select:-webkit-autofill:active {
3363
3396
  }
3364
3397
  }
3365
3398
 
3399
+ .border-success\/40 {
3400
+ border-color: var(--success);
3401
+ }
3402
+
3403
+ @supports (color: color-mix(in lab, red, red)) {
3404
+ .border-success\/40 {
3405
+ border-color: color-mix(in oklab, var(--success) 40%, transparent);
3406
+ }
3407
+ }
3408
+
3366
3409
  .border-transparent {
3367
3410
  border-color: #0000;
3368
3411
  }
3369
3412
 
3370
- .border-warning {
3413
+ .border-warning, .border-warning\/40 {
3371
3414
  border-color: var(--warning);
3372
3415
  }
3373
3416
 
3417
+ @supports (color: color-mix(in lab, red, red)) {
3418
+ .border-warning\/40 {
3419
+ border-color: color-mix(in oklab, var(--warning) 40%, transparent);
3420
+ }
3421
+ }
3422
+
3374
3423
  .border-white {
3375
3424
  border-color: var(--color-white);
3376
3425
  }
@@ -4017,6 +4066,10 @@ select:-webkit-autofill:active {
4017
4066
  padding-left: calc(var(--spacing) * 3);
4018
4067
  }
4019
4068
 
4069
+ .pl-3\.5 {
4070
+ padding-left: calc(var(--spacing) * 3.5);
4071
+ }
4072
+
4020
4073
  .pl-6 {
4021
4074
  padding-left: calc(var(--spacing) * 6);
4022
4075
  }
@@ -4109,6 +4162,10 @@ select:-webkit-autofill:active {
4109
4162
  font-size: 10px;
4110
4163
  }
4111
4164
 
4165
+ .text-\[11px\] {
4166
+ font-size: 11px;
4167
+ }
4168
+
4112
4169
  .leading-6 {
4113
4170
  --tw-leading: calc(var(--spacing) * 6);
4114
4171
  line-height: calc(var(--spacing) * 6);
@@ -4159,6 +4216,11 @@ select:-webkit-autofill:active {
4159
4216
  font-weight: var(--font-weight-semibold);
4160
4217
  }
4161
4218
 
4219
+ .tracking-\[0\.08em\] {
4220
+ --tw-tracking: .08em;
4221
+ letter-spacing: .08em;
4222
+ }
4223
+
4162
4224
  .tracking-tight {
4163
4225
  --tw-tracking: calc(var(--tracking-normal) - .025em);
4164
4226
  letter-spacing: calc(var(--tracking-normal) - .025em);
@@ -5762,6 +5824,10 @@ select:-webkit-autofill:active {
5762
5824
  opacity: .5;
5763
5825
  }
5764
5826
 
5827
+ .disabled\:opacity-100:disabled {
5828
+ opacity: 1;
5829
+ }
5830
+
5765
5831
  :where([data-side="left"]) .in-data-\[side\=left\]\:cursor-w-resize {
5766
5832
  cursor: w-resize;
5767
5833
  }
@@ -6251,6 +6317,10 @@ select:-webkit-autofill:active {
6251
6317
  background-color: var(--color-blue-600);
6252
6318
  }
6253
6319
 
6320
+ .data-\[state\=checked\]\:bg-destructive[data-state="checked"] {
6321
+ background-color: var(--destructive);
6322
+ }
6323
+
6254
6324
  .data-\[state\=checked\]\:bg-green-600[data-state="checked"] {
6255
6325
  background-color: var(--color-green-600);
6256
6326
  }
@@ -6267,6 +6337,14 @@ select:-webkit-autofill:active {
6267
6337
  background-color: var(--color-red-600);
6268
6338
  }
6269
6339
 
6340
+ .data-\[state\=checked\]\:bg-success[data-state="checked"] {
6341
+ background-color: var(--success);
6342
+ }
6343
+
6344
+ .data-\[state\=checked\]\:bg-warning[data-state="checked"] {
6345
+ background-color: var(--warning);
6346
+ }
6347
+
6270
6348
  .data-\[state\=checked\]\:text-primary-foreground[data-state="checked"] {
6271
6349
  color: var(--primary-foreground);
6272
6350
  }
@@ -1,2 +1,2 @@
1
- export { C as CompactTableSkeleton, a as CurrencyCell, D as DataTable, b as DataTableColumnHeader, c as DataTableEmpty, d as DataTableFilters, e as DataTablePagination, f as DataTableRowDensity, g as DataTableSearch, h as DataTableSelectionBar, i as DataTableViewOptions, j as DateCell, k as DateTimeCell, N as NumberCell, R as RowActions, S as StringCell, l as exportToCSV, m as getSelectionColumn, u as useDataTable, n as useDataTableStore } from '../useDataTable.js';
1
+ export { C as CompactTableSkeleton, a as CurrencyCell, D as DataTable, b as DataTableColumnHeader, c as DataTableEmpty, d as DataTableFilters, e as DataTablePagination, f as DataTableRowDensity, g as DataTableSearch, h as DataTableSelectionBar, i as DataTableViewOptions, j as DateCell, k as DateTimeCell, N as NumberCell, R as RowActions, S as StringCell, l as getSelectionColumn, u as useDataTable, m as useDataTableStore } from '../useDataTable.js';
2
2
  //# sourceMappingURL=DataTable.js.map
@@ -0,0 +1,2 @@
1
+ export { S as StatusSwitch } from '../StatusSwitch.js';
2
+ //# sourceMappingURL=StatusSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusSwitch.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ export { C as Checkbox } from './Checkbox.js';
23
23
  export { C as CheckboxGroup } from './CheckboxGroup.js';
24
24
  export { C as Collapsible } from './Collapsible.js';
25
25
  export { C as CompactSwitch, S as Switch } from './Switch.js';
26
- export { C as CompactTableSkeleton, a as CurrencyCell, D as DataTable, b as DataTableColumnHeader, c as DataTableEmpty, d as DataTableFilters, e as DataTablePagination, f as DataTableRowDensity, g as DataTableSearch, h as DataTableSelectionBar, i as DataTableViewOptions, j as DateCell, k as DateTimeCell, N as NumberCell, R as RowActions, S as StringCell, l as exportToCSV, m as getSelectionColumn, u as useDataTable, n as useDataTableStore } from './useDataTable.js';
26
+ export { C as CompactTableSkeleton, a as CurrencyCell, D as DataTable, b as DataTableColumnHeader, c as DataTableEmpty, d as DataTableFilters, e as DataTablePagination, f as DataTableRowDensity, g as DataTableSearch, h as DataTableSelectionBar, i as DataTableViewOptions, j as DateCell, k as DateTimeCell, N as NumberCell, R as RowActions, S as StringCell, l as getSelectionColumn, u as useDataTable, m as useDataTableStore } from './useDataTable.js';
27
27
  export { C as ConfirmHost } from './ConfirmHost.js';
28
28
  export { C as Controller } from './index.esm.js';
29
29
  export { C as CopyButton } from './CopyButton.js';
@@ -72,6 +72,7 @@ export { j as SingleSelect } from './SingleSelect.js';
72
72
  export { S as Skeleton } from './Skeleton.js';
73
73
  export { S as SortableDragHandle, a as SortableItem, b as SortableList } from './Sortable.js';
74
74
  export { S as Spinner } from './Spinner.js';
75
+ export { S as StatusSwitch } from './StatusSwitch.js';
75
76
  export { S as StepProgressIndicator } from './StepProgressIndicator.js';
76
77
  export { T as Tabs, a as TabsContent, b as TabsList, c as TabsSkeleton, d as TabsTrigger } from './TabsSkeleton.js';
77
78
  export { T as TextArea } from './TextArea.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableSelectionBar.d.ts","sourceRoot":"","sources":["../../../../../lib/components/DataTable/components/DataTableSelectionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,OAAO,KAAK,EAAiB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGlE,UAAU,0BAA0B,CAAC,KAAK;IACxC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,EAC3C,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,EAAE,0BAA0B,CAAC,KAAK,CAAC,kDA6EnC;yBApFe,qBAAqB"}
1
+ {"version":3,"file":"DataTableSelectionBar.d.ts","sourceRoot":"","sources":["../../../../../lib/components/DataTable/components/DataTableSelectionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,OAAO,KAAK,EAAiB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGlE,UAAU,0BAA0B,CAAC,KAAK;IACxC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,EAC3C,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,EAAE,0BAA0B,CAAC,KAAK,CAAC,kDAsFnC;yBA7Fe,qBAAqB"}
@@ -18,5 +18,5 @@ export { useDataTable } from './hooks/useDataTable';
18
18
  export type { TableSlice, TableState } from './store/store';
19
19
  export { useDataTableStore } from './store/store';
20
20
  export type { ColumnDef, DataTableEmptyConfig, DataTableMeta, DataTableProps, DataTableSearchConfig, DataTableToolbarConfig, DensityType, ImportExportColumn, ImportExportConfig, SearchColumn, SearchState, SelectActions, } from './types';
21
- export { exportToCSV, getSelectionColumn } from './utils';
21
+ export { getSelectionColumn } from './utils';
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/components/DataTable/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/components/DataTable/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
@@ -47,8 +47,8 @@ export interface ImportExportColumn {
47
47
  export interface ImportExportConfig<TData = unknown> {
48
48
  columns: ImportExportColumn[];
49
49
  sampleData?: Record<string, string>[];
50
- importEndpoint: string;
51
- exportEndpoint: string;
50
+ importEndpoint?: string;
51
+ exportEndpoint?: string;
52
52
  transformExportRow?: (row: TData) => Record<string, unknown>;
53
53
  filename: string;
54
54
  onSuccess?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/components/DataTable/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/components/DataTable/types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import { Column, ColumnDef, Row, SortingState } from '@tanstack/react-table';
1
+ import { ColumnDef, Row, SortingState } from '@tanstack/react-table';
2
2
  import { SortCondition } from '../../types/table-filter';
3
3
  import { ImportExportConfig } from './types';
4
4
  export declare function sortConditionsToTanstack(sort: SortCondition[]): SortingState;
5
5
  export declare function tanstackToSortConditions(sorting: SortingState): SortCondition[];
6
6
  export declare function getSelectionColumn<TData>(): ColumnDef<TData, unknown>;
7
- export declare function exportToCSV<TData>(rows: Row<TData>[], columns: Column<TData, unknown>[], filename: string): void;
8
7
  export declare function downloadBlob(blob: Blob, filename: string): void;
9
8
  type ExportFormat = 'csv' | 'xlsx' | 'xls' | 'ods' | 'tsv';
10
9
  export declare function exportSelectedRows<TData>(rows: Row<TData>[], config: ImportExportConfig<TData>, format: ExportFormat): void;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/components/DataTable/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,MAAM,EAAE,SAAS,EAAiB,GAAG,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,YAAY,CAE5E;AAGD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE,CAE/E;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAsBrE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuBhH;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAS/D;AAiBD,KAAK,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAU3D,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAClB,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,EACjC,MAAM,EAAE,YAAY,GACnB,IAAI,CAYN"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/components/DataTable/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,SAAS,EAAiB,GAAG,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEtG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,YAAY,CAE5E;AAGD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE,CAE/E;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAsBrE;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAS/D;AAiBD,KAAK,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAU3D,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAClB,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,EACjC,MAAM,EAAE,YAAY,GACnB,IAAI,CAYN"}
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ export type StatusSwitchTone = 'success' | 'primary' | 'warning' | 'destructive';
3
+ export type StatusSwitchSize = 'sm' | 'md' | 'lg';
4
+ export interface StatusSwitchProps {
5
+ checked: boolean;
6
+ onCheckedChange: (checked: boolean) => void;
7
+ ariaLabel: string;
8
+ activeLabel?: string;
9
+ inactiveLabel?: string;
10
+ showLabels?: boolean;
11
+ tone?: StatusSwitchTone;
12
+ size?: StatusSwitchSize;
13
+ permission?: string;
14
+ disabled?: boolean;
15
+ disabledTip?: string;
16
+ isLoading?: boolean;
17
+ className?: string;
18
+ }
19
+ export declare const StatusSwitch: React.FC<StatusSwitchProps>;
20
+ //# sourceMappingURL=StatusSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusSwitch.d.ts","sourceRoot":"","sources":["../../../../lib/components/StatusSwitch/StatusSwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AACjF,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AA+BlD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8DpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { StatusSwitchProps, StatusSwitchSize, StatusSwitchTone } from './StatusSwitch';
2
+ export { StatusSwitch } from './StatusSwitch';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/components/StatusSwitch/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -50,6 +50,7 @@ export * from './Sonner';
50
50
  export * from './Sortable';
51
51
  export * from './Spinner';
52
52
  export * from './StepProgressIndicator';
53
+ export * from './StatusSwitch';
53
54
  export * from './Switch';
54
55
  export * from './Tabs';
55
56
  export * from './TextArea';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -19889,24 +19889,6 @@ function getSelectionColumn() {
19889
19889
  size: 40
19890
19890
  };
19891
19891
  }
19892
- function exportToCSV(rows, columns, filename) {
19893
- const exportColumns = columns.filter((col) => "accessorKey" in col.columnDef && col.getIsVisible());
19894
- const headers = exportColumns.map((col) => {
19895
- const h = col.columnDef.header;
19896
- return typeof h === "string" ? h : col.id;
19897
- });
19898
- const csvRows = rows.map((row) => exportColumns.map((col) => String(row.getValue(col.id) ?? "")));
19899
- const csvContent = [headers, ...csvRows].map((row) => row.map((cell) => `"${cell.replace(/"/g, '""')}"`).join(",")).join("\n");
19900
- const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
19901
- const url = URL.createObjectURL(blob);
19902
- const a = document.createElement("a");
19903
- a.href = url;
19904
- a.download = `${filename}.csv`;
19905
- document.body.appendChild(a);
19906
- a.click();
19907
- document.body.removeChild(a);
19908
- URL.revokeObjectURL(url);
19909
- }
19910
19892
  function downloadBlob(blob, filename) {
19911
19893
  const url = URL.createObjectURL(blob);
19912
19894
  const a = document.createElement("a");
@@ -19960,8 +19942,12 @@ function DataTableSelectionBar({
19960
19942
  const singular = meta?.singular ?? "row";
19961
19943
  const plural = meta?.plural ?? "rows";
19962
19944
  if (count === 0) return null;
19963
- const handleLegacyExport = () => {
19964
- exportToCSV(selectedRows, table.getAllColumns(), meta?.slug ?? "export");
19945
+ const exportConfig = importExport ?? {
19946
+ columns: table.getAllColumns().filter((column) => "accessorKey" in column.columnDef && column.getIsVisible()).map((column) => ({
19947
+ key: column.id,
19948
+ label: typeof column.columnDef.header === "string" ? column.columnDef.header : column.id
19949
+ })),
19950
+ filename: meta?.slug ?? "export"
19965
19951
  };
19966
19952
  return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2 px-4 py-3 border-b", className), children: [
19967
19953
  /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium mr-2", children: [
@@ -19980,49 +19966,51 @@ function DataTableSelectionBar({
19980
19966
  disabled: true,
19981
19967
  disabledTip: exportLockTip,
19982
19968
  startAdornment: /* @__PURE__ */ jsx(Download, { className: "h-4 w-4" }),
19983
- children: "Export"
19969
+ children: "Export Selected"
19984
19970
  }
19985
- ) : importExport ? /* @__PURE__ */ jsx(
19971
+ ) : /* @__PURE__ */ jsx(
19986
19972
  DropdownMenu,
19987
19973
  {
19988
- trigger: { label: "Export", variant: "outline", icon: Download, className: "h-8 text-sm" },
19974
+ trigger: {
19975
+ label: "Export Selected",
19976
+ variant: "outline",
19977
+ icon: Download,
19978
+ className: "h-8 text-sm"
19979
+ },
19989
19980
  items: [
19990
19981
  {
19991
19982
  type: "item",
19992
19983
  id: "csv",
19993
19984
  label: "CSV (.csv)",
19994
- onClick: () => exportSelectedRows(selectedRows, importExport, "csv")
19985
+ onClick: () => exportSelectedRows(selectedRows, exportConfig, "csv")
19995
19986
  },
19996
19987
  {
19997
19988
  type: "item",
19998
19989
  id: "xlsx",
19999
19990
  label: "Excel (.xlsx)",
20000
- onClick: () => exportSelectedRows(selectedRows, importExport, "xlsx")
19991
+ onClick: () => exportSelectedRows(selectedRows, exportConfig, "xlsx")
20001
19992
  },
20002
19993
  {
20003
19994
  type: "item",
20004
19995
  id: "xls",
20005
19996
  label: "Excel 97-2004 (.xls)",
20006
- onClick: () => exportSelectedRows(selectedRows, importExport, "xls")
19997
+ onClick: () => exportSelectedRows(selectedRows, exportConfig, "xls")
20007
19998
  },
20008
19999
  {
20009
20000
  type: "item",
20010
20001
  id: "ods",
20011
20002
  label: "OpenDocument (.ods)",
20012
- onClick: () => exportSelectedRows(selectedRows, importExport, "ods")
20003
+ onClick: () => exportSelectedRows(selectedRows, exportConfig, "ods")
20013
20004
  },
20014
20005
  {
20015
20006
  type: "item",
20016
20007
  id: "tsv",
20017
20008
  label: "TSV (.tsv)",
20018
- onClick: () => exportSelectedRows(selectedRows, importExport, "tsv")
20009
+ onClick: () => exportSelectedRows(selectedRows, exportConfig, "tsv")
20019
20010
  }
20020
20011
  ]
20021
20012
  }
20022
- ) : /* @__PURE__ */ jsxs(Button, { variant: "outline", size: "sm", onClick: handleLegacyExport, children: [
20023
- /* @__PURE__ */ jsx(Download, { className: "mr-2 h-4 w-4" }),
20024
- "Export"
20025
- ] }) })
20013
+ ) })
20026
20014
  ] });
20027
20015
  }
20028
20016
  DataTableSelectionBar.displayName = "DataTableSelectionBar";
@@ -24315,8 +24303,8 @@ function DataTable({
24315
24303
  const density = meta?.density ?? "normal";
24316
24304
  const columnCount = table.getAllColumns().length;
24317
24305
  const visibilityEnabled = table.options.enableHiding !== false;
24318
- const showImport = !!importExport && importGate.granted;
24319
- const showExport = !!importExport && exportGate.granted;
24306
+ const showImport = !!importExport?.importEndpoint && importGate.granted;
24307
+ const showExport = !!importExport?.exportEndpoint && exportGate.granted;
24320
24308
  const showToolbar = searchConfig || visibilityEnabled || toolbarActions || filters || enableViews && slug || showImport || showExport;
24321
24309
  const search = meta?.search ?? null;
24322
24310
  const hasActiveView = !!activeViewId;
@@ -24332,7 +24320,7 @@ function DataTable({
24332
24320
  }, [selectedCount]);
24333
24321
  const exportMutation = useMutation({
24334
24322
  mutationFn: async (format) => {
24335
- if (!importExport) return;
24323
+ if (!importExport?.exportEndpoint) return;
24336
24324
  const response = await axios.get(`${importExport.exportEndpoint}/${format}`, {
24337
24325
  responseType: "blob",
24338
24326
  showSuccessToast: false
@@ -24631,7 +24619,7 @@ function DataTable({
24631
24619
  ] })
24632
24620
  ] }),
24633
24621
  (mode !== "compact" || table.getRowCount() > (table.getState().pagination?.pageSize ?? 20)) && /* @__PURE__ */ jsx(DataTablePagination, { table }),
24634
- importExport && showImport && /* @__PURE__ */ jsx(
24622
+ importExport?.importEndpoint && showImport && /* @__PURE__ */ jsx(
24635
24623
  DataTableImportDialog,
24636
24624
  {
24637
24625
  handle: importDialog,
@@ -24886,5 +24874,5 @@ function useDataTable({
24886
24874
  return { table };
24887
24875
  }
24888
24876
 
24889
- export { CompactTableSkeleton as C, DataTable as D, NumberCell as N, RowActions as R, StringCell as S, CurrencyCell as a, DataTableColumnHeader as b, DataTableEmpty as c, DataTableFilters as d, DataTablePagination as e, DataTableRowDensity as f, DataTableSearch as g, DataTableSelectionBar as h, DataTableViewOptions as i, DateCell as j, DateTimeCell as k, exportToCSV as l, getSelectionColumn as m, useDataTableStore as n, useDataTable as u };
24877
+ export { CompactTableSkeleton as C, DataTable as D, NumberCell as N, RowActions as R, StringCell as S, CurrencyCell as a, DataTableColumnHeader as b, DataTableEmpty as c, DataTableFilters as d, DataTablePagination as e, DataTableRowDensity as f, DataTableSearch as g, DataTableSelectionBar as h, DataTableViewOptions as i, DateCell as j, DateTimeCell as k, getSelectionColumn as l, useDataTableStore as m, useDataTable as u };
24890
24878
  //# sourceMappingURL=useDataTable.js.map