@adhese/sdk-devtools 0.11.6 → 0.12.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 (111) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/AdheseContext.js +19 -0
  3. package/dist/AdheseContext.js.map +1 -0
  4. package/dist/Devtools.hooks.js +24 -0
  5. package/dist/Devtools.hooks.js.map +1 -0
  6. package/dist/Devtools.js +79 -0
  7. package/dist/Devtools.js.map +1 -0
  8. package/dist/cjs/AdheseContext.cjs +19 -0
  9. package/dist/cjs/AdheseContext.cjs.map +1 -0
  10. package/dist/cjs/Devtools.cjs +79 -0
  11. package/dist/cjs/Devtools.cjs.map +1 -0
  12. package/dist/cjs/Devtools.hooks.cjs +24 -0
  13. package/dist/cjs/Devtools.hooks.cjs.map +1 -0
  14. package/dist/cjs/components/badge.cjs +27 -0
  15. package/dist/cjs/components/badge.cjs.map +1 -0
  16. package/dist/cjs/components/button.cjs +49 -0
  17. package/dist/cjs/components/button.cjs.map +1 -0
  18. package/dist/cjs/components/editSlot.cjs +110 -0
  19. package/dist/cjs/components/editSlot.cjs.map +1 -0
  20. package/dist/cjs/components/form.cjs +110 -0
  21. package/dist/cjs/components/form.cjs.map +1 -0
  22. package/dist/cjs/components/fronttailSettings.cjs +94 -0
  23. package/dist/cjs/components/fronttailSettings.cjs.map +1 -0
  24. package/dist/cjs/components/input.cjs +22 -0
  25. package/dist/cjs/components/input.cjs.map +1 -0
  26. package/dist/cjs/components/label.cjs +38 -0
  27. package/dist/cjs/components/label.cjs.map +1 -0
  28. package/dist/cjs/components/logTable.cjs +67 -0
  29. package/dist/cjs/components/logTable.cjs.map +1 -0
  30. package/dist/cjs/components/parametersTable.cjs +40 -0
  31. package/dist/cjs/components/parametersTable.cjs.map +1 -0
  32. package/dist/cjs/components/previewButton.cjs +19 -0
  33. package/dist/cjs/components/previewButton.cjs.map +1 -0
  34. package/dist/cjs/components/settings.cjs +10 -0
  35. package/dist/cjs/components/settings.cjs.map +1 -0
  36. package/dist/cjs/components/sheet.cjs +118 -0
  37. package/dist/cjs/components/sheet.cjs.map +1 -0
  38. package/dist/cjs/components/slotsTable.cjs +230 -0
  39. package/dist/cjs/components/slotsTable.cjs.map +1 -0
  40. package/dist/cjs/components/switch.cjs +45 -0
  41. package/dist/cjs/components/switch.cjs.map +1 -0
  42. package/dist/cjs/components/table.cjs +91 -0
  43. package/dist/cjs/components/table.cjs.map +1 -0
  44. package/dist/cjs/components/tabs.cjs +65 -0
  45. package/dist/cjs/components/tabs.cjs.map +1 -0
  46. package/dist/cjs/devtools.composables.cjs +116 -0
  47. package/dist/cjs/devtools.composables.cjs.map +1 -0
  48. package/dist/cjs/main.cjs +16 -0
  49. package/dist/cjs/main.cjs.map +1 -0
  50. package/dist/cjs/modifiedSlots.store.cjs +63 -0
  51. package/dist/cjs/modifiedSlots.store.cjs.map +1 -0
  52. package/dist/cjs/package.json.cjs +7 -0
  53. package/dist/cjs/package.json.cjs.map +1 -0
  54. package/dist/cjs/sdkDevtools.cjs +17 -0
  55. package/dist/cjs/sdkDevtools.cjs.map +1 -0
  56. package/dist/cjs/utils.cjs +9 -0
  57. package/dist/cjs/utils.cjs.map +1 -0
  58. package/dist/components/badge.js +27 -0
  59. package/dist/components/badge.js.map +1 -0
  60. package/dist/components/button.js +49 -0
  61. package/dist/components/button.js.map +1 -0
  62. package/dist/components/editSlot.js +110 -0
  63. package/dist/components/editSlot.js.map +1 -0
  64. package/dist/components/form.js +110 -0
  65. package/dist/components/form.js.map +1 -0
  66. package/dist/components/fronttailSettings.js +94 -0
  67. package/dist/components/fronttailSettings.js.map +1 -0
  68. package/dist/components/input.js +22 -0
  69. package/dist/components/input.js.map +1 -0
  70. package/dist/components/label.js +21 -0
  71. package/dist/components/label.js.map +1 -0
  72. package/dist/components/logTable.js +67 -0
  73. package/dist/components/logTable.js.map +1 -0
  74. package/dist/components/parametersTable.js +40 -0
  75. package/dist/components/parametersTable.js.map +1 -0
  76. package/dist/components/previewButton.js +19 -0
  77. package/dist/components/previewButton.js.map +1 -0
  78. package/dist/components/settings.js +10 -0
  79. package/dist/components/settings.js.map +1 -0
  80. package/dist/components/sheet.js +101 -0
  81. package/dist/components/sheet.js.map +1 -0
  82. package/dist/components/slotsTable.js +230 -0
  83. package/dist/components/slotsTable.js.map +1 -0
  84. package/dist/components/switch.js +28 -0
  85. package/dist/components/switch.js.map +1 -0
  86. package/dist/components/table.js +91 -0
  87. package/dist/components/table.js.map +1 -0
  88. package/dist/components/tabs.js +48 -0
  89. package/dist/components/tabs.js.map +1 -0
  90. package/dist/devtools.composables.js +116 -0
  91. package/dist/devtools.composables.js.map +1 -0
  92. package/dist/main.js +16 -0
  93. package/dist/main.js.map +1 -0
  94. package/dist/modifiedSlots.store.js +63 -0
  95. package/dist/modifiedSlots.store.js.map +1 -0
  96. package/dist/package.json.js +7 -0
  97. package/dist/package.json.js.map +1 -0
  98. package/dist/sdkDevtools.js +17 -0
  99. package/dist/sdkDevtools.js.map +1 -0
  100. package/dist/utils.js +9 -0
  101. package/dist/utils.js.map +1 -0
  102. package/package.json +11 -8
  103. package/dist/devtools-Cbms1xWf.cjs +0 -816
  104. package/dist/devtools-Cbms1xWf.cjs.map +0 -1
  105. package/dist/devtools-CjRcI3Xd.js +0 -797
  106. package/dist/devtools-CjRcI3Xd.js.map +0 -1
  107. package/dist/index.cjs +0 -47
  108. package/dist/index.cjs.map +0 -1
  109. package/dist/index.d.ts +0 -14
  110. package/dist/index.js +0 -47
  111. package/dist/index.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const SheetPrimitive = require("@radix-ui/react-dialog");
