@veeqo/transfigure 1.2.6 → 1.2.8

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 (120) hide show
  1. package/dist/BusinessLogic/mocks.d.ts +1 -0
  2. package/dist/components/Filters/ActiveFilters/Categories/FilterField/FilterField.d.ts +3 -1
  3. package/dist/constants/constants.d.ts +1 -0
  4. package/dist/hooks/useViewCountsHook/useViewCountsHook.d.ts +2 -2
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.css +1 -1
  7. package/dist/index.js +89 -88
  8. package/dist/index10.cjs +1 -1
  9. package/dist/index10.js +37 -30
  10. package/dist/index100.cjs +1 -12
  11. package/dist/index100.js +50 -16
  12. package/dist/index101.cjs +1 -1
  13. package/dist/index101.js +29 -38
  14. package/dist/index102.cjs +1 -1
  15. package/dist/index102.js +21 -29
  16. package/dist/index103.cjs +1 -19
  17. package/dist/index103.js +7 -24
  18. package/dist/index104.cjs +1 -1
  19. package/dist/index104.js +24 -21
  20. package/dist/index105.cjs +1 -1
  21. package/dist/index105.js +17 -14
  22. package/dist/index106.cjs +1 -1
  23. package/dist/index106.js +15 -24
  24. package/dist/index107.cjs +10 -78
  25. package/dist/index107.js +13 -98
  26. package/dist/index108.cjs +80 -1
  27. package/dist/index108.js +101 -19
  28. package/dist/index109.cjs +1 -1
  29. package/dist/index109.js +18 -7
  30. package/dist/index110.cjs +1 -1
  31. package/dist/index110.js +7 -63
  32. package/dist/index111.cjs +1 -1
  33. package/dist/index111.js +60 -26
  34. package/dist/index112.cjs +1 -13
  35. package/dist/index112.js +30 -17
  36. package/dist/index115.cjs +13 -1
  37. package/dist/index115.js +15 -24
  38. package/dist/index116.cjs +1 -1
  39. package/dist/index116.js +25 -62
  40. package/dist/index117.cjs +1 -1
  41. package/dist/index117.js +5 -47
  42. package/dist/index118.cjs +1 -7
  43. package/dist/index118.js +63 -10
  44. package/dist/index119.cjs +1 -0
  45. package/dist/index119.js +49 -0
  46. package/dist/index120.cjs +7 -0
  47. package/dist/index120.js +12 -0
  48. package/dist/index13.cjs +1 -1
  49. package/dist/index13.js +16 -15
  50. package/dist/index17.cjs +1 -1
  51. package/dist/index17.js +1 -1
  52. package/dist/index18.cjs +1 -1
  53. package/dist/index18.js +10 -9
  54. package/dist/index19.cjs +1 -1
  55. package/dist/index19.js +33 -26
  56. package/dist/index20.cjs +1 -1
  57. package/dist/index20.js +21 -20
  58. package/dist/index22.cjs +1 -1
  59. package/dist/index22.js +1 -1
  60. package/dist/index30.cjs +1 -1
  61. package/dist/index30.js +40 -37
  62. package/dist/index34.cjs +1 -1
  63. package/dist/index34.js +1 -1
  64. package/dist/index35.cjs +1 -1
  65. package/dist/index35.js +7 -7
  66. package/dist/index36.cjs +1 -1
  67. package/dist/index36.js +3 -3
  68. package/dist/index39.cjs +1 -1
  69. package/dist/index39.js +1 -1
  70. package/dist/index40.cjs +1 -1
  71. package/dist/index40.js +1 -1
  72. package/dist/index41.cjs +1 -1
  73. package/dist/index41.js +1 -1
  74. package/dist/index42.cjs +1 -1
  75. package/dist/index42.js +1 -1
  76. package/dist/index44.cjs +1 -1
  77. package/dist/index44.js +1 -1
  78. package/dist/index46.cjs +1 -1
  79. package/dist/index46.js +2 -2
  80. package/dist/index47.cjs +1 -1
  81. package/dist/index47.js +2 -2
  82. package/dist/index49.cjs +1 -1
  83. package/dist/index49.js +6 -5
  84. package/dist/index78.cjs +1 -1
  85. package/dist/index78.js +11 -10
  86. package/dist/index79.cjs +1 -1
  87. package/dist/index79.js +3 -2
  88. package/dist/index80.cjs +1 -1
  89. package/dist/index80.js +1 -1
  90. package/dist/index87.cjs +1 -1
  91. package/dist/index87.js +2 -118
  92. package/dist/index88.cjs +1 -1
  93. package/dist/index88.js +40 -18
  94. package/dist/index89.cjs +1 -1
  95. package/dist/index89.js +9 -41
  96. package/dist/index90.cjs +1 -1
  97. package/dist/index90.js +117 -8
  98. package/dist/index91.cjs +1 -1
  99. package/dist/index91.js +19 -13
  100. package/dist/index92.cjs +1 -104
  101. package/dist/index92.js +13 -120
  102. package/dist/index93.cjs +104 -1
  103. package/dist/index93.js +117 -65
  104. package/dist/index94.cjs +1 -1
  105. package/dist/index94.js +63 -24
  106. package/dist/index95.cjs +1 -1
  107. package/dist/index95.js +29 -2
  108. package/dist/index96.cjs +1 -1
  109. package/dist/index96.js +2 -41
  110. package/dist/index97.cjs +1 -1
  111. package/dist/index97.js +39 -9
  112. package/dist/index98.cjs +1 -1
  113. package/dist/index98.js +10 -17
  114. package/dist/index99.cjs +19 -1
  115. package/dist/index99.js +24 -7
  116. package/dist/types.d.ts +2 -24
  117. package/dist/utils/isTextFilterValid/index.d.ts +1 -0
  118. package/dist/utils/isTextFilterValid/isTextFilterValid.d.ts +7 -0
  119. package/dist/utils/isTextFilterValid/isTextFilterValid.test.d.ts +1 -0
  120. package/package.json +1 -1
package/dist/index93.js CHANGED
@@ -1,70 +1,122 @@
1
- import { jsx as r, jsxs as f } from "react/jsx-runtime";
2
- import { useSensors as u, useSensor as n, PointerSensor as y, KeyboardSensor as S, DndContext as h, MeasuringStrategy as A, DragOverlay as E, defaultDropAnimationSideEffects as C } from "@dnd-kit/core";
3
- import { sortableKeyboardCoordinates as M } from "@dnd-kit/sortable";
4
- import { DndDragOverlayDialog as v } from "./index92.js";
5
- import { Alert as b } from "@veeqo/ui";
6
- import { useModal as x } from "./index52.js";
7
- import { useDragHandlers as O } from "./index110.js";
8
- import { useCollisionDetectionStrategy as I } from "./index111.js";
9
- import { ErrorBoundary as R } from "./index12.js";
10
- import { ModalId as j } from "./index51.js";
11
- const B = {
12
- droppable: {
13
- strategy: A.Always
14
- }
15
- }, G = {
16
- sideEffects: C({
17
- styles: {
18
- active: {
19
- opacity: "0.5"
20
- }
21
- }
22
- })
23
- }, q = ({
24
- items: o,
25
- setItems: a,
26
- children: i,
27
- renderDragOverlay: e
28
- }) => {
29
- const { closeModal: s, openModal: l } = x(), d = u(
30
- n(y),
31
- n(S, {
32
- coordinateGetter: M
33
- })
34
- ), { activeId: t, handleDragCancel: c, handleDragEnd: m, handleDragOver: p, handleDragStart: D } = O({ items: o, setItems: a }), { collisionDetectionStrategy: g } = I({
35
- items: o
36
- });
37
- return /* @__PURE__ */ r(R, { errorComponent: /* @__PURE__ */ r(b, { variant: "error", title: "An error occurred", rightActions: [
38
- {
39
- label: "Reload",
40
- onClick: () => {
41
- s(), l(j.ORDERS_TABLE_MANAGEMENT);
1
+ import r from "styled-components";
2
+ import { Grid as l, theme as o, Text as t, BaseContainer as n, Search as s, Stack as i } from "@veeqo/ui";
3
+ import { VeeqoCommon as a } from "@veeqo/components";
4
+ const { Glyph: c } = a, b = r.div`
5
+ width: 1px;
6
+ position: absolute;
7
+ left: 50%;
8
+ transform: translateX(-50%);
9
+ border-left: 1px solid ${o.colors.neutral.grey.dark};
10
+ height: 100%;
11
+ margin-top: 40px;
12
+ `, f = r(t)`
13
+ writing-mode: vertical-rl;
14
+ position: absolute;
15
+ top: 50%;
16
+ left: 50%;
17
+ transform: translate(-50%, -50%);
18
+ background: white;
19
+ padding: 30px 0;
20
+ text-align: center;
21
+ font-size: 10px;
22
+ color: ${o.colors.neutral.ink.lightest};
23
+ height: max-content;
24
+ `, h = r(t)`
25
+ position: sticky;
26
+ top: 0;
27
+ background: #ffffff;
28
+ padding-bottom: ${o.sizes[2]};
29
+ z-index: 1;
30
+ `, x = r(t)`
31
+ color: ${o.colors.neutral.ink.light};
32
+ `, m = r(l)`
33
+ // overflow-y: auto;
34
+ position: unset;
35
+ `, d = r(c).attrs(() => ({ name: "visibility-off" }))`
36
+ margin-left: auto;
37
+ `, $ = r(i)`
38
+ border-radius: 4px;
39
+ padding: 8px 12px;
40
+ background: #ffffff;
41
+ border: 1px solid ${o.colors.neutral.ink.lightest};
42
+ transition: all ease 200ms;
43
+
44
+ ${({ isHidden: e }) => e && `
45
+ ${t} {
46
+ color: ${o.colors.neutral.ink.light};
42
47
  }
48
+ `}
49
+
50
+ &:hover {
51
+ color: ${o.colors.secondary.blue.base};
52
+ background: ${o.colors.neutral.grey.lightest};
53
+ border: 1px solid ${o.colors.neutral.grey.light};
54
+
55
+ ${t} {
56
+ color: ${o.colors.secondary.blue.base};
43
57
  }
44
- ] }), children: /* @__PURE__ */ f(
45
- h,
46
- {
47
- sensors: d,
48
- measuring: B,
49
- collisionDetection: g,
50
- onDragStart: D,
51
- onDragOver: p,
52
- onDragEnd: m,
53
- onDragCancel: c,
54
- children: [
55
- i,
56
- /* @__PURE__ */ r(v, { open: !0, children: /* @__PURE__ */ r(
57
- E,
58
- {
59
- dropAnimation: G,
60
- zIndex: 2001,
61
- children: t && e ? e(t) : null
62
- }
63
- ) })
64
- ]
58
+
59
+ ${d} {
60
+ color: ${o.colors.neutral.ink.light};
65
61
  }
66
- ) });
67
- };
62
+ }
63
+
64
+ ${({ isDragOverlay: e }) => e && `
65
+ color: ${o.colors.secondary.blue.base};
66
+ background: ${o.colors.neutral.grey.lightest};
67
+ border: 1px solid ${o.colors.neutral.grey.light};
68
+ cursor: grabbing;
69
+
70
+ ${t} {
71
+ color: ${o.colors.secondary.blue.base};
72
+ }
73
+ `}
74
+ `, y = r.div`
75
+ position: absolute;
76
+ top: 0;
77
+ left: 0;
78
+ right: 0;
79
+ bottom: 0;
80
+ height: 100%;
81
+ width: calc(100% - 2px);
82
+ border-radius: 4px;
83
+ border: 1px dashed ${o.colors.neutral.grey.dark};
84
+ background: ${o.colors.neutral.grey.lightest};
85
+ `, k = r(i)`
86
+ flex: 1;
87
+ padding: 0;
88
+ `, v = r(s)`
89
+ input {
90
+ height: 40px;
91
+ box-sizing: border-box;
92
+ }
93
+
94
+ svg {
95
+ width: 16px;
96
+ }
97
+ `, C = r.div`
98
+ position: relative;
99
+ min-height: 500px;
100
+ `, w = r(n)`
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: ${o.sizes.base};
104
+ padding: ${o.sizes.md};
105
+ `, z = r.dialog`
106
+ display: contents;
107
+ `;
68
108
  export {
69
- q as DndContainer
109
+ m as ColumnGroupsGrid,
110
+ $ as ColumnItemWrapper,
111
+ v as ColumnSearch,
112
+ C as Container,
113
+ x as DetailedText,
114
+ z as DndDragOverlayDialog,
115
+ y as DraggingOverlay,
116
+ k as DroppableAreaStack,
117
+ w as HeaderContainer,
118
+ h as StickyText,
119
+ b as VerticalSeparator,
120
+ f as VerticalText,
121
+ d as VisibilityOffIcon
70
122
  };
package/dist/index94.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("@veeqo/ui"),a=require("@veeqo/components"),n=require("./index92.cjs"),{Glyph:c}=a.VeeqoCommon,l=({column:t,isHidden:r,isDragOverlay:s})=>{const o=t.title||t.tooltip;return e.jsxs(n.ColumnItemWrapper,{direction:"horizontal",spacing:"sm",alignY:"center",isHidden:r,isDragOverlay:s,children:[e.jsx(c,{name:"drag-indicator",size:4}),t.detailed?e.jsxs(i.Stack,{spacing:"xs",children:[e.jsxs(i.Text,{variant:"body",children:[o," (detailed)"]}),e.jsx(n.DetailedText,{variant:"hintText",children:t.detailed})]}):e.jsx(i.Text,{variant:"body",children:o}),!s&&r&&e.jsx(n.VisibilityOffIcon,{size:4})]})};exports.ColumnItem=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("@dnd-kit/core"),S=require("@dnd-kit/sortable"),h=require("./index93.cjs"),q=require("@veeqo/ui"),C=require("./index52.cjs"),E=require("./index111.cjs"),p=require("./index112.cjs"),A=require("./index12.cjs"),b=require("./index51.cjs"),x={droppable:{strategy:e.MeasuringStrategy.Always}},M={sideEffects:e.defaultDropAnimationSideEffects({styles:{active:{opacity:"0.5"}}})},j=({items:o,setItems:s,children:a,renderDragOverlay:n})=>{const{closeModal:i,openModal:l}=C.useModal(),c=e.useSensors(e.useSensor(e.PointerSensor),e.useSensor(e.KeyboardSensor,{coordinateGetter:S.sortableKeyboardCoordinates})),{activeId:t,handleDragCancel:d,handleDragEnd:u,handleDragOver:g,handleDragStart:D}=E.useDragHandlers({items:o,setItems:s}),{collisionDetectionStrategy:y}=p.useCollisionDetectionStrategy({items:o});return r.jsx(A.ErrorBoundary,{errorComponent:r.jsx(q.Alert,{variant:"error",title:"An error occurred",rightActions:[{label:"Reload",onClick:()=>{i(),l(b.ModalId.ORDERS_TABLE_MANAGEMENT)}}]}),children:r.jsxs(e.DndContext,{sensors:c,measuring:x,collisionDetection:y,onDragStart:D,onDragOver:g,onDragEnd:u,onDragCancel:d,children:[a,r.jsx(h.DndDragOverlayDialog,{open:!0,children:r.jsx(e.DragOverlay,{dropAnimation:M,zIndex:2001,children:t&&n?n(t):null})})]})})};exports.DndContainer=j;
package/dist/index94.js CHANGED
@@ -1,31 +1,70 @@
1
- import { jsxs as e, jsx as i } from "react/jsx-runtime";
2
- import { Stack as d, Text as a } from "@veeqo/ui";
3
- import { VeeqoCommon as l } from "@veeqo/components";
4
- import { ColumnItemWrapper as m, DetailedText as c, VisibilityOffIcon as p } from "./index92.js";
5
- const { Glyph: s } = l, g = ({ column: t, isHidden: r, isDragOverlay: o }) => {
6
- const n = t.title || t.tooltip;
7
- return /* @__PURE__ */ e(
8
- m,
1
+ import { jsx as r, jsxs as f } from "react/jsx-runtime";
2
+ import { useSensors as u, useSensor as n, PointerSensor as y, KeyboardSensor as S, DndContext as h, MeasuringStrategy as A, DragOverlay as E, defaultDropAnimationSideEffects as C } from "@dnd-kit/core";
3
+ import { sortableKeyboardCoordinates as M } from "@dnd-kit/sortable";
4
+ import { DndDragOverlayDialog as v } from "./index93.js";
5
+ import { Alert as b } from "@veeqo/ui";
6
+ import { useModal as x } from "./index52.js";
7
+ import { useDragHandlers as O } from "./index111.js";
8
+ import { useCollisionDetectionStrategy as I } from "./index112.js";
9
+ import { ErrorBoundary as R } from "./index12.js";
10
+ import { ModalId as j } from "./index51.js";
11
+ const B = {
12
+ droppable: {
13
+ strategy: A.Always
14
+ }
15
+ }, G = {
16
+ sideEffects: C({
17
+ styles: {
18
+ active: {
19
+ opacity: "0.5"
20
+ }
21
+ }
22
+ })
23
+ }, q = ({
24
+ items: o,
25
+ setItems: a,
26
+ children: i,
27
+ renderDragOverlay: e
28
+ }) => {
29
+ const { closeModal: s, openModal: l } = x(), d = u(
30
+ n(y),
31
+ n(S, {
32
+ coordinateGetter: M
33
+ })
34
+ ), { activeId: t, handleDragCancel: c, handleDragEnd: m, handleDragOver: p, handleDragStart: D } = O({ items: o, setItems: a }), { collisionDetectionStrategy: g } = I({
35
+ items: o
36
+ });
37
+ return /* @__PURE__ */ r(R, { errorComponent: /* @__PURE__ */ r(b, { variant: "error", title: "An error occurred", rightActions: [
38
+ {
39
+ label: "Reload",
40
+ onClick: () => {
41
+ s(), l(j.ORDERS_TABLE_MANAGEMENT);
42
+ }
43
+ }
44
+ ] }), children: /* @__PURE__ */ f(
45
+ h,
9
46
  {
10
- direction: "horizontal",
11
- spacing: "sm",
12
- alignY: "center",
13
- isHidden: r,
14
- isDragOverlay: o,
47
+ sensors: d,
48
+ measuring: B,
49
+ collisionDetection: g,
50
+ onDragStart: D,
51
+ onDragOver: p,
52
+ onDragEnd: m,
53
+ onDragCancel: c,
15
54
  children: [
16
- /* @__PURE__ */ i(s, { name: "drag-indicator", size: 4 }),
17
- t.detailed ? /* @__PURE__ */ e(d, { spacing: "xs", children: [
18
- /* @__PURE__ */ e(a, { variant: "body", children: [
19
- n,
20
- " (detailed)"
21
- ] }),
22
- /* @__PURE__ */ i(c, { variant: "hintText", children: t.detailed })
23
- ] }) : /* @__PURE__ */ i(a, { variant: "body", children: n }),
24
- !o && r && /* @__PURE__ */ i(p, { size: 4 })
55
+ i,
56
+ /* @__PURE__ */ r(v, { open: !0, children: /* @__PURE__ */ r(
57
+ E,
58
+ {
59
+ dropAnimation: G,
60
+ zIndex: 2001,
61
+ children: t && e ? e(t) : null
62
+ }
63
+ ) })
25
64
  ]
26
65
  }
27
- );
66
+ ) });
28
67
  };
29
68
  export {
30
- g as ColumnItem
69
+ q as DndContainer
31
70
  };
package/dist/index95.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var i=(e=>(e.Hidden="hidden",e.Visible="visible",e))(i||{});exports.ColumnGroupIds=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("@veeqo/ui"),a=require("@veeqo/components"),n=require("./index93.cjs"),{Glyph:c}=a.VeeqoCommon,l=({column:t,isHidden:r,isDragOverlay:s})=>{const o=t.title||t.tooltip;return e.jsxs(n.ColumnItemWrapper,{direction:"horizontal",spacing:"sm",alignY:"center",isHidden:r,isDragOverlay:s,children:[e.jsx(c,{name:"drag-indicator",size:4}),t.detailed?e.jsxs(i.Stack,{spacing:"xs",children:[e.jsxs(i.Text,{variant:"body",children:[o," (detailed)"]}),e.jsx(n.DetailedText,{variant:"hintText",children:t.detailed})]}):e.jsx(i.Text,{variant:"body",children:o}),!s&&r&&e.jsx(n.VisibilityOffIcon,{size:4})]})};exports.ColumnItem=l;
package/dist/index95.js CHANGED
@@ -1,4 +1,31 @@
1
- var i = /* @__PURE__ */ ((e) => (e.Hidden = "hidden", e.Visible = "visible", e))(i || {});
1
+ import { jsxs as e, jsx as i } from "react/jsx-runtime";
2
+ import { Stack as d, Text as a } from "@veeqo/ui";
3
+ import { VeeqoCommon as l } from "@veeqo/components";
4
+ import { ColumnItemWrapper as m, DetailedText as c, VisibilityOffIcon as p } from "./index93.js";
5
+ const { Glyph: s } = l, g = ({ column: t, isHidden: r, isDragOverlay: o }) => {
6
+ const n = t.title || t.tooltip;
7
+ return /* @__PURE__ */ e(
8
+ m,
9
+ {
10
+ direction: "horizontal",
11
+ spacing: "sm",
12
+ alignY: "center",
13
+ isHidden: r,
14
+ isDragOverlay: o,
15
+ children: [
16
+ /* @__PURE__ */ i(s, { name: "drag-indicator", size: 4 }),
17
+ t.detailed ? /* @__PURE__ */ e(d, { spacing: "xs", children: [
18
+ /* @__PURE__ */ e(a, { variant: "body", children: [
19
+ n,
20
+ " (detailed)"
21
+ ] }),
22
+ /* @__PURE__ */ i(c, { variant: "hintText", children: t.detailed })
23
+ ] }) : /* @__PURE__ */ i(a, { variant: "body", children: n }),
24
+ !o && r && /* @__PURE__ */ i(p, { size: 4 })
25
+ ]
26
+ }
27
+ );
28
+ };
2
29
  export {
3
- i as ColumnGroupIds
30
+ g as ColumnItem
4
31
  };
package/dist/index96.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("react"),f=require("./index62.cjs"),y=require("./index61.cjs"),g=require("./index52.cjs"),h=require("./index60.cjs"),p=require("./index5.cjs"),w=({pinnedLeftColumnIds:r,pinnedRightColumnIds:a})=>{const{Filters:{activeViewId:t},Notifications:{notify:e}}=y.useStores(),{closeModal:i}=g.useModal(),{mutate:c}=f.useViews(),{getActiveViewInAPIFormat:l}=h.usePersistUnsavedChanges(),[m,o]=C.useState(!1);return{saveColumns:async({visibleColumns:n})=>{if(t)try{if(o(!0),n.length<1){e({type:"error",text:"You must have at least one visible column."});return}const u=[...r,...n,...a],{arg:d,currentView:s}=l(),v={...d,columns:{...s==null?void 0:s.columns,columnIds:u}};await p.patchCustomView(t,{attributes:v}),await c(),i(),e({type:"success",text:"Columns updated successfully"})}catch{e({type:"error",text:"Failed to save columns"})}finally{o(!1)}},isSavingColumns:m}};exports.usePersistColumns=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var i=(e=>(e.Hidden="hidden",e.Visible="visible",e))(i||{});exports.ColumnGroupIds=i;
package/dist/index96.js CHANGED
@@ -1,43 +1,4 @@
1
- import { useState as d } from "react";
2
- import { useViews as v } from "./index62.js";
3
- import { useStores as y } from "./index61.js";
4
- import { useModal as C } from "./index52.js";
5
- import { usePersistUnsavedChanges as g } from "./index60.js";
6
- import { patchCustomView as h } from "./index5.js";
7
- const b = ({ pinnedLeftColumnIds: a, pinnedRightColumnIds: i }) => {
8
- const {
9
- Filters: {
10
- activeViewId: e
11
- },
12
- Notifications: {
13
- notify: t
14
- }
15
- } = y(), { closeModal: u } = C(), { mutate: m } = v(), { getActiveViewInAPIFormat: c } = g(), [l, o] = d(!1);
16
- return {
17
- saveColumns: async ({ visibleColumns: n }) => {
18
- if (e)
19
- try {
20
- if (o(!0), n.length < 1) {
21
- t({ type: "error", text: "You must have at least one visible column." });
22
- return;
23
- }
24
- const r = [...a, ...n, ...i], { arg: f, currentView: s } = c(), p = {
25
- ...f,
26
- columns: {
27
- ...s == null ? void 0 : s.columns,
28
- columnIds: r
29
- }
30
- };
31
- await h(e, { attributes: p }), await m(), u(), t({ type: "success", text: "Columns updated successfully" });
32
- } catch {
33
- t({ type: "error", text: "Failed to save columns" });
34
- } finally {
35
- o(!1);
36
- }
37
- },
38
- isSavingColumns: l
39
- };
40
- };
1
+ var i = /* @__PURE__ */ ((e) => (e.Hidden = "hidden", e.Visible = "visible", e))(i || {});
41
2
  export {
42
- b as usePersistColumns
3
+ i as ColumnGroupIds
43
4
  };
package/dist/index97.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=(t,r)=>{if(!r)return t;const i=r.toLowerCase();return t.filter(e=>{var s,a;return((s=e==null?void 0:e.title)==null?void 0:s.toLowerCase().includes(i))||((a=e==null?void 0:e.id)==null?void 0:a.toLowerCase().includes(i))})};exports.filterColumnsBySearch=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("react"),f=require("./index62.cjs"),y=require("./index61.cjs"),g=require("./index52.cjs"),h=require("./index60.cjs"),p=require("./index5.cjs"),w=({pinnedLeftColumnIds:r,pinnedRightColumnIds:a})=>{const{Filters:{activeViewId:t},Notifications:{notify:e}}=y.useStores(),{closeModal:i}=g.useModal(),{mutate:c}=f.useViews(),{getActiveViewInAPIFormat:l}=h.usePersistUnsavedChanges(),[m,o]=C.useState(!1);return{saveColumns:async({visibleColumns:n})=>{if(t)try{if(o(!0),n.length<1){e({type:"error",text:"You must have at least one visible column."});return}const u=[...r,...n,...a],{arg:d,currentView:s}=l(),v={...d,columns:{...s==null?void 0:s.columns,columnIds:u}};await p.patchCustomView(t,{attributes:v}),await c(),i(),e({type:"success",text:"Columns updated successfully"})}catch{e({type:"error",text:"Failed to save columns"})}finally{o(!1)}},isSavingColumns:m}};exports.usePersistColumns=w;
package/dist/index97.js CHANGED
@@ -1,13 +1,43 @@
1
- const a = (t, r) => {
2
- if (!r) return t;
3
- const i = r.toLowerCase();
4
- return t.filter(
5
- (e) => {
6
- var s, C;
7
- return ((s = e == null ? void 0 : e.title) == null ? void 0 : s.toLowerCase().includes(i)) || ((C = e == null ? void 0 : e.id) == null ? void 0 : C.toLowerCase().includes(i));
1
+ import { useState as d } from "react";
2
+ import { useViews as v } from "./index62.js";
3
+ import { useStores as y } from "./index61.js";
4
+ import { useModal as C } from "./index52.js";
5
+ import { usePersistUnsavedChanges as g } from "./index60.js";
6
+ import { patchCustomView as h } from "./index5.js";
7
+ const b = ({ pinnedLeftColumnIds: a, pinnedRightColumnIds: i }) => {
8
+ const {
9
+ Filters: {
10
+ activeViewId: e
11
+ },
12
+ Notifications: {
13
+ notify: t
8
14
  }
9
- );
15
+ } = y(), { closeModal: u } = C(), { mutate: m } = v(), { getActiveViewInAPIFormat: c } = g(), [l, o] = d(!1);
16
+ return {
17
+ saveColumns: async ({ visibleColumns: n }) => {
18
+ if (e)
19
+ try {
20
+ if (o(!0), n.length < 1) {
21
+ t({ type: "error", text: "You must have at least one visible column." });
22
+ return;
23
+ }
24
+ const r = [...a, ...n, ...i], { arg: f, currentView: s } = c(), p = {
25
+ ...f,
26
+ columns: {
27
+ ...s == null ? void 0 : s.columns,
28
+ columnIds: r
29
+ }
30
+ };
31
+ await h(e, { attributes: p }), await m(), u(), t({ type: "success", text: "Columns updated successfully" });
32
+ } catch {
33
+ t({ type: "error", text: "Failed to save columns" });
34
+ } finally {
35
+ o(!1);
36
+ }
37
+ },
38
+ isSavingColumns: l
39
+ };
10
40
  };
11
41
  export {
12
- a as filterColumnsBySearch
42
+ b as usePersistColumns
13
43
  };
package/dist/index98.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@veeqo/ui"),r=require("./index2.cjs"),s=o=>{let e={colourPalette:t.theme.colors.secondary.blue,customTextColour:void 0};switch(o){case r.ViewStatusTypes.ERROR:e={colourPalette:t.theme.colors.secondary.red,customTextColour:void 0};break}return e};exports.getViewTheme=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=(t,r)=>{if(!r)return t;const i=r.toLowerCase();return t.filter(e=>{var s,a;return((s=e==null?void 0:e.title)==null?void 0:s.toLowerCase().includes(i))||((a=e==null?void 0:e.id)==null?void 0:a.toLowerCase().includes(i))})};exports.filterColumnsBySearch=d;
package/dist/index98.js CHANGED
@@ -1,20 +1,13 @@
1
- import { theme as o } from "@veeqo/ui";
2
- import { ViewStatusTypes as r } from "./index2.js";
3
- const l = (t) => {
4
- let e = {
5
- colourPalette: o.colors.secondary.blue,
6
- customTextColour: void 0
7
- };
8
- switch (t) {
9
- case r.ERROR:
10
- e = {
11
- colourPalette: o.colors.secondary.red,
12
- customTextColour: void 0
13
- };
14
- break;
15
- }
16
- return e;
1
+ const a = (t, r) => {
2
+ if (!r) return t;
3
+ const i = r.toLowerCase();
4
+ return t.filter(
5
+ (e) => {
6
+ var s, C;
7
+ return ((s = e == null ? void 0 : e.title) == null ? void 0 : s.toLowerCase().includes(i)) || ((C = e == null ? void 0 : e.id) == null ? void 0 : C.toLowerCase().includes(i));
8
+ }
9
+ );
17
10
  };
18
11
  export {
19
- l as getViewTheme
12
+ a as filterColumnsBySearch
20
13
  };
package/dist/index99.cjs CHANGED
@@ -1 +1,19 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index79.cjs"),e=i.createAllView(),t={fixedViews:[e],customViews:[],viewsMap:new Map([[e.id,e]])};exports.INITIAL_VIEWS_STATE=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("styled-components"),e=require("@veeqo/ui"),s=t=>t&&t.__esModule?t:{default:t},o=s(r),i=o.default(e.Button).attrs(()=>({role:"option",variant:"flat"}))`
2
+ margin: ${e.theme.sizes.xs};
3
+ min-width: 180px;
4
+ justify-content: flex-start;
5
+ font-size: ${e.theme.text.body.fontSize};
6
+
7
+ &:hover {
8
+ background-color: ${e.theme.colors.neutral.grey.lightest};
9
+ color: ${e.theme.colors.secondary.blue.base};
10
+ cursor: pointer;
11
+ }
12
+ `,n=o.default(e.Card.Surface).attrs(()=>({role:"listbox",elevation:4}))`
13
+ margin-top: ${e.theme.sizes.xs};
14
+ background-color: white;
15
+ `,l=o.default.hr`
16
+ width: 100%;
17
+ border-top: 1px solid ${e.theme.colors.neutral.grey.dark};
18
+ margin: 0;
19
+ `;exports.Divider=l;exports.Item=i;exports.MenuItems=n;
package/dist/index99.js CHANGED
@@ -1,9 +1,26 @@
1
- import { createAllView as i } from "./index79.js";
2
- const e = i(), s = {
3
- fixedViews: [e],
4
- customViews: [],
5
- viewsMap: /* @__PURE__ */ new Map([[e.id, e]])
6
- };
1
+ import t from "styled-components";
2
+ import { theme as o, Card as r, Button as e } from "@veeqo/ui";
3
+ const n = t(e).attrs(() => ({ role: "option", variant: "flat" }))`
4
+ margin: ${o.sizes.xs};
5
+ min-width: 180px;
6
+ justify-content: flex-start;
7
+ font-size: ${o.text.body.fontSize};
8
+
9
+ &:hover {
10
+ background-color: ${o.colors.neutral.grey.lightest};
11
+ color: ${o.colors.secondary.blue.base};
12
+ cursor: pointer;
13
+ }
14
+ `, a = t(r.Surface).attrs(() => ({ role: "listbox", elevation: 4 }))`
15
+ margin-top: ${o.sizes.xs};
16
+ background-color: white;
17
+ `, l = t.hr`
18
+ width: 100%;
19
+ border-top: 1px solid ${o.colors.neutral.grey.dark};
20
+ margin: 0;
21
+ `;
7
22
  export {
8
- s as INITIAL_VIEWS_STATE
23
+ l as Divider,
24
+ n as Item,
25
+ a as MenuItems
9
26
  };
package/dist/types.d.ts CHANGED
@@ -47,29 +47,6 @@ type UserRelationship = {
47
47
  type PageFilter = {
48
48
  size?: number;
49
49
  };
50
- type SearchFilter = {
51
- number?: string;
52
- };
53
- type StockCountFilter = {
54
- gte: number;
55
- lte: number;
56
- };
57
- type OrderFilter = {
58
- status?: string[];
59
- search?: SearchFilter;
60
- created?: string;
61
- mergeable?: string;
62
- pick_status?: string;
63
- };
64
- type InventoryFilter = {
65
- stock_count?: StockCountFilter;
66
- is_kit?: boolean;
67
- };
68
- type ViewFilters = {
69
- page?: PageFilter;
70
- filter?: OrderFilter | InventoryFilter;
71
- sort?: string;
72
- };
73
50
  export declare enum ViewStatusTypes {
74
51
  ERROR = "error"
75
52
  }
@@ -80,7 +57,7 @@ export type View = {
80
57
  user: UserRelationship;
81
58
  };
82
59
  title: string;
83
- filters: ViewFilters;
60
+ filters: Record<string, any>;
84
61
  columns: string[] | Record<string, never>;
85
62
  shared: boolean;
86
63
  created_at: string;
@@ -107,6 +84,7 @@ export type TransformedView = {
107
84
  id: string;
108
85
  label: string;
109
86
  filterMaps: FilterMaps;
87
+ viewFilters: Record<string, any>;
110
88
  sort?: string;
111
89
  page: PageFilter | undefined;
112
90
  editable: boolean;
@@ -0,0 +1 @@
1
+ export { isTextFilterValid } from './isTextFilterValid';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Validates that a text filter value is either empty or has at least 3 characters.
3
+ * Empty strings are allowed to permit clearing filters.
4
+ * @param text - The text to validate
5
+ * @returns true if the text is valid for filtering, false otherwise
6
+ */
7
+ export declare const isTextFilterValid: (text: string) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veeqo/transfigure",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.cjs",