5
+ const reactIcons = require("@radix-ui/react-icons");
6
+ const classVarianceAuthority = require("class-variance-authority");
7
+ const react = require("react");
8
+ const utils = require("../utils.cjs");
9
+ function _interopNamespaceDefault(e) {
10
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
11
+ if (e) {
12
+ for (const k in e) {
13
+ if (k !== "default") {
14
+ const d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: () => e[k]
18
+ });
19
+ }
20
+ }
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+ const SheetPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(SheetPrimitive);
26
+ const Sheet = SheetPrimitive__namespace.Root;
27
+ const SheetTrigger = SheetPrimitive__namespace.Trigger;
28
+ const SheetPortal = SheetPrimitive__namespace.Portal;
29
+ const SheetOverlay = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
30
+ SheetPrimitive__namespace.Overlay,
31
+ {
32
+ className: utils.cn(
33
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
34
+ className
35
+ ),
36
+ ...props,
37
+ ref
38
+ }
39
+ ));
40
+ SheetOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
41
+ const sheetVariants = classVarianceAuthority.cva(
42
+ "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
43
+ {
44
+ variants: {
45
+ side: {
46
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
47
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
48
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
49
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
50
+ }
51
+ },
52
+ defaultVariants: {
53
+ side: "right"
54
+ }
55
+ }
56
+ );
57
+ const SheetContent = react.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
58
+ /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
59
+ /* @__PURE__ */ jsxRuntime.jsxs(
60
+ SheetPrimitive__namespace.Content,
61
+ {
62
+ ref,
63
+ className: utils.cn(sheetVariants({ side }), className),
64
+ ...props,
65
+ children: [
66
+ children,
67
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetPrimitive__namespace.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
68
+ /* @__PURE__ */ jsxRuntime.jsx(reactIcons.Cross2Icon, { className: "h-4 w-4" }),
69
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
70
+ ] })
71
+ ]
72
+ }
73
+ )
74
+ ] }));
75
+ SheetContent.displayName = SheetPrimitive__namespace.Content.displayName;
76
+ function SheetHeader({
77
+ className,
78
+ ...props
79
+ }) {
80
+ return /* @__PURE__ */ jsxRuntime.jsx(
81
+ "div",
82
+ {
83
+ className: utils.cn(
84
+ "flex flex-col space-y-2 text-center sm:text-left",
85
+ className
86
+ ),
87
+ ...props
88
+ }
89
+ );
90
+ }
91
+ SheetHeader.displayName = "SheetHeader";
92
+ const SheetTitle = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
93
+ SheetPrimitive__namespace.Title,
94
+ {
95
+ ref,
96
+ className: utils.cn("text-lg font-semibold text-foreground", className),
97
+ ...props
98
+ }
99
+ ));
100
+ SheetTitle.displayName = SheetPrimitive__namespace.Title.displayName;
101
+ const SheetDescription = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
102
+ SheetPrimitive__namespace.Description,
103
+ {
104
+ ref,
105
+ className: utils.cn("text-sm text-muted-foreground", className),
106
+ ...props
107
+ }
108
+ ));
109
+ SheetDescription.displayName = SheetPrimitive__namespace.Description.displayName;
110
+ exports.Sheet = Sheet;
111
+ exports.SheetContent = SheetContent;
112
+ exports.SheetDescription = SheetDescription;
113
+ exports.SheetHeader = SheetHeader;
114
+ exports.SheetOverlay = SheetOverlay;
115
+ exports.SheetPortal = SheetPortal;
116
+ exports.SheetTitle = SheetTitle;
117
+ exports.SheetTrigger = SheetTrigger;
118
+ //# sourceMappingURL=sheet.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.cjs","sources":["../../../src/components/sheet.tsx"],"sourcesContent":["/* eslint-disable ts/naming-convention */\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { Cross2Icon } from '@radix-ui/react-icons';\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport { type ComponentPropsWithoutRef, type ElementRef, type HTMLAttributes, type ReactElement, forwardRef } from 'react';\nimport { cn } from '../utils';\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = forwardRef<\n ElementRef<typeof SheetPrimitive.Overlay>,\n ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n },\n);\n\ninterface SheetContentProps\n extends ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = forwardRef<\n ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <Cross2Icon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nfunction SheetHeader({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>): ReactElement {\n return (\n <div\n className={cn(\n 'flex flex-col space-y-2 text-center sm:text-left',\n className,\n )}\n {...props}\n />\n );\n}\nSheetHeader.displayName = 'SheetHeader';\n\nfunction SheetFooter({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>): ReactElement {\n return (\n <div\n className={cn(\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n className,\n )}\n {...props}\n />\n );\n}\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = forwardRef<\n ElementRef<typeof SheetPrimitive.Title>,\n ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = forwardRef<\n ElementRef<typeof SheetPrimitive.Description>,\n ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"],"names":["SheetPrimitive","forwardRef","jsx","cn","cva","jsxs","Cross2Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,QAAQA,0BAAe;AAE7B,MAAM,eAAeA,0BAAe;AAIpC,MAAM,cAAcA,0BAAe;AAE7B,MAAA,eAAeC,iBAGnB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAACF,0BAAe;AAAA,EAAf;AAAA,IACC,WAAWG,MAAA;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IACJ;AAAA,EAAA;AACF,CACD;AACD,aAAa,cAAcH,0BAAe,QAAQ;AAElD,MAAM,gBAAgBI,uBAAA;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,QACE;AAAA,QACF,MAAM;AAAA,QACN,OACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAMA,MAAM,eAAeH,MAAAA,WAGnB,CAAC,EAAE,OAAO,SAAS,WAAW,UAAU,GAAG,MAAS,GAAA,wCACnD,aACC,EAAA,UAAA;AAAA,EAAAC,2BAAA,IAAC,cAAa,EAAA;AAAA,EACdG,2BAAA;AAAA,IAACL,0BAAe;AAAA,IAAf;AAAA,MACC;AAAA,MACA,WAAWG,MAAG,GAAA,cAAc,EAAE,KAAM,CAAA,GAAG,SAAS;AAAA,MAC/C,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACAE,2BAAA,KAAAL,0BAAe,OAAf,EAAqB,WAAU,4OAC9B,UAAA;AAAA,UAACE,2BAAAA,IAAAI,WAAA,YAAA,EAAW,WAAU,UAAU,CAAA;AAAA,UAC/BJ,2BAAA,IAAA,QAAA,EAAK,WAAU,WAAU,UAAK,SAAA;AAAA,QAAA,GACjC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAAA,EAAA,CACF,CACD;AACD,aAAa,cAAcF,0BAAe,QAAQ;AAElD,SAAS,YAAY;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GAAiD;AAE7C,SAAAE,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,MAAA;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AACA,YAAY,cAAc;AAkBpB,MAAA,aAAaF,iBAGjB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAACF,0BAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAWG,MAAAA,GAAG,yCAAyC,SAAS;AAAA,IAC/D,GAAG;AAAA,EAAA;AACN,CACD;AACD,WAAW,cAAcH,0BAAe,MAAM;AAExC,MAAA,mBAAmBC,iBAGvB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAACF,0BAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAWG,MAAAA,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA,EAAA;AACN,CACD;AACD,iBAAiB,cAAcH,0BAAe,YAAY;;;;;;;;;"}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const sdkShared = require("@adhese/sdk-shared");
6
+ const reactIcons = require("@radix-ui/react-icons");
7
+ const utils = require("../utils.cjs");
8
+ const AdheseContext = require("../AdheseContext.cjs");
9
+ const modifiedSlots_store = require("../modifiedSlots.store.cjs");
10
+ const table = require("./table.cjs");
11
+ const badge = require("./badge.cjs");
12
+ const button = require("./button.cjs");
13
+ const sheet = require("./sheet.cjs");
14
+ const editSlot = require("./editSlot.cjs");
15
+ const slotIndexBadgeClasses = [
16
+ "bg-blue-500 hover:bg-blue-500",
17
+ "bg-amber-500 hover:bg-amber-500",
18
+ "bg-green-500 hover:bg-green-500",
19
+ "bg-red-500 hover:bg-red-500",
20
+ "bg-purple-500 hover:bg-purple-500",
21
+ "bg-cyan-500 hover:bg-cyan-500",
22
+ "bg-pink-500 hover:bg-pink-500"
23
+ ];
24
+ const renderStatusMap = {
25
+ initializing: "Initializing",
26
+ initialized: "Initialized",
27
+ loading: "Loading",
28
+ loaded: "Loaded",
29
+ rendering: "Rendering",
30
+ rendered: "Rendered",
31
+ empty: "Empty",
32
+ error: "Error"
33
+ };
34
+ function SlotsTable() {
35
+ const [slots, setSlots] = react.useState([]);
36
+ const adheseContext = AdheseContext.useAdheseContext();
37
+ react.useEffect(() => {
38
+ if (!adheseContext)
39
+ return;
40
+ const disposeWatcher = sdkShared.watch(() => adheseContext.slots, (newSlots) => {
41
+ setSlots(Array.from(newSlots.values()));
42
+ }, { immediate: true, deep: true });
43
+ return () => {
44
+ disposeWatcher();
45
+ };
46
+ }, [adheseContext]);
47
+ const modifiedSlots = modifiedSlots_store.useModifiedSlots();
48
+ const formattedSlots = react.useMemo(() => slots.filter((slot) => {
49
+ var _a, _b;
50
+ return !((_b = (_a = slot.pluginOptions) == null ? void 0 : _a.devtools) == null ? void 0 : _b.hijackedSlot);
51
+ }).map((slot) => {
52
+ var _a;
53
+ const hijackedSlotOptions = modifiedSlots.slots.get(slot.name);
54
+ const hijackedSlot = adheseContext && hijackedSlotOptions && ((_a = adheseContext.get) == null ? void 0 : _a.call(adheseContext, sdkShared.generateName(adheseContext.location, hijackedSlotOptions.format, hijackedSlotOptions.slot)));
55
+ return {
56
+ ...hijackedSlot ?? slot,
57
+ parameters: Array.from((hijackedSlot ?? slot).parameters.entries()),
58
+ hijackedSlot,
59
+ originalSlot: slot
60
+ };
61
+ }).toSorted((a, b) => {
62
+ var _a, _b;
63
+ const offsetA = ((_a = a.element) == null ? void 0 : _a.getBoundingClientRect().top) ?? 0;
64
+ const offsetB = ((_b = b.element) == null ? void 0 : _b.getBoundingClientRect().top) ?? 0;
65
+ return offsetA - offsetB;
66
+ }), [slots]);
67
+ const slotParametersExist = react.useMemo(() => formattedSlots.some((formattedSlot) => formattedSlot.parameters.length > 0), [formattedSlots]);
68
+ const previewExist = react.useMemo(() => formattedSlots.some((formattedSlot) => {
69
+ var _a;
70
+ return (_a = formattedSlot.data) == null ? void 0 : _a.preview;
71
+ }), [formattedSlots]);
72
+ const slotCodeExists = react.useMemo(() => formattedSlots.some((formattedSlot) => formattedSlot.slot), [formattedSlots]);
73
+ const origins = react.useMemo(() => {
74
+ const set = /* @__PURE__ */ new Set();
75
+ for (const slot of formattedSlots) {
76
+ const { data } = slot;
77
+ if (data)
78
+ set.add(data.origin);
79
+ }
80
+ return Array.from(set);
81
+ }, [formattedSlots]);
82
+ return adheseContext && formattedSlots.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(table.Table, { children: [
83
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(table.TableRow, { children: [
84
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Name" }),
85
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Location" }),
86
+ slotCodeExists && /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Slot" }),
87
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Format" }),
88
+ origins.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Origin" }),
89
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Render Status" }),
90
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Campaign ID" }),
91
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Booking ID" }),
92
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Creative ID" }),
93
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Traffic ID" }),
94
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Creative type" }),
95
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Impression tracked" }),
96
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Viewability tracked" }),
97
+ slotParametersExist && /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Parameters" }),
98
+ previewExist && /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Preview" }),
99
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Controls" })
100
+ ] }) }),
101
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableBody, { children: formattedSlots.map(({
102
+ data,
103
+ name,
104
+ format,
105
+ location,
106
+ status,
107
+ isViewabilityTracked,
108
+ isImpressionTracked,
109
+ element,
110
+ parameters,
111
+ slot,
112
+ hijackedSlot,
113
+ originalSlot
114
+ }, index) => /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(table.TableRow, { id: name, children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { className: "font-medium", children: /* @__PURE__ */ jsxRuntime.jsxs(
116
+ "button",
117
+ {
118
+ onClick: () => {
119
+ if (element) {
120
+ element.scrollIntoView();
121
+ element.style.outline = "solid 5px red";
122
+ setTimeout(() => {
123
+ element.style.outline = "";
124
+ }, 1e3);
125
+ }
126
+ },
127
+ className: "flex flex-col gap-1",
128
+ children: [
129
+ /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { className: utils.cn(slotIndexBadgeClasses[index % slotIndexBadgeClasses.length], "text-white"), children: name }),
130
+ hijackedSlot && /* @__PURE__ */ jsxRuntime.jsx("del", { className: "text-xs text-muted-foreground", children: originalSlot.name })
131
+ ]
132
+ }
133
+ ) }),
134
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: location }),
135
+ slotCodeExists && /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: slot ?? "" }),
136
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: !(data == null ? void 0 : data.adFormat) || (data == null ? void 0 : data.adFormat) === format ? format : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
137
+ /* @__PURE__ */ jsxRuntime.jsx("del", { className: "text-red-300 italic", children: format }),
138
+ /* @__PURE__ */ jsxRuntime.jsx("ins", { className: "no-underline text-green-700", children: data == null ? void 0 : data.adFormat })
139
+ ] }) }),
140
+ origins.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.origin) && /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { className: utils.cn(slotIndexBadgeClasses[origins.indexOf(data.origin) % slotIndexBadgeClasses.length], "text-white"), children: data.origin.toLowerCase() }) }),
141
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "outline", className: utils.cn(status === "error" ? "bg-red-500 text-red-50" : ""), children: renderStatusMap[status] }) }),
142
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.orderId) && (data == null ? void 0 : data.orderId) !== "0" ? /* @__PURE__ */ jsxRuntime.jsx(
143
+ "a",
144
+ {
145
+ href: `https://${adheseContext.options.account}.adhese.org/campaigns.html#campaignDetail/editCampaign/${data.orderId}`,
146
+ target: "_blank",
147
+ referrerPolicy: "no-referrer",
148
+ className: utils.cn(button.buttonVariants({
149
+ variant: "ghost",
150
+ size: "sm"
151
+ })),
152
+ children: data.orderId
153
+ }
154
+ ) : "-" }),
155
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.adspaceId) && (data == null ? void 0 : data.adspaceId) !== "0" ? /* @__PURE__ */ jsxRuntime.jsx(
156
+ "a",
157
+ {
158
+ href: `https://${adheseContext.options.account}.adhese.org/campaigns.html#campaignDetail/bookingDetail/${data.adspaceId}/${data.orderId}`,
159
+ target: "_blank",
160
+ referrerPolicy: "no-referrer",
161
+ className: utils.cn(button.buttonVariants({
162
+ variant: "ghost",
163
+ size: "sm"
164
+ })),
165
+ children: data.adspaceId
166
+ }
167
+ ) : "-" }),
168
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.libId) && (data == null ? void 0 : data.orderId) !== "0" ? /* @__PURE__ */ jsxRuntime.jsx(
169
+ "a",
170
+ {
171
+ href: `https://${adheseContext.options.account}.adhese.org/campaigns.html#campaignDetail/creativeDetail/${data.libId}/${data.orderId}`,
172
+ target: "_blank",
173
+ referrerPolicy: "no-referrer",
174
+ className: utils.cn(button.buttonVariants({
175
+ variant: "ghost",
176
+ size: "sm"
177
+ })),
178
+ children: data.libId
179
+ }
180
+ ) : "-" }),
181
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.id) ?? "-" }),
182
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.ext) ? /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "outline", children: data.ext }) : "-" }),
183
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: isImpressionTracked ? /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { className: "bg-green-100 text-green-900 hover:bg-green-100", children: "Yes" }) : /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "secondary", children: "No" }) }),
184
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: isViewabilityTracked ? /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { className: "bg-green-100 text-green-900 hover:bg-green-100", children: "Yes" }) : /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "secondary", children: "No" }) }),
185
+ slotParametersExist && /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: parameters.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(sheet.Sheet, { children: [
186
+ /* @__PURE__ */ jsxRuntime.jsx(
187
+ sheet.SheetTrigger,
188
+ {
189
+ className: button.buttonVariants({
190
+ variant: "secondary",
191
+ size: "sm"
192
+ }),
193
+ children: "Show"
194
+ }
195
+ ),
196
+ /* @__PURE__ */ jsxRuntime.jsxs(sheet.SheetContent, { className: "bg-white flex flex-col gap-4", children: [
197
+ /* @__PURE__ */ jsxRuntime.jsx(sheet.SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(sheet.SheetTitle, { children: "Parameters" }) }),
198
+ /* @__PURE__ */ jsxRuntime.jsxs(table.Table, { children: [
199
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(table.TableRow, { children: [
200
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Key" }),
201
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableHead, { children: "Value" })
202
+ ] }) }),
203
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableBody, { children: parameters.map(([parameterName, value]) => /* @__PURE__ */ jsxRuntime.jsxs(table.TableRow, { children: [
204
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "outline", children: parameterName }) }),
205
+ /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: Array.isArray(value) ? /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex gap-1", children: value.map((item, paramIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "outline", children: item }) }, paramIndex)) }) : /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { variant: "outline", children: value }) })
206
+ ] }, parameterName)) })
207
+ ] })
208
+ ] })
209
+ ] }) }),
210
+ previewExist && /* @__PURE__ */ jsxRuntime.jsx(table.TableCell, { children: (data == null ? void 0 : data.preview) && /* @__PURE__ */ jsxRuntime.jsx(badge.Badge, { className: "bg-amber-400 text-amber-950 hover:bg-amber-400", children: "PREVIEW" }) }),
211
+ /* @__PURE__ */ jsxRuntime.jsxs(table.TableCell, { className: "flex gap-1", children: [
212
+ /* @__PURE__ */ jsxRuntime.jsx(editSlot.EditSlot, { id: originalSlot.id }),
213
+ modifiedSlots.slots.has(originalSlot.name) && /* @__PURE__ */ jsxRuntime.jsx(
214
+ button.Button,
215
+ {
216
+ onClick: () => {
217
+ modifiedSlots.remove(originalSlot.name);
218
+ },
219
+ variant: "ghost",
220
+ size: "sm",
221
+ title: "Reset",
222
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactIcons.ResetIcon, {})
223
+ }
224
+ )
225
+ ] })
226
+ ] }) }, originalSlot.id)) })
227
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { children: "No slots available" });
228
+ }
229
+ exports.SlotsTable = SlotsTable;
230
+ //# sourceMappingURL=slotsTable.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slotsTable.cjs","sources":["../../../src/components/slotsTable.tsx"],"sourcesContent":["import { Fragment, type ReactElement, useEffect, useMemo, useState } from 'react';\nimport type { AdheseSlot } from '@adhese/sdk';\nimport { type UnwrapRef, generateName, watch } from '@adhese/sdk-shared';\nimport { ResetIcon } from '@radix-ui/react-icons';\nimport { cn } from '../utils';\nimport { useAdheseContext } from '../AdheseContext';\nimport { useModifiedSlots } from '../modifiedSlots.store';\nimport type { DevtoolsSlotPluginOptions } from '../devtools.composables';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from './table';\nimport { Badge } from './badge';\nimport { Button, buttonVariants } from './button';\nimport { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from './sheet';\nimport { EditSlot } from './editSlot';\n\nconst slotIndexBadgeClasses = [\n 'bg-blue-500 hover:bg-blue-500',\n 'bg-amber-500 hover:bg-amber-500',\n 'bg-green-500 hover:bg-green-500',\n 'bg-red-500 hover:bg-red-500',\n 'bg-purple-500 hover:bg-purple-500',\n 'bg-cyan-500 hover:bg-cyan-500',\n 'bg-pink-500 hover:bg-pink-500',\n] as const;\n\nconst renderStatusMap = {\n initializing: 'Initializing',\n initialized: 'Initialized',\n loading: 'Loading',\n loaded: 'Loaded',\n rendering: 'Rendering',\n rendered: 'Rendered',\n empty: 'Empty',\n error: 'Error',\n} as const satisfies Record<UnwrapRef<AdheseSlot['status']>, string>;\n\n// eslint-disable-next-line ts/naming-convention\nexport function SlotsTable(): ReactElement {\n const [slots, setSlots] = useState<ReadonlyArray<AdheseSlot>>([]);\n\n const adheseContext = useAdheseContext();\n\n useEffect(() => {\n if (!adheseContext)\n return;\n\n const disposeWatcher = watch(() => adheseContext.slots, (newSlots) => {\n setSlots(Array.from(newSlots.values()));\n }, { immediate: true, deep: true });\n\n return (): void => {\n disposeWatcher();\n };\n }, [adheseContext]);\n const modifiedSlots = useModifiedSlots();\n\n const formattedSlots = useMemo(() => slots\n .filter(slot => !(slot.pluginOptions?.devtools as DevtoolsSlotPluginOptions)?.hijackedSlot).map((slot) => {\n const hijackedSlotOptions = modifiedSlots.slots.get(slot.name);\n const hijackedSlot = (adheseContext && hijackedSlotOptions) && adheseContext.get?.(generateName(adheseContext.location, hijackedSlotOptions.format, hijackedSlotOptions.slot));\n\n return ({\n ...(hijackedSlot ?? slot),\n parameters: Array.from((hijackedSlot ?? slot).parameters.entries()),\n hijackedSlot,\n originalSlot: slot,\n });\n })\n .toSorted((a, b) => {\n const offsetA = a.element?.getBoundingClientRect().top ?? 0;\n const offsetB = b.element?.getBoundingClientRect().top ?? 0;\n\n return offsetA - offsetB;\n }), [slots]);\n\n const slotParametersExist = useMemo(() => formattedSlots.some(formattedSlot => formattedSlot.parameters.length > 0), [formattedSlots]);\n const previewExist = useMemo(() => formattedSlots.some(formattedSlot => formattedSlot.data?.preview), [formattedSlots]);\n const slotCodeExists = useMemo(() => formattedSlots.some(formattedSlot => formattedSlot.slot), [formattedSlots]);\n\n const origins: ReadonlyArray<string> = useMemo(() => {\n const set = new Set<string>();\n\n for (const slot of formattedSlots) {\n const { data } = slot;\n\n if (data)\n set.add(data.origin);\n }\n\n return Array.from(set);\n }, [formattedSlots]);\n\n return (\n adheseContext && (formattedSlots.length > 0)\n ? (\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Name</TableHead>\n <TableHead>Location</TableHead>\n {slotCodeExists && <TableHead>Slot</TableHead>}\n <TableHead>Format</TableHead>\n {origins.length > 1 && <TableHead>Origin</TableHead>}\n <TableHead>Render Status</TableHead>\n <TableHead>Campaign ID</TableHead>\n <TableHead>Booking ID</TableHead>\n <TableHead>Creative ID</TableHead>\n <TableHead>Traffic ID</TableHead>\n <TableHead>Creative type</TableHead>\n <TableHead>Impression tracked</TableHead>\n <TableHead>Viewability tracked</TableHead>\n {\n slotParametersExist && <TableHead>Parameters</TableHead>\n }\n {\n previewExist && <TableHead>Preview</TableHead>\n }\n <TableHead>Controls</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {formattedSlots.map(({\n data,\n name,\n format,\n location,\n status,\n isViewabilityTracked,\n isImpressionTracked,\n element,\n parameters,\n slot,\n hijackedSlot,\n originalSlot,\n }, index) => (\n <Fragment key={originalSlot.id}>\n <TableRow id={name}>\n <TableCell className=\"font-medium\">\n <button\n onClick={() => {\n if (element) {\n element.scrollIntoView();\n element.style.outline = 'solid 5px red';\n\n setTimeout(() => {\n element.style.outline = '';\n }, 1000);\n }\n }}\n className=\"flex flex-col gap-1\"\n >\n <Badge className={cn(slotIndexBadgeClasses[index % slotIndexBadgeClasses.length], 'text-white')}>\n {name}\n </Badge>\n {hijackedSlot && <del className=\"text-xs text-muted-foreground\">{originalSlot.name}</del>}\n </button>\n </TableCell>\n <TableCell>{location}</TableCell>\n {slotCodeExists && <TableCell>{slot ?? ''}</TableCell>}\n <TableCell>\n {!data?.adFormat || data?.adFormat === format\n ? format\n : (\n <>\n <del className=\"text-red-300 italic\">{format}</del>\n <ins className=\"no-underline text-green-700\">{data?.adFormat}</ins>\n </>\n )}\n </TableCell>\n {origins.length > 1 && (\n <TableCell>\n {data?.origin && <Badge className={cn(slotIndexBadgeClasses[origins.indexOf(data.origin) % slotIndexBadgeClasses.length], 'text-white')}>{data.origin.toLowerCase()}</Badge>}\n </TableCell>\n )}\n <TableCell>\n <Badge variant=\"outline\" className={cn(status === 'error' ? 'bg-red-500 text-red-50' : '')}>\n {renderStatusMap[status]}\n </Badge>\n </TableCell>\n <TableCell>\n {data?.orderId && data?.orderId !== '0'\n ? (\n <a\n href={`https://${adheseContext.options.account}.adhese.org/campaigns.html#campaignDetail/editCampaign/${data.orderId}`}\n target=\"_blank\"\n referrerPolicy=\"no-referrer\"\n className={cn(buttonVariants({\n variant: 'ghost',\n size: 'sm',\n }))}\n >\n {data.orderId}\n </a>\n )\n : '-'}\n </TableCell>\n <TableCell>\n {data?.adspaceId && data?.adspaceId !== '0'\n ? (\n <a\n href={`https://${adheseContext.options.account}.adhese.org/campaigns.html#campaignDetail/bookingDetail/${data.adspaceId}/${data.orderId}`}\n target=\"_blank\"\n referrerPolicy=\"no-referrer\"\n className={cn(buttonVariants({\n variant: 'ghost',\n size: 'sm',\n }))}\n >\n {data.adspaceId}\n </a>\n )\n : '-'}\n </TableCell>\n <TableCell>\n {data?.libId && data?.orderId !== '0'\n ? (\n <a\n href={`https://${adheseContext.options.account}.adhese.org/campaigns.html#campaignDetail/creativeDetail/${data.libId}/${data.orderId}`}\n target=\"_blank\"\n referrerPolicy=\"no-referrer\"\n className={cn(buttonVariants({\n variant: 'ghost',\n size: 'sm',\n }))}\n >\n {data.libId}\n </a>\n )\n : '-'}\n </TableCell>\n <TableCell>{data?.id ?? '-'}</TableCell>\n <TableCell>{data?.ext ? <Badge variant=\"outline\">{data.ext}</Badge> : '-'}</TableCell>\n <TableCell>\n {isImpressionTracked\n ? <Badge className=\"bg-green-100 text-green-900 hover:bg-green-100\">Yes</Badge>\n : <Badge variant=\"secondary\">No</Badge>}\n </TableCell>\n <TableCell>\n {isViewabilityTracked\n ? <Badge className=\"bg-green-100 text-green-900 hover:bg-green-100\">Yes</Badge>\n : <Badge variant=\"secondary\">No</Badge>}\n </TableCell>\n {\n slotParametersExist && (\n <TableCell>\n {\n parameters.length > 0 && (\n <Sheet>\n <SheetTrigger className={buttonVariants({\n variant: 'secondary',\n size: 'sm',\n })}\n >\n Show\n </SheetTrigger>\n <SheetContent className=\"bg-white flex flex-col gap-4\">\n <SheetHeader>\n <SheetTitle>\n Parameters\n </SheetTitle>\n </SheetHeader>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Key</TableHead>\n <TableHead>Value</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {parameters.map(([parameterName, value]) => (\n <TableRow key={parameterName}>\n <TableCell>\n <Badge variant=\"outline\">{parameterName}</Badge>\n </TableCell>\n <TableCell>\n {\n Array.isArray(value)\n ? (\n <ul className=\"flex gap-1\">\n {value.map((item, paramIndex) => (\n <li key={paramIndex}>\n <Badge variant=\"outline\">{item}</Badge>\n </li>\n ))}\n </ul>\n )\n : <Badge variant=\"outline\">{value}</Badge>\n }\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </SheetContent>\n </Sheet>\n )\n }\n </TableCell>\n )\n }\n {previewExist && (\n <TableCell>\n {data?.preview\n && (\n <Badge className=\"bg-amber-400 text-amber-950 hover:bg-amber-400\">\n PREVIEW\n </Badge>\n )}\n </TableCell>\n )}\n <TableCell className=\"flex gap-1\">\n <EditSlot id={originalSlot.id} />\n {modifiedSlots.slots.has(originalSlot.name) && (\n <Button\n onClick={\n () => {\n modifiedSlots.remove(originalSlot.name);\n }\n }\n variant=\"ghost\"\n size=\"sm\"\n title=\"Reset\"\n >\n <ResetIcon />\n </Button>\n )}\n </TableCell>\n </TableRow>\n </Fragment>\n ))}\n </TableBody>\n </Table>\n )\n : <p>No slots available</p>\n );\n}\n"],"names":["useState","useAdheseContext","useEffect","watch","useModifiedSlots","useMemo","generateName","Table","jsx","TableHeader","TableRow","TableHead","TableBody","Fragment","jsxs","TableCell","Badge","cn","buttonVariants","Sheet","SheetTrigger","SheetContent","SheetHeader","SheetTitle","EditSlot","Button","ResetIcon"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const SwitchPrimitives = require("@radix-ui/react-switch");
5
+ const react = require("react");
6
+ const utils = require("../utils.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const SwitchPrimitives__namespace = /* @__PURE__ */ _interopNamespaceDefault(SwitchPrimitives);
24
+ const Switch = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
25
+ SwitchPrimitives__namespace.Root,
26
+ {
27
+ className: utils.cn(
28
+ "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
29
+ className
30
+ ),
31
+ ...props,
32
+ ref,
33
+ children: /* @__PURE__ */ jsxRuntime.jsx(
34
+ SwitchPrimitives__namespace.Thumb,
35
+ {
36
+ className: utils.cn(
37
+ "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
38
+ )
39
+ }
40
+ )
41
+ }
42
+ ));
43
+ Switch.displayName = SwitchPrimitives__namespace.Root.displayName;
44
+ exports.Switch = Switch;
45
+ //# sourceMappingURL=switch.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.cjs","sources":["../../../src/components/switch.tsx"],"sourcesContent":["// eslint-disable-next-line ts/naming-convention\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\n\nimport { type ComponentPropsWithoutRef, type ElementRef, forwardRef } from 'react';\nimport { cn } from '../utils';\n\n// eslint-disable-next-line ts/naming-convention\nconst Switch = forwardRef<\n ElementRef<typeof SwitchPrimitives.Root>,\n ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n"],"names":["forwardRef","jsx","SwitchPrimitives","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAOM,MAAA,SAASA,iBAGb,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAACC,4BAAiB;AAAA,EAAjB;AAAA,IACC,WAAWC,MAAA;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IACJ;AAAA,IAEA,UAAAF,2BAAA;AAAA,MAACC,4BAAiB;AAAA,MAAjB;AAAA,QACC,WAAWC,MAAA;AAAA,UACT;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AACF,CACD;AACD,OAAO,cAAcD,4BAAiB,KAAK;;"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const utils = require("../utils.cjs");
6
+ const Table = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
7
+ "table",
8
+ {
9
+ ref,
10
+ className: utils.cn("w-full caption-bottom text-sm", className),
11
+ ...props
12
+ }
13
+ ) }));
14
+ Table.displayName = "Table";
15
+ const TableHeader = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: utils.cn("[&_tr]:border-b", className), ...props }));
16
+ TableHeader.displayName = "TableHeader";
17
+ const TableBody = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
18
+ "tbody",
19
+ {
20
+ ref,
21
+ className: utils.cn("[&_tr:last-child]:border-0", className),
22
+ ...props
23
+ }
24
+ ));
25
+ TableBody.displayName = "TableBody";
26
+ const TableFooter = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
27
+ "tfoot",
28
+ {
29
+ ref,
30
+ className: utils.cn(
31
+ "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
32
+ className
33
+ ),
34
+ ...props
35
+ }
36
+ ));
37
+ TableFooter.displayName = "TableFooter";
38
+ const TableRow = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
39
+ "tr",
40
+ {
41
+ ref,
42
+ className: utils.cn(
43
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
44
+ className
45
+ ),
46
+ ...props
47
+ }
48
+ ));
49
+ TableRow.displayName = "TableRow";
50
+ const TableHead = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
51
+ "th",
52
+ {
53
+ ref,
54
+ className: utils.cn(
55
+ "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
56
+ className
57
+ ),
58
+ ...props
59
+ }
60
+ ));
61
+ TableHead.displayName = "TableHead";
62
+ const TableCell = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
63
+ "td",
64
+ {
65
+ ref,
66
+ className: utils.cn(
67
+ "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
68
+ className
69
+ ),
70
+ ...props
71
+ }
72
+ ));
73
+ TableCell.displayName = "TableCell";
74
+ const TableCaption = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
75
+ "caption",
76
+ {
77
+ ref,
78
+ className: utils.cn("mt-4 text-sm text-muted-foreground", className),
79
+ ...props
80
+ }
81
+ ));
82
+ TableCaption.displayName = "TableCaption";
83
+ exports.Table = Table;
84
+ exports.TableBody = TableBody;
85
+ exports.TableCaption = TableCaption;
86
+ exports.TableCell = TableCell;
87
+ exports.TableFooter = TableFooter;
88
+ exports.TableHead = TableHead;
89
+ exports.TableHeader = TableHeader;
90
+ exports.TableRow = TableRow;
91
+ //# sourceMappingURL=table.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.cjs","sources":["../../../src/components/table.tsx"],"sourcesContent":["/* eslint-disable ts/naming-convention */\nimport { type HTMLAttributes, type TdHTMLAttributes, type ThHTMLAttributes, forwardRef } from 'react';\nimport { cn } from '../utils';\n\nconst Table = forwardRef<\n HTMLTableElement,\n HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = forwardRef<\n HTMLTableRowElement,\n HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = forwardRef<\n HTMLTableCellElement,\n ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = forwardRef<\n HTMLTableCellElement,\n TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = forwardRef<\n HTMLTableCaptionElement,\n HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n"],"names":["forwardRef","jsx","cn"],"mappings":";;;;;AAIA,MAAM,QAAQA,MAAAA,WAGZ,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1BC,2BAAAA,IAAC,OAAI,EAAA,WAAU,iCACb,UAAAA,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAAA,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA,EAAA;AACN,EAAA,CACF,CACD;AACD,MAAM,cAAc;AAEpB,MAAM,cAAcF,MAGlB,WAAA,CAAC,EAAE,WAAW,GAAG,MAAS,GAAA,uCACzB,SAAM,EAAA,KAAU,WAAWE,SAAG,mBAAmB,SAAS,GAAI,GAAG,OAAO,CAC1E;AACD,YAAY,cAAc;AAEpB,MAAA,YAAYF,iBAGhB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAAA,GAAG,8BAA8B,SAAS;AAAA,IACpD,GAAG;AAAA,EAAA;AACN,CACD;AACD,UAAU,cAAc;AAElB,MAAA,cAAcF,iBAGlB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAA;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,EAAA;AACN,CACD;AACD,YAAY,cAAc;AAEpB,MAAA,WAAWF,iBAGf,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAA;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,EAAA;AACN,CACD;AACD,SAAS,cAAc;AAEjB,MAAA,YAAYF,iBAGhB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAA;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,EAAA;AACN,CACD;AACD,UAAU,cAAc;AAElB,MAAA,YAAYF,iBAGhB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAA;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,EAAA;AACN,CACD;AACD,UAAU,cAAc;AAElB,MAAA,eAAeF,iBAGnB,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1BC,2BAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAWC,MAAAA,GAAG,sCAAsC,SAAS;AAAA,IAC5D,GAAG;AAAA,EAAA;AACN,CACD;AACD,aAAa,cAAc;;;;;;;;;"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const TabsPrimitive = require("@radix-ui/react-tabs");
5
+ const react = require("react");
6
+ const utils = require("../utils.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const TabsPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(TabsPrimitive);
24
+ const Tabs = TabsPrimitive__namespace.Root;
25
+ const TabsList = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
26
+ TabsPrimitive__namespace.List,
27
+ {
28
+ ref,
29
+ className: utils.cn(
30
+ "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
31
+ className
32
+ ),
33
+ ...props
34
+ }
35
+ ));
36
+ TabsList.displayName = TabsPrimitive__namespace.List.displayName;
37
+ const TabsTrigger = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
38
+ TabsPrimitive__namespace.Trigger,
39
+ {
40
+ ref,
41
+ className: utils.cn(
42
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
43
+ className
44
+ ),
45
+ ...props
46
+ }
47
+ ));
48
+ TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
49
+ const TabsContent = react.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
50
+ TabsPrimitive__namespace.Content,
51
+ {
52
+ ref,
53
+ className: utils.cn(
54
+ "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
55
+ className
56
+ ),
57
+ ...props
58
+ }
59
+ ));
60
+ TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
61
+ exports.Tabs = Tabs;
62
+ exports.TabsContent = TabsContent;
63
+ exports.TabsList = TabsList;
64
+ exports.TabsTrigger = TabsTrigger;
65
+ //# sourceMappingURL=tabs.cjs.map