@proveanything/smartlinks-utils-ui 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-IGFYMNKL.js +28 -0
- package/dist/chunk-IGFYMNKL.js.map +1 -0
- package/dist/components/AssetPicker/index.js +1 -1
- package/dist/components/ConditionsEditor/index.js +1 -1
- package/dist/components/FontPicker/index.js +1 -1
- package/dist/components/IconPicker/index.js +1 -1
- package/dist/components/RecordsAdmin/index.d.ts +215 -10
- package/dist/components/RecordsAdmin/index.js +556 -36
- package/dist/components/RecordsAdmin/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-NIAIQRFC.js +0 -28
- package/dist/chunk-NIAIQRFC.js.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// #style-inject:#style-inject
|
|
2
|
+
function styleInject(css, { insertAt } = {}) {
|
|
3
|
+
if (!css || typeof document === "undefined") return;
|
|
4
|
+
const head = document.head || document.getElementsByTagName("head")[0];
|
|
5
|
+
const style = document.createElement("style");
|
|
6
|
+
style.type = "text/css";
|
|
7
|
+
if (insertAt === "top") {
|
|
8
|
+
if (head.firstChild) {
|
|
9
|
+
head.insertBefore(style, head.firstChild);
|
|
10
|
+
} else {
|
|
11
|
+
head.appendChild(style);
|
|
12
|
+
}
|
|
13
|
+
} else {
|
|
14
|
+
head.appendChild(style);
|
|
15
|
+
}
|
|
16
|
+
if (style.styleSheet) {
|
|
17
|
+
style.styleSheet.cssText = css;
|
|
18
|
+
} else {
|
|
19
|
+
style.appendChild(document.createTextNode(css));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/styles.css
|
|
24
|
+
styleInject('.pointer-events-none {\n pointer-events: none;\n}\n.visible {\n visibility: visible;\n}\n.collapse {\n visibility: collapse;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-x-0 {\n left: 0px;\n right: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.left-1\\.5 {\n left: 0.375rem;\n}\n.left-2 {\n left: 0.5rem;\n}\n.left-2\\.5 {\n left: 0.625rem;\n}\n.left-3 {\n left: 0.75rem;\n}\n.right-0 {\n right: 0px;\n}\n.right-1\\.5 {\n right: 0.375rem;\n}\n.right-2 {\n right: 0.5rem;\n}\n.right-3 {\n right: 0.75rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-0\\.5 {\n top: 0.125rem;\n}\n.top-1\\.5 {\n top: 0.375rem;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-2 {\n top: 0.5rem;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.z-40 {\n z-index: 40;\n}\n.z-50 {\n z-index: 50;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.-mb-px {\n margin-bottom: -1px;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-1\\.5 {\n margin-left: 0.375rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.aspect-video {\n aspect-ratio: 16 / 9;\n}\n.h-1\\.5 {\n height: 0.375rem;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-11 {\n height: 2.75rem;\n}\n.h-16 {\n height: 4rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-2\\.5 {\n height: 0.625rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-full {\n height: 100%;\n}\n.max-h-32 {\n max-height: 8rem;\n}\n.max-h-80 {\n max-height: 20rem;\n}\n.max-h-\\[300px\\] {\n max-height: 300px;\n}\n.max-h-\\[400px\\] {\n max-height: 400px;\n}\n.max-h-\\[80vh\\] {\n max-height: 80vh;\n}\n.max-h-\\[85vh\\] {\n max-height: 85vh;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.w-1\\.5 {\n width: 0.375rem;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-16 {\n width: 4rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\.5 {\n width: 0.625rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-36 {\n width: 9rem;\n}\n.w-4 {\n width: 1rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-9 {\n width: 2.25rem;\n}\n.w-full {\n width: 100%;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-\\[12rem\\] {\n min-width: 12rem;\n}\n.min-w-\\[200px\\] {\n min-width: 200px;\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-4xl {\n max-width: 56rem;\n}\n.max-w-\\[12rem\\] {\n max-width: 12rem;\n}\n.max-w-\\[14rem\\] {\n max-width: 14rem;\n}\n.max-w-\\[160px\\] {\n max-width: 160px;\n}\n.max-w-\\[200px\\] {\n max-width: 200px;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-xl {\n max-width: 36rem;\n}\n.max-w-xs {\n max-width: 20rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-0\\.5 {\n --tw-translate-x: 0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-4 {\n --tw-translate-x: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0\\.5 {\n gap: 0.125rem;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.space-y-0\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-2\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));\n}\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.self-start {\n align-self: flex-start;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius);\n}\n.rounded-md {\n border-radius: calc(var(--radius) - 2px);\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.border {\n border-width: 1px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-solid {\n border-style: solid;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-blue-600 {\n --tw-border-opacity: 1;\n border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));\n}\n.border-border {\n border-color: hsl(var(--border));\n}\n.border-destructive {\n border-color: hsl(var(--destructive));\n}\n.border-destructive\\/50 {\n border-color: hsl(var(--destructive) / 0.5);\n}\n.border-gray-100 {\n --tw-border-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.border-primary {\n border-color: hsl(var(--primary));\n}\n.border-primary\\/50 {\n border-color: hsl(var(--primary) / 0.5);\n}\n.border-transparent {\n border-color: transparent;\n}\n.bg-\\[hsl\\(var\\(--ra-text\\)\\)\\] {\n background-color: hsl(var(--ra-text));\n}\n.bg-accent {\n background-color: hsl(var(--accent));\n}\n.bg-amber-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));\n}\n.bg-background {\n background-color: hsl(var(--background));\n}\n.bg-background\\/80 {\n background-color: hsl(var(--background) / 0.8);\n}\n.bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.bg-blue-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));\n}\n.bg-card {\n background-color: hsl(var(--card));\n}\n.bg-destructive {\n background-color: hsl(var(--destructive));\n}\n.bg-destructive\\/10 {\n background-color: hsl(var(--destructive) / 0.1);\n}\n.bg-destructive\\/5 {\n background-color: hsl(var(--destructive) / 0.05);\n}\n.bg-destructive\\/80 {\n background-color: hsl(var(--destructive) / 0.8);\n}\n.bg-emerald-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));\n}\n.bg-foreground {\n background-color: hsl(var(--foreground));\n}\n.bg-foreground\\/60 {\n background-color: hsl(var(--foreground) / 0.6);\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.bg-muted {\n background-color: hsl(var(--muted));\n}\n.bg-muted\\/20 {\n background-color: hsl(var(--muted) / 0.2);\n}\n.bg-muted\\/30 {\n background-color: hsl(var(--muted) / 0.3);\n}\n.bg-primary {\n background-color: hsl(var(--primary));\n}\n.bg-primary\\/10 {\n background-color: hsl(var(--primary) / 0.1);\n}\n.bg-primary\\/5 {\n background-color: hsl(var(--primary) / 0.05);\n}\n.bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.fill-current {\n fill: currentColor;\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-0\\.5 {\n padding: 0.125rem;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-1\\.5 {\n padding: 0.375rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-2\\.5 {\n padding: 0.625rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-10 {\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n}\n.py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.pb-1 {\n padding-bottom: 0.25rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pl-1 {\n padding-left: 0.25rem;\n}\n.pl-7 {\n padding-left: 1.75rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-9 {\n padding-left: 2.25rem;\n}\n.pr-2 {\n padding-right: 0.5rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-5 {\n padding-right: 1.25rem;\n}\n.pr-9 {\n padding-right: 2.25rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.font-mono {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-\\[10px\\] {\n font-size: 10px;\n}\n.text-\\[11px\\] {\n font-size: 11px;\n}\n.text-\\[9px\\] {\n font-size: 9px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.capitalize {\n text-transform: capitalize;\n}\n.\\!italic {\n font-style: italic !important;\n}\n.italic {\n font-style: italic;\n}\n.tracking-wide {\n letter-spacing: 0.025em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.text-\\[hsl\\(var\\(--ra-surface\\)\\)\\] {\n color: hsl(var(--ra-surface));\n}\n.text-accent-foreground {\n color: hsl(var(--accent-foreground));\n}\n.text-amber-600 {\n --tw-text-opacity: 1;\n color: rgb(217 119 6 / var(--tw-text-opacity, 1));\n}\n.text-amber-700 {\n --tw-text-opacity: 1;\n color: rgb(180 83 9 / var(--tw-text-opacity, 1));\n}\n.text-background {\n color: hsl(var(--background));\n}\n.text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\n}\n.text-destructive {\n color: hsl(var(--destructive));\n}\n.text-destructive-foreground {\n color: hsl(var(--destructive-foreground));\n}\n.text-emerald-700 {\n --tw-text-opacity: 1;\n color: rgb(4 120 87 / var(--tw-text-opacity, 1));\n}\n.text-foreground {\n color: hsl(var(--foreground));\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.text-gray-800 {\n --tw-text-opacity: 1;\n color: rgb(31 41 55 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-muted-foreground {\n color: hsl(var(--muted-foreground));\n}\n.text-muted-foreground\\/40 {\n color: hsl(var(--muted-foreground) / 0.4);\n}\n.text-primary {\n color: hsl(var(--primary));\n}\n.text-primary-foreground {\n color: hsl(var(--primary-foreground));\n}\n.text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.outline {\n outline-style: solid;\n}\n.ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.ring-primary {\n --tw-ring-color: hsl(var(--primary)) ;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.transition {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.placeholder\\:text-muted-foreground::-moz-placeholder {\n color: hsl(var(--muted-foreground));\n}\n.placeholder\\:text-muted-foreground::placeholder {\n color: hsl(var(--muted-foreground));\n}\n.hover\\:border-blue-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-gray-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.hover\\:border-muted-foreground:hover {\n border-color: hsl(var(--muted-foreground));\n}\n.hover\\:border-muted-foreground\\/40:hover {\n border-color: hsl(var(--muted-foreground) / 0.4);\n}\n.hover\\:border-ring:hover {\n border-color: hsl(var(--ring));\n}\n.hover\\:bg-\\[hsl\\(var\\(--ra-muted\\)\\)\\]:hover {\n background-color: hsl(var(--ra-muted));\n}\n.hover\\:bg-accent:hover {\n background-color: hsl(var(--accent));\n}\n.hover\\:bg-accent\\/30:hover {\n background-color: hsl(var(--accent) / 0.3);\n}\n.hover\\:bg-accent\\/50:hover {\n background-color: hsl(var(--accent) / 0.5);\n}\n.hover\\:bg-blue-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-blue-50\\/50:hover {\n background-color: rgb(239 246 255 / 0.5);\n}\n.hover\\:bg-blue-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-destructive:hover {\n background-color: hsl(var(--destructive));\n}\n.hover\\:bg-destructive\\/10:hover {\n background-color: hsl(var(--destructive) / 0.1);\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-muted:hover {\n background-color: hsl(var(--muted));\n}\n.hover\\:bg-primary\\/90:hover {\n background-color: hsl(var(--primary) / 0.9);\n}\n.hover\\:bg-red-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.hover\\:bg-red-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.hover\\:text-accent-foreground:hover {\n color: hsl(var(--accent-foreground));\n}\n.hover\\:text-blue-500:hover {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-blue-600:hover {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\n}\n.hover\\:text-destructive:hover {\n color: hsl(var(--destructive));\n}\n.hover\\:text-destructive\\/80:hover {\n color: hsl(var(--destructive) / 0.8);\n}\n.hover\\:text-foreground:hover {\n color: hsl(var(--foreground));\n}\n.hover\\:text-red-600:hover {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n.hover\\:shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.hover\\:shadow-sm:hover {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:ring-blue-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)) ;\n}\n.focus\\:ring-ring:focus {\n --tw-ring-color: hsl(var(--ring)) ;\n}\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-30:disabled {\n opacity: 0.3;\n}\n.disabled\\:opacity-40:disabled {\n opacity: 0.4;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.disabled\\:opacity-60:disabled {\n opacity: 0.6;\n}\n.disabled\\:opacity-70:disabled {\n opacity: 0.7;\n}\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n@media (min-width: 640px) {\n .sm\\:grid-cols-10 {\n grid-template-columns: repeat(10, minmax(0, 1fr));\n }\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .sm\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n}\n@media (min-width: 768px) {\n .md\\:grid-cols-12 {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n }\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n .md\\:grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n .lg\\:grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n}\n@media (prefers-color-scheme: dark) {\n .dark\\:border-gray-600 {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n }\n .dark\\:border-gray-700 {\n --tw-border-opacity: 1;\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\n }\n .dark\\:border-gray-800 {\n --tw-border-opacity: 1;\n border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));\n }\n .dark\\:bg-amber-900\\/30 {\n background-color: rgb(120 53 15 / 0.3);\n }\n .dark\\:bg-blue-900\\/30 {\n background-color: rgb(30 58 138 / 0.3);\n }\n .dark\\:bg-blue-900\\/40 {\n background-color: rgb(30 58 138 / 0.4);\n }\n .dark\\:bg-emerald-900\\/30 {\n background-color: rgb(6 78 59 / 0.3);\n }\n .dark\\:bg-gray-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n }\n .dark\\:bg-gray-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n }\n .dark\\:bg-gray-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n }\n .dark\\:bg-gray-800\\/50 {\n background-color: rgb(31 41 55 / 0.5);\n }\n .dark\\:bg-gray-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n }\n .dark\\:bg-red-900\\/30 {\n background-color: rgb(127 29 29 / 0.3);\n }\n .dark\\:text-amber-300 {\n --tw-text-opacity: 1;\n color: rgb(252 211 77 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-amber-400 {\n --tw-text-opacity: 1;\n color: rgb(251 191 36 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-blue-300 {\n --tw-text-opacity: 1;\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-emerald-300 {\n --tw-text-opacity: 1;\n color: rgb(110 231 183 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-gray-100 {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-gray-200 {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-gray-300 {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n }\n .dark\\:text-red-300 {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n }\n .dark\\:hover\\:border-blue-500:hover {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));\n }\n .dark\\:hover\\:border-gray-600:hover {\n --tw-border-opacity: 1;\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\n }\n .dark\\:hover\\:bg-blue-900\\/50:hover {\n background-color: rgb(30 58 138 / 0.5);\n }\n .dark\\:hover\\:bg-blue-950\\/20:hover {\n background-color: rgb(23 37 84 / 0.2);\n }\n .dark\\:hover\\:bg-gray-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n }\n .dark\\:hover\\:bg-gray-800:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\n }\n .dark\\:hover\\:bg-gray-800\\/50:hover {\n background-color: rgb(31 41 55 / 0.5);\n }\n .dark\\:hover\\:bg-red-900\\/20:hover {\n background-color: rgb(127 29 29 / 0.2);\n }\n .dark\\:hover\\:bg-red-900\\/30:hover {\n background-color: rgb(127 29 29 / 0.3);\n }\n .dark\\:hover\\:text-blue-400:hover {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n }\n}\n');
|
|
25
|
+
|
|
26
|
+
export { styleInject };
|
|
27
|
+
//# sourceMappingURL=chunk-IGFYMNKL.js.map
|
|
28
|
+
//# sourceMappingURL=chunk-IGFYMNKL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["#style-inject:#style-inject","../src/styles.css"],"names":[],"mappings":";AACyB,SAAR,YAA6B,GAAA,EAAK,EAAE,QAAA,EAAS,GAAI,EAAC,EAAG;AAC1D,EAAA,IAAI,CAAC,GAAA,IAAO,OAAO,QAAA,KAAa,WAAA,EAAa;AAE7C,EAAA,MAAM,OAAO,QAAA,CAAS,IAAA,IAAQ,SAAS,oBAAA,CAAqB,MAAM,EAAE,CAAC,CAAA;AACrE,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,EAAA,KAAA,CAAM,IAAA,GAAO,UAAA;AAEb,EAAA,IAAI,aAAa,KAAA,EAAO;AACtB,IAAA,IAAI,KAAK,UAAA,EAAY;AACnB,MAAA,IAAA,CAAK,YAAA,CAAa,KAAA,EAAO,IAAA,CAAK,UAAU,CAAA;AAAA,IAC1C,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,IACxB;AAAA,EACF,CAAA,MAAO;AACL,IAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,MAAM,UAAA,EAAY;AACpB,IAAA,KAAA,CAAM,WAAW,OAAA,GAAU,GAAA;AAAA,EAC7B,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,GAAG,CAAC,CAAA;AAAA,EAChD;AACF;;;ACvB8B,WAAA,CAAY,q58BAAy58B,CAAA","file":"chunk-IGFYMNKL.js","sourcesContent":["\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\".pointer-events-none {\\n pointer-events: none;\\n}\\n.visible {\\n visibility: visible;\\n}\\n.collapse {\\n visibility: collapse;\\n}\\n.fixed {\\n position: fixed;\\n}\\n.absolute {\\n position: absolute;\\n}\\n.relative {\\n position: relative;\\n}\\n.sticky {\\n position: sticky;\\n}\\n.inset-0 {\\n inset: 0px;\\n}\\n.inset-x-0 {\\n left: 0px;\\n right: 0px;\\n}\\n.bottom-0 {\\n bottom: 0px;\\n}\\n.left-0 {\\n left: 0px;\\n}\\n.left-1\\\\.5 {\\n left: 0.375rem;\\n}\\n.left-2 {\\n left: 0.5rem;\\n}\\n.left-2\\\\.5 {\\n left: 0.625rem;\\n}\\n.left-3 {\\n left: 0.75rem;\\n}\\n.right-0 {\\n right: 0px;\\n}\\n.right-1\\\\.5 {\\n right: 0.375rem;\\n}\\n.right-2 {\\n right: 0.5rem;\\n}\\n.right-3 {\\n right: 0.75rem;\\n}\\n.top-0 {\\n top: 0px;\\n}\\n.top-0\\\\.5 {\\n top: 0.125rem;\\n}\\n.top-1\\\\.5 {\\n top: 0.375rem;\\n}\\n.top-1\\\\/2 {\\n top: 50%;\\n}\\n.top-2 {\\n top: 0.5rem;\\n}\\n.z-10 {\\n z-index: 10;\\n}\\n.z-20 {\\n z-index: 20;\\n}\\n.z-40 {\\n z-index: 40;\\n}\\n.z-50 {\\n z-index: 50;\\n}\\n.col-span-2 {\\n grid-column: span 2 / span 2;\\n}\\n.mx-4 {\\n margin-left: 1rem;\\n margin-right: 1rem;\\n}\\n.mx-auto {\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.-mb-px {\\n margin-bottom: -1px;\\n}\\n.mb-1 {\\n margin-bottom: 0.25rem;\\n}\\n.mb-2 {\\n margin-bottom: 0.5rem;\\n}\\n.mb-3 {\\n margin-bottom: 0.75rem;\\n}\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\n.ml-1 {\\n margin-left: 0.25rem;\\n}\\n.ml-1\\\\.5 {\\n margin-left: 0.375rem;\\n}\\n.ml-2 {\\n margin-left: 0.5rem;\\n}\\n.ml-auto {\\n margin-left: auto;\\n}\\n.mt-0\\\\.5 {\\n margin-top: 0.125rem;\\n}\\n.mt-1 {\\n margin-top: 0.25rem;\\n}\\n.mt-1\\\\.5 {\\n margin-top: 0.375rem;\\n}\\n.mt-2 {\\n margin-top: 0.5rem;\\n}\\n.mt-4 {\\n margin-top: 1rem;\\n}\\n.block {\\n display: block;\\n}\\n.inline-block {\\n display: inline-block;\\n}\\n.inline {\\n display: inline;\\n}\\n.flex {\\n display: flex;\\n}\\n.inline-flex {\\n display: inline-flex;\\n}\\n.table {\\n display: table;\\n}\\n.grid {\\n display: grid;\\n}\\n.contents {\\n display: contents;\\n}\\n.hidden {\\n display: none;\\n}\\n.aspect-square {\\n aspect-ratio: 1 / 1;\\n}\\n.aspect-video {\\n aspect-ratio: 16 / 9;\\n}\\n.h-1\\\\.5 {\\n height: 0.375rem;\\n}\\n.h-10 {\\n height: 2.5rem;\\n}\\n.h-11 {\\n height: 2.75rem;\\n}\\n.h-16 {\\n height: 4rem;\\n}\\n.h-2 {\\n height: 0.5rem;\\n}\\n.h-2\\\\.5 {\\n height: 0.625rem;\\n}\\n.h-3 {\\n height: 0.75rem;\\n}\\n.h-3\\\\.5 {\\n height: 0.875rem;\\n}\\n.h-4 {\\n height: 1rem;\\n}\\n.h-5 {\\n height: 1.25rem;\\n}\\n.h-6 {\\n height: 1.5rem;\\n}\\n.h-7 {\\n height: 1.75rem;\\n}\\n.h-8 {\\n height: 2rem;\\n}\\n.h-9 {\\n height: 2.25rem;\\n}\\n.h-full {\\n height: 100%;\\n}\\n.max-h-32 {\\n max-height: 8rem;\\n}\\n.max-h-80 {\\n max-height: 20rem;\\n}\\n.max-h-\\\\[300px\\\\] {\\n max-height: 300px;\\n}\\n.max-h-\\\\[400px\\\\] {\\n max-height: 400px;\\n}\\n.max-h-\\\\[80vh\\\\] {\\n max-height: 80vh;\\n}\\n.max-h-\\\\[85vh\\\\] {\\n max-height: 85vh;\\n}\\n.min-h-0 {\\n min-height: 0px;\\n}\\n.w-1\\\\.5 {\\n width: 0.375rem;\\n}\\n.w-10 {\\n width: 2.5rem;\\n}\\n.w-16 {\\n width: 4rem;\\n}\\n.w-2 {\\n width: 0.5rem;\\n}\\n.w-2\\\\.5 {\\n width: 0.625rem;\\n}\\n.w-3 {\\n width: 0.75rem;\\n}\\n.w-3\\\\.5 {\\n width: 0.875rem;\\n}\\n.w-36 {\\n width: 9rem;\\n}\\n.w-4 {\\n width: 1rem;\\n}\\n.w-5 {\\n width: 1.25rem;\\n}\\n.w-6 {\\n width: 1.5rem;\\n}\\n.w-7 {\\n width: 1.75rem;\\n}\\n.w-8 {\\n width: 2rem;\\n}\\n.w-9 {\\n width: 2.25rem;\\n}\\n.w-full {\\n width: 100%;\\n}\\n.min-w-0 {\\n min-width: 0px;\\n}\\n.min-w-\\\\[12rem\\\\] {\\n min-width: 12rem;\\n}\\n.min-w-\\\\[200px\\\\] {\\n min-width: 200px;\\n}\\n.max-w-2xl {\\n max-width: 42rem;\\n}\\n.max-w-4xl {\\n max-width: 56rem;\\n}\\n.max-w-\\\\[12rem\\\\] {\\n max-width: 12rem;\\n}\\n.max-w-\\\\[14rem\\\\] {\\n max-width: 14rem;\\n}\\n.max-w-\\\\[160px\\\\] {\\n max-width: 160px;\\n}\\n.max-w-\\\\[200px\\\\] {\\n max-width: 200px;\\n}\\n.max-w-full {\\n max-width: 100%;\\n}\\n.max-w-lg {\\n max-width: 32rem;\\n}\\n.max-w-xl {\\n max-width: 36rem;\\n}\\n.max-w-xs {\\n max-width: 20rem;\\n}\\n.flex-1 {\\n flex: 1 1 0%;\\n}\\n.flex-shrink-0 {\\n flex-shrink: 0;\\n}\\n.shrink-0 {\\n flex-shrink: 0;\\n}\\n.-translate-y-1\\\\/2 {\\n --tw-translate-y: -50%;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.translate-x-0\\\\.5 {\\n --tw-translate-x: 0.125rem;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.translate-x-4 {\\n --tw-translate-x: 1rem;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.scale-110 {\\n --tw-scale-x: 1.1;\\n --tw-scale-y: 1.1;\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n@keyframes pulse {\\n 50% {\\n opacity: .5;\\n }\\n}\\n.animate-pulse {\\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\\n}\\n@keyframes spin {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n.animate-spin {\\n animation: spin 1s linear infinite;\\n}\\n.cursor-not-allowed {\\n cursor: not-allowed;\\n}\\n.cursor-pointer {\\n cursor: pointer;\\n}\\n.select-none {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n user-select: none;\\n}\\n.resize-none {\\n resize: none;\\n}\\n.appearance-none {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n.grid-cols-2 {\\n grid-template-columns: repeat(2, minmax(0, 1fr));\\n}\\n.grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n}\\n.grid-cols-8 {\\n grid-template-columns: repeat(8, minmax(0, 1fr));\\n}\\n.flex-col {\\n flex-direction: column;\\n}\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\n.items-start {\\n align-items: flex-start;\\n}\\n.items-end {\\n align-items: flex-end;\\n}\\n.items-center {\\n align-items: center;\\n}\\n.justify-end {\\n justify-content: flex-end;\\n}\\n.justify-center {\\n justify-content: center;\\n}\\n.justify-between {\\n justify-content: space-between;\\n}\\n.gap-0\\\\.5 {\\n gap: 0.125rem;\\n}\\n.gap-1 {\\n gap: 0.25rem;\\n}\\n.gap-1\\\\.5 {\\n gap: 0.375rem;\\n}\\n.gap-2 {\\n gap: 0.5rem;\\n}\\n.gap-3 {\\n gap: 0.75rem;\\n}\\n.space-y-0\\\\.5 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));\\n}\\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\\n}\\n.space-y-1\\\\.5 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\\n}\\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\\n}\\n.space-y-2\\\\.5 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));\\n}\\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\\n}\\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\\n --tw-space-y-reverse: 0;\\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\\n}\\n.divide-y > :not([hidden]) ~ :not([hidden]) {\\n --tw-divide-y-reverse: 0;\\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\\n}\\n.self-start {\\n align-self: flex-start;\\n}\\n.overflow-hidden {\\n overflow: hidden;\\n}\\n.overflow-y-auto {\\n overflow-y: auto;\\n}\\n.truncate {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}\\n.rounded {\\n border-radius: 0.25rem;\\n}\\n.rounded-full {\\n border-radius: 9999px;\\n}\\n.rounded-lg {\\n border-radius: var(--radius);\\n}\\n.rounded-md {\\n border-radius: calc(var(--radius) - 2px);\\n}\\n.rounded-xl {\\n border-radius: 0.75rem;\\n}\\n.border {\\n border-width: 1px;\\n}\\n.border-2 {\\n border-width: 2px;\\n}\\n.border-b {\\n border-bottom-width: 1px;\\n}\\n.border-b-2 {\\n border-bottom-width: 2px;\\n}\\n.border-r {\\n border-right-width: 1px;\\n}\\n.border-t {\\n border-top-width: 1px;\\n}\\n.border-solid {\\n border-style: solid;\\n}\\n.border-dashed {\\n border-style: dashed;\\n}\\n.border-blue-600 {\\n --tw-border-opacity: 1;\\n border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));\\n}\\n.border-border {\\n border-color: hsl(var(--border));\\n}\\n.border-destructive {\\n border-color: hsl(var(--destructive));\\n}\\n.border-destructive\\\\/50 {\\n border-color: hsl(var(--destructive) / 0.5);\\n}\\n.border-gray-100 {\\n --tw-border-opacity: 1;\\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\\n}\\n.border-gray-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\\n}\\n.border-gray-300 {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\\n}\\n.border-primary {\\n border-color: hsl(var(--primary));\\n}\\n.border-primary\\\\/50 {\\n border-color: hsl(var(--primary) / 0.5);\\n}\\n.border-transparent {\\n border-color: transparent;\\n}\\n.bg-\\\\[hsl\\\\(var\\\\(--ra-text\\\\)\\\\)\\\\] {\\n background-color: hsl(var(--ra-text));\\n}\\n.bg-accent {\\n background-color: hsl(var(--accent));\\n}\\n.bg-amber-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));\\n}\\n.bg-background {\\n background-color: hsl(var(--background));\\n}\\n.bg-background\\\\/80 {\\n background-color: hsl(var(--background) / 0.8);\\n}\\n.bg-black\\\\/50 {\\n background-color: rgb(0 0 0 / 0.5);\\n}\\n.bg-blue-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\\n}\\n.bg-blue-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\\n}\\n.bg-blue-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\\n}\\n.bg-blue-600 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));\\n}\\n.bg-card {\\n background-color: hsl(var(--card));\\n}\\n.bg-destructive {\\n background-color: hsl(var(--destructive));\\n}\\n.bg-destructive\\\\/10 {\\n background-color: hsl(var(--destructive) / 0.1);\\n}\\n.bg-destructive\\\\/5 {\\n background-color: hsl(var(--destructive) / 0.05);\\n}\\n.bg-destructive\\\\/80 {\\n background-color: hsl(var(--destructive) / 0.8);\\n}\\n.bg-emerald-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));\\n}\\n.bg-foreground {\\n background-color: hsl(var(--foreground));\\n}\\n.bg-foreground\\\\/60 {\\n background-color: hsl(var(--foreground) / 0.6);\\n}\\n.bg-gray-100 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\n.bg-gray-300 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\\n}\\n.bg-gray-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\n.bg-muted {\\n background-color: hsl(var(--muted));\\n}\\n.bg-muted\\\\/20 {\\n background-color: hsl(var(--muted) / 0.2);\\n}\\n.bg-muted\\\\/30 {\\n background-color: hsl(var(--muted) / 0.3);\\n}\\n.bg-primary {\\n background-color: hsl(var(--primary));\\n}\\n.bg-primary\\\\/10 {\\n background-color: hsl(var(--primary) / 0.1);\\n}\\n.bg-primary\\\\/5 {\\n background-color: hsl(var(--primary) / 0.05);\\n}\\n.bg-red-50 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\\n}\\n.bg-transparent {\\n background-color: transparent;\\n}\\n.bg-white {\\n --tw-bg-opacity: 1;\\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\\n}\\n.fill-current {\\n fill: currentColor;\\n}\\n.object-contain {\\n -o-object-fit: contain;\\n object-fit: contain;\\n}\\n.object-cover {\\n -o-object-fit: cover;\\n object-fit: cover;\\n}\\n.p-0\\\\.5 {\\n padding: 0.125rem;\\n}\\n.p-1 {\\n padding: 0.25rem;\\n}\\n.p-1\\\\.5 {\\n padding: 0.375rem;\\n}\\n.p-2 {\\n padding: 0.5rem;\\n}\\n.p-2\\\\.5 {\\n padding: 0.625rem;\\n}\\n.p-3 {\\n padding: 0.75rem;\\n}\\n.p-4 {\\n padding: 1rem;\\n}\\n.p-6 {\\n padding: 1.5rem;\\n}\\n.px-1 {\\n padding-left: 0.25rem;\\n padding-right: 0.25rem;\\n}\\n.px-1\\\\.5 {\\n padding-left: 0.375rem;\\n padding-right: 0.375rem;\\n}\\n.px-2 {\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n}\\n.px-2\\\\.5 {\\n padding-left: 0.625rem;\\n padding-right: 0.625rem;\\n}\\n.px-3 {\\n padding-left: 0.75rem;\\n padding-right: 0.75rem;\\n}\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\n.px-5 {\\n padding-left: 1.25rem;\\n padding-right: 1.25rem;\\n}\\n.py-0 {\\n padding-top: 0px;\\n padding-bottom: 0px;\\n}\\n.py-0\\\\.5 {\\n padding-top: 0.125rem;\\n padding-bottom: 0.125rem;\\n}\\n.py-1 {\\n padding-top: 0.25rem;\\n padding-bottom: 0.25rem;\\n}\\n.py-1\\\\.5 {\\n padding-top: 0.375rem;\\n padding-bottom: 0.375rem;\\n}\\n.py-10 {\\n padding-top: 2.5rem;\\n padding-bottom: 2.5rem;\\n}\\n.py-12 {\\n padding-top: 3rem;\\n padding-bottom: 3rem;\\n}\\n.py-2 {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n}\\n.py-2\\\\.5 {\\n padding-top: 0.625rem;\\n padding-bottom: 0.625rem;\\n}\\n.py-3 {\\n padding-top: 0.75rem;\\n padding-bottom: 0.75rem;\\n}\\n.py-4 {\\n padding-top: 1rem;\\n padding-bottom: 1rem;\\n}\\n.pb-1 {\\n padding-bottom: 0.25rem;\\n}\\n.pb-2 {\\n padding-bottom: 0.5rem;\\n}\\n.pl-1 {\\n padding-left: 0.25rem;\\n}\\n.pl-7 {\\n padding-left: 1.75rem;\\n}\\n.pl-8 {\\n padding-left: 2rem;\\n}\\n.pl-9 {\\n padding-left: 2.25rem;\\n}\\n.pr-2 {\\n padding-right: 0.5rem;\\n}\\n.pr-3 {\\n padding-right: 0.75rem;\\n}\\n.pr-5 {\\n padding-right: 1.25rem;\\n}\\n.pr-9 {\\n padding-right: 2.25rem;\\n}\\n.pt-1 {\\n padding-top: 0.25rem;\\n}\\n.pt-2 {\\n padding-top: 0.5rem;\\n}\\n.pt-3 {\\n padding-top: 0.75rem;\\n}\\n.pt-4 {\\n padding-top: 1rem;\\n}\\n.text-left {\\n text-align: left;\\n}\\n.text-center {\\n text-align: center;\\n}\\n.font-mono {\\n font-family:\\n ui-monospace,\\n SFMono-Regular,\\n Menlo,\\n Monaco,\\n Consolas,\\n \\\"Liberation Mono\\\",\\n \\\"Courier New\\\",\\n monospace;\\n}\\n.text-2xl {\\n font-size: 1.5rem;\\n line-height: 2rem;\\n}\\n.text-\\\\[10px\\\\] {\\n font-size: 10px;\\n}\\n.text-\\\\[11px\\\\] {\\n font-size: 11px;\\n}\\n.text-\\\\[9px\\\\] {\\n font-size: 9px;\\n}\\n.text-base {\\n font-size: 1rem;\\n line-height: 1.5rem;\\n}\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\n.text-xs {\\n font-size: 0.75rem;\\n line-height: 1rem;\\n}\\n.font-bold {\\n font-weight: 700;\\n}\\n.font-medium {\\n font-weight: 500;\\n}\\n.font-semibold {\\n font-weight: 600;\\n}\\n.uppercase {\\n text-transform: uppercase;\\n}\\n.capitalize {\\n text-transform: capitalize;\\n}\\n.\\\\!italic {\\n font-style: italic !important;\\n}\\n.italic {\\n font-style: italic;\\n}\\n.tracking-wide {\\n letter-spacing: 0.025em;\\n}\\n.tracking-wider {\\n letter-spacing: 0.05em;\\n}\\n.text-\\\\[hsl\\\\(var\\\\(--ra-surface\\\\)\\\\)\\\\] {\\n color: hsl(var(--ra-surface));\\n}\\n.text-accent-foreground {\\n color: hsl(var(--accent-foreground));\\n}\\n.text-amber-600 {\\n --tw-text-opacity: 1;\\n color: rgb(217 119 6 / var(--tw-text-opacity, 1));\\n}\\n.text-amber-700 {\\n --tw-text-opacity: 1;\\n color: rgb(180 83 9 / var(--tw-text-opacity, 1));\\n}\\n.text-background {\\n color: hsl(var(--background));\\n}\\n.text-blue-700 {\\n --tw-text-opacity: 1;\\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\\n}\\n.text-destructive {\\n color: hsl(var(--destructive));\\n}\\n.text-destructive-foreground {\\n color: hsl(var(--destructive-foreground));\\n}\\n.text-emerald-700 {\\n --tw-text-opacity: 1;\\n color: rgb(4 120 87 / var(--tw-text-opacity, 1));\\n}\\n.text-foreground {\\n color: hsl(var(--foreground));\\n}\\n.text-gray-400 {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\\n}\\n.text-gray-500 {\\n --tw-text-opacity: 1;\\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\\n}\\n.text-gray-600 {\\n --tw-text-opacity: 1;\\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\\n}\\n.text-gray-700 {\\n --tw-text-opacity: 1;\\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\\n}\\n.text-gray-800 {\\n --tw-text-opacity: 1;\\n color: rgb(31 41 55 / var(--tw-text-opacity, 1));\\n}\\n.text-gray-900 {\\n --tw-text-opacity: 1;\\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\\n}\\n.text-muted-foreground {\\n color: hsl(var(--muted-foreground));\\n}\\n.text-muted-foreground\\\\/40 {\\n color: hsl(var(--muted-foreground) / 0.4);\\n}\\n.text-primary {\\n color: hsl(var(--primary));\\n}\\n.text-primary-foreground {\\n color: hsl(var(--primary-foreground));\\n}\\n.text-red-400 {\\n --tw-text-opacity: 1;\\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\\n}\\n.text-red-700 {\\n --tw-text-opacity: 1;\\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\\n}\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.underline {\\n text-decoration-line: underline;\\n}\\n.opacity-0 {\\n opacity: 0;\\n}\\n.opacity-100 {\\n opacity: 1;\\n}\\n.opacity-50 {\\n opacity: 0.5;\\n}\\n.opacity-60 {\\n opacity: 0.6;\\n}\\n.opacity-70 {\\n opacity: 0.7;\\n}\\n.opacity-80 {\\n opacity: 0.8;\\n}\\n.shadow {\\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.shadow-2xl {\\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.shadow-lg {\\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.shadow-sm {\\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.shadow-xl {\\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.outline {\\n outline-style: solid;\\n}\\n.ring-1 {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow, 0 0 #0000);\\n}\\n.ring-2 {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow, 0 0 #0000);\\n}\\n.ring-primary {\\n --tw-ring-color: hsl(var(--primary)) ;\\n}\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.backdrop-blur-sm {\\n --tw-backdrop-blur: blur(4px);\\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n}\\n.transition {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n opacity,\\n box-shadow,\\n transform,\\n filter,\\n backdrop-filter;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-all {\\n transition-property: all;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-colors {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n text-decoration-color,\\n fill,\\n stroke;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-opacity {\\n transition-property: opacity;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-shadow {\\n transition-property: box-shadow;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.transition-transform {\\n transition-property: transform;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.duration-300 {\\n transition-duration: 300ms;\\n}\\n.placeholder\\\\:text-muted-foreground::-moz-placeholder {\\n color: hsl(var(--muted-foreground));\\n}\\n.placeholder\\\\:text-muted-foreground::placeholder {\\n color: hsl(var(--muted-foreground));\\n}\\n.hover\\\\:border-blue-400:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));\\n}\\n.hover\\\\:border-gray-300:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\\n}\\n.hover\\\\:border-muted-foreground:hover {\\n border-color: hsl(var(--muted-foreground));\\n}\\n.hover\\\\:border-muted-foreground\\\\/40:hover {\\n border-color: hsl(var(--muted-foreground) / 0.4);\\n}\\n.hover\\\\:border-ring:hover {\\n border-color: hsl(var(--ring));\\n}\\n.hover\\\\:bg-\\\\[hsl\\\\(var\\\\(--ra-muted\\\\)\\\\)\\\\]:hover {\\n background-color: hsl(var(--ra-muted));\\n}\\n.hover\\\\:bg-accent:hover {\\n background-color: hsl(var(--accent));\\n}\\n.hover\\\\:bg-accent\\\\/30:hover {\\n background-color: hsl(var(--accent) / 0.3);\\n}\\n.hover\\\\:bg-accent\\\\/50:hover {\\n background-color: hsl(var(--accent) / 0.5);\\n}\\n.hover\\\\:bg-blue-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-blue-50\\\\/50:hover {\\n background-color: rgb(239 246 255 / 0.5);\\n}\\n.hover\\\\:bg-blue-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-destructive:hover {\\n background-color: hsl(var(--destructive));\\n}\\n.hover\\\\:bg-destructive\\\\/10:hover {\\n background-color: hsl(var(--destructive) / 0.1);\\n}\\n.hover\\\\:bg-gray-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-gray-200:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-gray-50:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-muted:hover {\\n background-color: hsl(var(--muted));\\n}\\n.hover\\\\:bg-primary\\\\/90:hover {\\n background-color: hsl(var(--primary) / 0.9);\\n}\\n.hover\\\\:bg-red-100:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:bg-red-50:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\\n}\\n.hover\\\\:text-accent-foreground:hover {\\n color: hsl(var(--accent-foreground));\\n}\\n.hover\\\\:text-blue-500:hover {\\n --tw-text-opacity: 1;\\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\\n}\\n.hover\\\\:text-blue-600:hover {\\n --tw-text-opacity: 1;\\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\\n}\\n.hover\\\\:text-destructive:hover {\\n color: hsl(var(--destructive));\\n}\\n.hover\\\\:text-destructive\\\\/80:hover {\\n color: hsl(var(--destructive) / 0.8);\\n}\\n.hover\\\\:text-foreground:hover {\\n color: hsl(var(--foreground));\\n}\\n.hover\\\\:text-red-600:hover {\\n --tw-text-opacity: 1;\\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\\n}\\n.hover\\\\:underline:hover {\\n text-decoration-line: underline;\\n}\\n.hover\\\\:opacity-100:hover {\\n opacity: 1;\\n}\\n.hover\\\\:shadow-md:hover {\\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.hover\\\\:shadow-sm:hover {\\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow, 0 0 #0000),\\n var(--tw-ring-shadow, 0 0 #0000),\\n var(--tw-shadow);\\n}\\n.focus\\\\:outline-none:focus {\\n outline: 2px solid transparent;\\n outline-offset: 2px;\\n}\\n.focus\\\\:ring-1:focus {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow, 0 0 #0000);\\n}\\n.focus\\\\:ring-2:focus {\\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\\n box-shadow:\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow, 0 0 #0000);\\n}\\n.focus\\\\:ring-blue-500:focus {\\n --tw-ring-opacity: 1;\\n --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)) ;\\n}\\n.focus\\\\:ring-ring:focus {\\n --tw-ring-color: hsl(var(--ring)) ;\\n}\\n.disabled\\\\:cursor-not-allowed:disabled {\\n cursor: not-allowed;\\n}\\n.disabled\\\\:opacity-30:disabled {\\n opacity: 0.3;\\n}\\n.disabled\\\\:opacity-40:disabled {\\n opacity: 0.4;\\n}\\n.disabled\\\\:opacity-50:disabled {\\n opacity: 0.5;\\n}\\n.disabled\\\\:opacity-60:disabled {\\n opacity: 0.6;\\n}\\n.disabled\\\\:opacity-70:disabled {\\n opacity: 0.7;\\n}\\n.group:hover .group-hover\\\\:opacity-100 {\\n opacity: 1;\\n}\\n@media (min-width: 640px) {\\n .sm\\\\:grid-cols-10 {\\n grid-template-columns: repeat(10, minmax(0, 1fr));\\n }\\n .sm\\\\:grid-cols-3 {\\n grid-template-columns: repeat(3, minmax(0, 1fr));\\n }\\n .sm\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n}\\n@media (min-width: 768px) {\\n .md\\\\:grid-cols-12 {\\n grid-template-columns: repeat(12, minmax(0, 1fr));\\n }\\n .md\\\\:grid-cols-4 {\\n grid-template-columns: repeat(4, minmax(0, 1fr));\\n }\\n .md\\\\:grid-cols-5 {\\n grid-template-columns: repeat(5, minmax(0, 1fr));\\n }\\n}\\n@media (min-width: 1024px) {\\n .lg\\\\:grid-cols-6 {\\n grid-template-columns: repeat(6, minmax(0, 1fr));\\n }\\n}\\n@media (prefers-color-scheme: dark) {\\n .dark\\\\:border-gray-600 {\\n --tw-border-opacity: 1;\\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\\n }\\n .dark\\\\:border-gray-700 {\\n --tw-border-opacity: 1;\\n border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));\\n }\\n .dark\\\\:border-gray-800 {\\n --tw-border-opacity: 1;\\n border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));\\n }\\n .dark\\\\:bg-amber-900\\\\/30 {\\n background-color: rgb(120 53 15 / 0.3);\\n }\\n .dark\\\\:bg-blue-900\\\\/30 {\\n background-color: rgb(30 58 138 / 0.3);\\n }\\n .dark\\\\:bg-blue-900\\\\/40 {\\n background-color: rgb(30 58 138 / 0.4);\\n }\\n .dark\\\\:bg-emerald-900\\\\/30 {\\n background-color: rgb(6 78 59 / 0.3);\\n }\\n .dark\\\\:bg-gray-600 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\\n }\\n .dark\\\\:bg-gray-700 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\\n }\\n .dark\\\\:bg-gray-800 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\\n }\\n .dark\\\\:bg-gray-800\\\\/50 {\\n background-color: rgb(31 41 55 / 0.5);\\n }\\n .dark\\\\:bg-gray-900 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\\n }\\n .dark\\\\:bg-red-900\\\\/30 {\\n background-color: rgb(127 29 29 / 0.3);\\n }\\n .dark\\\\:text-amber-300 {\\n --tw-text-opacity: 1;\\n color: rgb(252 211 77 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-amber-400 {\\n --tw-text-opacity: 1;\\n color: rgb(251 191 36 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-blue-300 {\\n --tw-text-opacity: 1;\\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-emerald-300 {\\n --tw-text-opacity: 1;\\n color: rgb(110 231 183 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-gray-100 {\\n --tw-text-opacity: 1;\\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-gray-200 {\\n --tw-text-opacity: 1;\\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-gray-300 {\\n --tw-text-opacity: 1;\\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-gray-400 {\\n --tw-text-opacity: 1;\\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-gray-500 {\\n --tw-text-opacity: 1;\\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:text-red-300 {\\n --tw-text-opacity: 1;\\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\\n }\\n .dark\\\\:hover\\\\:border-blue-500:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));\\n }\\n .dark\\\\:hover\\\\:border-gray-600:hover {\\n --tw-border-opacity: 1;\\n border-color: rgb(75 85 99 / var(--tw-border-opacity, 1));\\n }\\n .dark\\\\:hover\\\\:bg-blue-900\\\\/50:hover {\\n background-color: rgb(30 58 138 / 0.5);\\n }\\n .dark\\\\:hover\\\\:bg-blue-950\\\\/20:hover {\\n background-color: rgb(23 37 84 / 0.2);\\n }\\n .dark\\\\:hover\\\\:bg-gray-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\\n }\\n .dark\\\\:hover\\\\:bg-gray-800:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));\\n }\\n .dark\\\\:hover\\\\:bg-gray-800\\\\/50:hover {\\n background-color: rgb(31 41 55 / 0.5);\\n }\\n .dark\\\\:hover\\\\:bg-red-900\\\\/20:hover {\\n background-color: rgb(127 29 29 / 0.2);\\n }\\n .dark\\\\:hover\\\\:bg-red-900\\\\/30:hover {\\n background-color: rgb(127 29 29 / 0.3);\\n }\\n .dark\\\\:hover\\\\:text-blue-400:hover {\\n --tw-text-opacity: 1;\\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\\n }\\n}\\n\")"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { CATEGORY_FALLBACKS, CATEGORY_LABELS, FontPicker, GOOGLE_FONTS_CATALOG, getGoogleFontUrl } from '../../chunk-OTJV62XV.js';
|
|
2
|
-
import '../../chunk-
|
|
2
|
+
import '../../chunk-IGFYMNKL.js';
|
|
3
3
|
import '../../chunk-L7FQ52F5.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
2
|
+
import { ComponentType, ReactNode } from 'react';
|
|
3
3
|
import * as _proveanything_smartlinks_dist_types_appObjects from '@proveanything/smartlinks/dist/types/appObjects';
|
|
4
4
|
import { MatchedAt, FacetRule, RecordScope, AppRecord, RecordTarget, MatchResult, MatchEntry } from '@proveanything/smartlinks/dist/types/appObjects';
|
|
5
5
|
import { LucideIcon } from 'lucide-react';
|
|
@@ -171,6 +171,16 @@ type TelemetryEvent = {
|
|
|
171
171
|
type: 'item.create';
|
|
172
172
|
recordType?: string;
|
|
173
173
|
scopeRef: string;
|
|
174
|
+
} | {
|
|
175
|
+
type: 'clipboard.copy';
|
|
176
|
+
recordType?: string;
|
|
177
|
+
sourceRef: string;
|
|
178
|
+
} | {
|
|
179
|
+
type: 'clipboard.paste';
|
|
180
|
+
recordType?: string;
|
|
181
|
+
sourceRef: string;
|
|
182
|
+
destinationRef: string;
|
|
183
|
+
replaced: boolean;
|
|
174
184
|
};
|
|
175
185
|
|
|
176
186
|
interface RecordsAdminI18n {
|
|
@@ -232,6 +242,22 @@ interface RecordsAdminI18n {
|
|
|
232
242
|
*/
|
|
233
243
|
railEmptyTitle: string;
|
|
234
244
|
railEmptyBody: string;
|
|
245
|
+
/** Clipboard / copy-paste affordance. */
|
|
246
|
+
copy: string;
|
|
247
|
+
paste: string;
|
|
248
|
+
pasteFrom: string;
|
|
249
|
+
pasteReplace: string;
|
|
250
|
+
clipboardEmpty: string;
|
|
251
|
+
copyToast: string;
|
|
252
|
+
pasteToast: string;
|
|
253
|
+
/** Confirm dialog when pasting onto a destination with an existing saved value. */
|
|
254
|
+
pasteConfirmTitle: string;
|
|
255
|
+
pasteConfirmBody: string;
|
|
256
|
+
pasteConfirmReplace: string;
|
|
257
|
+
pasteConfirmCancel: string;
|
|
258
|
+
/** Cross-scope warning copy (e.g. variant → product). */
|
|
259
|
+
pasteWarnTitle: string;
|
|
260
|
+
pasteWarnContinue: string;
|
|
235
261
|
}
|
|
236
262
|
declare const DEFAULT_I18N: RecordsAdminI18n;
|
|
237
263
|
|
|
@@ -281,6 +307,17 @@ declare function mergeIcons(override?: Partial<RecordsAdminIcons>): RecordsAdmin
|
|
|
281
307
|
* explicit `headerIcon` > `icons.header.byRecordType[type]` > `icons.header.default`. */
|
|
282
308
|
declare function pickHeaderIcon(icons: RecordsAdminIcons, recordType?: string): LucideIcon;
|
|
283
309
|
|
|
310
|
+
/**
|
|
311
|
+
* Footer / banner action keys whose label and icon can be customised by
|
|
312
|
+
* the host. `save`, `discard`, `delete` are wired today. `saveAll` /
|
|
313
|
+
* `revertAll` are reserved for future "all dirty" affordances; passing
|
|
314
|
+
* them now is harmless and forward-compatible.
|
|
315
|
+
*/
|
|
316
|
+
type RecordsAdminActionKey = 'save' | 'discard' | 'delete' | 'saveAll' | 'revertAll';
|
|
317
|
+
/** Lightweight icon contract — matches Lucide's component signature. */
|
|
318
|
+
type RecordsAdminActionIcon = ComponentType<{
|
|
319
|
+
className?: string;
|
|
320
|
+
}>;
|
|
284
321
|
/** Minimal SDK shape consumed by the shell. */
|
|
285
322
|
type SmartLinksSDK = any;
|
|
286
323
|
/** Slot context passed to renderCard / renderListRow. */
|
|
@@ -288,6 +325,28 @@ interface RecordSlotContext {
|
|
|
288
325
|
selected: boolean;
|
|
289
326
|
onSelect: () => void;
|
|
290
327
|
isDirty?: boolean;
|
|
328
|
+
/**
|
|
329
|
+
* When the host enables `enableClipboard`, the row context menu uses this
|
|
330
|
+
* callback to copy the row's resolved value into the shell-managed
|
|
331
|
+
* clipboard. Wired by the shell — apps don't need to implement it.
|
|
332
|
+
*/
|
|
333
|
+
onCopy?: () => void;
|
|
334
|
+
/**
|
|
335
|
+
* Paste the current clipboard entry onto this row. Disabled when there is
|
|
336
|
+
* nothing to paste, when the source ref equals this row, or when the
|
|
337
|
+
* cross-scope rules deny it.
|
|
338
|
+
*/
|
|
339
|
+
onPaste?: () => void;
|
|
340
|
+
/**
|
|
341
|
+
* Whether `onPaste` will succeed without a confirm. Lets the row menu
|
|
342
|
+
* label the action accurately (e.g. "Paste (replace)" when destination
|
|
343
|
+
* already has a saved value).
|
|
344
|
+
*/
|
|
345
|
+
pasteWillReplace?: boolean;
|
|
346
|
+
/** True when the clipboard is non-empty — drives Paste menu visibility. */
|
|
347
|
+
canPaste?: boolean;
|
|
348
|
+
/** Friendly label for "Paste from {sourceLabel}" in row menus. */
|
|
349
|
+
clipboardSourceLabel?: string;
|
|
291
350
|
}
|
|
292
351
|
interface RecordsAdminShellProps<TData = unknown> {
|
|
293
352
|
SL: SmartLinksSDK;
|
|
@@ -339,6 +398,12 @@ interface RecordsAdminShellProps<TData = unknown> {
|
|
|
339
398
|
* Default false.
|
|
340
399
|
*/
|
|
341
400
|
previewScopePicker?: boolean;
|
|
401
|
+
/**
|
|
402
|
+
* Editor tab strip behaviour. See {@link RecordsAdminEditorTabsMode}.
|
|
403
|
+
* Default `'off'` — the redundant single-tab strip is hidden when the
|
|
404
|
+
* product has no variants/batches.
|
|
405
|
+
*/
|
|
406
|
+
editorTabs?: RecordsAdminEditorTabsMode;
|
|
342
407
|
/**
|
|
343
408
|
* How to handle unsaved edits when the user navigates to a different
|
|
344
409
|
* record/scope/tab.
|
|
@@ -459,7 +524,68 @@ interface RecordsAdminShellProps<TData = unknown> {
|
|
|
459
524
|
i18n?: Partial<RecordsAdminI18n>;
|
|
460
525
|
onTelemetry?: (event: TelemetryEvent) => void;
|
|
461
526
|
className?: string;
|
|
527
|
+
/**
|
|
528
|
+
* Override the resting label for footer / banner actions. When a key is
|
|
529
|
+
* omitted the shell falls back to the i18n default ("Save", "Discard",
|
|
530
|
+
* "Delete"). Loading / disabled states (e.g. "Saving…") remain owned by
|
|
531
|
+
* the shell — only the resting label is customisable here.
|
|
532
|
+
*
|
|
533
|
+
* Hosts that need translated labels should pass already-translated
|
|
534
|
+
* strings; the shell stays locale-agnostic.
|
|
535
|
+
*/
|
|
536
|
+
actionLabels?: Partial<Record<RecordsAdminActionKey, string>>;
|
|
537
|
+
/**
|
|
538
|
+
* Optional icon component rendered before each action label (sized
|
|
539
|
+
* `h-4 w-4`). Omit a key to preserve current look — the editor footer
|
|
540
|
+
* renders Save/Discard without icons by default. Delete retains its
|
|
541
|
+
* built-in `Trash2` unless overridden here.
|
|
542
|
+
*/
|
|
543
|
+
actionIcons?: Partial<Record<RecordsAdminActionKey, RecordsAdminActionIcon>>;
|
|
544
|
+
/**
|
|
545
|
+
* Enable in-shell Copy / Paste between scopes for the current `recordType`.
|
|
546
|
+
* Default `true`. The clipboard is scoped per `(appId, recordType)` and
|
|
547
|
+
* persists in `sessionStorage` so it survives host route changes.
|
|
548
|
+
*/
|
|
549
|
+
enableClipboard?: boolean;
|
|
550
|
+
/**
|
|
551
|
+
* Optional transform on Copy. Receives the resolved value at the source
|
|
552
|
+
* scope and returns what should be stored in the clipboard. Use this to
|
|
553
|
+
* strip per-scope-only fields (e.g. country of origin) that shouldn't
|
|
554
|
+
* propagate. Defaults to a deep clone of the resolved value.
|
|
555
|
+
*/
|
|
556
|
+
onCopy?: (source: {
|
|
557
|
+
value: TData;
|
|
558
|
+
scope: ParsedRef;
|
|
559
|
+
}) => TData;
|
|
560
|
+
/**
|
|
561
|
+
* Optional transform on Paste. Receives the clipboard payload and the
|
|
562
|
+
* destination scope/current value. Return the value to apply, or `null`
|
|
563
|
+
* to abort the paste. Defaults to replacing the destination's value with
|
|
564
|
+
* the clipboard's.
|
|
565
|
+
*/
|
|
566
|
+
onPaste?: (clipboard: {
|
|
567
|
+
value: TData;
|
|
568
|
+
sourceScope: ParsedRef;
|
|
569
|
+
}, destination: {
|
|
570
|
+
scope: ParsedRef;
|
|
571
|
+
currentValue: TData | null;
|
|
572
|
+
}) => TData | null;
|
|
462
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Controls the small tab strip that appears above the editor body inside the
|
|
576
|
+
* product drill-down.
|
|
577
|
+
*
|
|
578
|
+
* - `'off'` *(default)* — single-tab strip is hidden when the current product
|
|
579
|
+
* has no variants and no batches (the editor header below already names the
|
|
580
|
+
* record, so the strip is redundant). The strip still renders whenever
|
|
581
|
+
* variants or batches exist — at that point it's a real navigational
|
|
582
|
+
* choice between the product, its variants, and its batches.
|
|
583
|
+
* - `'multi'` — *reserved for a future release.* Will allow multiple records
|
|
584
|
+
* to be open at once with per-tab close buttons and a Save-all banner.
|
|
585
|
+
* Today this value behaves like `'off'` and emits a one-time console
|
|
586
|
+
* warning so consumers can opt in early without breaking when it ships.
|
|
587
|
+
*/
|
|
588
|
+
type RecordsAdminEditorTabsMode = 'off' | 'multi';
|
|
463
589
|
|
|
464
590
|
declare function RecordsAdminShell<TData = unknown>(props: RecordsAdminShellProps<TData>): react_jsx_runtime.JSX.Element;
|
|
465
591
|
|
|
@@ -546,12 +672,24 @@ interface Props$6 {
|
|
|
546
672
|
label: string;
|
|
547
673
|
icon?: ReactNode;
|
|
548
674
|
} | null;
|
|
675
|
+
/**
|
|
676
|
+
* Optional clipboard wiring per row. When provided the shell's Copy /
|
|
677
|
+
* Paste affordance appears in each row's context menu. Returning `null`
|
|
678
|
+
* for a row hides the menu for that row.
|
|
679
|
+
*/
|
|
680
|
+
rowClipboard?: (record: RecordSummary) => {
|
|
681
|
+
onCopy?: () => void;
|
|
682
|
+
onPaste?: () => void;
|
|
683
|
+
canPaste?: boolean;
|
|
684
|
+
pasteWillReplace?: boolean;
|
|
685
|
+
clipboardSourceLabel?: string;
|
|
686
|
+
} | null;
|
|
549
687
|
}
|
|
550
|
-
declare const RecordList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
551
|
-
declare const ProductList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
552
|
-
declare const FacetList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
553
|
-
declare const VariantList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
554
|
-
declare const BatchList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
688
|
+
declare const RecordList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, rowClipboard, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
689
|
+
declare const ProductList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, rowClipboard, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
690
|
+
declare const FacetList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, rowClipboard, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
691
|
+
declare const VariantList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, rowClipboard, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
692
|
+
declare const BatchList: ({ items, selectedRef, onSelect, dirtyRef, presentation, renderListRow, renderCard, groupBy, rowClipboard, }: Props$6) => react_jsx_runtime.JSX.Element;
|
|
555
693
|
|
|
556
694
|
interface DefaultRecordRowProps {
|
|
557
695
|
record: RecordSummary;
|
|
@@ -628,8 +766,25 @@ interface Props$4<T> {
|
|
|
628
766
|
* without it competing with the friendly name as a subtitle.
|
|
629
767
|
*/
|
|
630
768
|
headerMeta?: string;
|
|
769
|
+
/**
|
|
770
|
+
* Clipboard footer actions. The shell wires these when `enableClipboard`
|
|
771
|
+
* is on. Copy is always offered when there's an editing scope; Paste is
|
|
772
|
+
* disabled when the clipboard is empty or the cross-scope rules deny it.
|
|
773
|
+
*/
|
|
774
|
+
clipboard?: {
|
|
775
|
+
onCopy: () => void;
|
|
776
|
+
onPaste: () => void;
|
|
777
|
+
canCopy: boolean;
|
|
778
|
+
canPaste: boolean;
|
|
779
|
+
pasteSourceLabel?: string;
|
|
780
|
+
pasteWillReplace?: boolean;
|
|
781
|
+
};
|
|
782
|
+
/** Host-provided labels for save / discard / delete (resting state only). */
|
|
783
|
+
actionLabels?: Partial<Record<RecordsAdminActionKey, string>>;
|
|
784
|
+
/** Host-provided icons rendered before save / discard / delete labels. */
|
|
785
|
+
actionIcons?: Partial<Record<RecordsAdminActionKey, RecordsAdminActionIcon>>;
|
|
631
786
|
}
|
|
632
|
-
declare function RecordEditor<T>({ ctx, i18n, children, preview, bulkActions, footerExtra, onBeforeDelete, headerLabel, headerSubtitle, headerMeta, }: Props$4<T>): react_jsx_runtime.JSX.Element;
|
|
787
|
+
declare function RecordEditor<T>({ ctx, i18n, children, preview, bulkActions, footerExtra, onBeforeDelete, headerLabel, headerSubtitle, headerMeta, clipboard, actionLabels, actionIcons, }: Props$4<T>): react_jsx_runtime.JSX.Element;
|
|
633
788
|
|
|
634
789
|
interface InheritanceCtx {
|
|
635
790
|
parentValue?: Record<string, unknown> | null;
|
|
@@ -697,8 +852,16 @@ interface Props$2 {
|
|
|
697
852
|
batchesLoading: boolean;
|
|
698
853
|
/** Editor body rendered to the right of the picker. */
|
|
699
854
|
children: ReactNode;
|
|
855
|
+
/**
|
|
856
|
+
* When true, the drill-down tab strip is hidden even when only the
|
|
857
|
+
* `product` tab would render (i.e. no variants / batches). The editor
|
|
858
|
+
* header below already names the record so the single-tab strip is
|
|
859
|
+
* redundant. The strip still appears whenever variants or batches are
|
|
860
|
+
* available — at that point it's a real navigational choice.
|
|
861
|
+
*/
|
|
862
|
+
hideSingleTab?: boolean;
|
|
700
863
|
}
|
|
701
|
-
declare const ProductDrillDown: ({ productLabel, showVariants, showBatches, active, onChange, selectedChildId, onSelectChild, variants, batches, variantsLoading, batchesLoading, children, }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
864
|
+
declare const ProductDrillDown: ({ productLabel, showVariants, showBatches, active, onChange, selectedChildId, onSelectChild, variants, batches, variantsLoading, batchesLoading, children, hideSingleTab, }: Props$2) => react_jsx_runtime.JSX.Element;
|
|
702
865
|
|
|
703
866
|
type PreviewMode = 'inline' | 'side' | 'tab' | 'drawer';
|
|
704
867
|
interface CommonProps {
|
|
@@ -1272,6 +1435,40 @@ declare function usePresentationPref(args: {
|
|
|
1272
1435
|
defaultValue: RecordPresentation;
|
|
1273
1436
|
}): [RecordPresentation, (next: RecordPresentation) => void];
|
|
1274
1437
|
|
|
1438
|
+
interface ClipboardEntry<T = unknown> {
|
|
1439
|
+
value: T;
|
|
1440
|
+
sourceScope: ScopeKind | 'collection';
|
|
1441
|
+
sourceRef: string;
|
|
1442
|
+
/** Friendly label captured at copy time so paste targets can show
|
|
1443
|
+
* "Paste from {sourceLabel}" without re-fetching the source. */
|
|
1444
|
+
sourceLabel?: string;
|
|
1445
|
+
/** ISO timestamp — debug/telemetry only. */
|
|
1446
|
+
copiedAt: string;
|
|
1447
|
+
}
|
|
1448
|
+
interface UseRecordClipboardArgs {
|
|
1449
|
+
/** Required — clipboard is scoped per app to prevent cross-app paste. */
|
|
1450
|
+
appId: string;
|
|
1451
|
+
/** Required — also scoped per record type within the app. */
|
|
1452
|
+
recordType: string;
|
|
1453
|
+
}
|
|
1454
|
+
interface UseRecordClipboardReturn<T = unknown> {
|
|
1455
|
+
entry: ClipboardEntry<T> | null;
|
|
1456
|
+
hasEntry: boolean;
|
|
1457
|
+
set: (entry: Omit<ClipboardEntry<T>, 'copiedAt'>) => void;
|
|
1458
|
+
clear: () => void;
|
|
1459
|
+
}
|
|
1460
|
+
declare function useRecordClipboard<T = unknown>(args: UseRecordClipboardArgs): UseRecordClipboardReturn<T>;
|
|
1461
|
+
type PasteCompatibility = 'allowed' | 'warn' | 'denied';
|
|
1462
|
+
interface PasteCompatibilityResult {
|
|
1463
|
+
status: PasteCompatibility;
|
|
1464
|
+
/** Optional short reason — surfaced as a tooltip on the Paste button. */
|
|
1465
|
+
reason?: string;
|
|
1466
|
+
}
|
|
1467
|
+
/** Sane defaults — host can override entirely via `onPaste` returning null. */
|
|
1468
|
+
declare function checkPasteCompatibility(source: ParsedRef, destination: ParsedRef): PasteCompatibilityResult;
|
|
1469
|
+
/** Deep clone — uses `structuredClone` when available, JSON fallback otherwise. */
|
|
1470
|
+
declare function cloneValue<T>(value: T): T;
|
|
1471
|
+
|
|
1275
1472
|
interface DeleteButtonProps {
|
|
1276
1473
|
/** Performs the delete. Should resolve when the SDK call completes. */
|
|
1277
1474
|
onConfirm: () => void | Promise<void>;
|
|
@@ -1287,8 +1484,16 @@ interface DeleteButtonProps {
|
|
|
1287
1484
|
/** Auto-revert timeout in ms (default 3000). */
|
|
1288
1485
|
revertMs?: number;
|
|
1289
1486
|
disabled?: boolean;
|
|
1487
|
+
/**
|
|
1488
|
+
* Optional icon override for the resting state. Defaults to Lucide
|
|
1489
|
+
* `Trash2`. The confirm-state icon stays `Trash2` so the destructive
|
|
1490
|
+
* intent reads consistently regardless of the host's branding.
|
|
1491
|
+
*/
|
|
1492
|
+
icon?: ComponentType<{
|
|
1493
|
+
className?: string;
|
|
1494
|
+
}>;
|
|
1290
1495
|
}
|
|
1291
|
-
declare const DeleteButton: ({ onConfirm, onBeforeDelete, label, confirmLabel, revertMs, disabled, }: DeleteButtonProps) => react_jsx_runtime.JSX.Element;
|
|
1496
|
+
declare const DeleteButton: ({ onConfirm, onBeforeDelete, label, confirmLabel, revertMs, disabled, icon, }: DeleteButtonProps) => react_jsx_runtime.JSX.Element;
|
|
1292
1497
|
|
|
1293
1498
|
declare const parseRef: (raw: string) => ParsedRef;
|
|
1294
1499
|
interface BuildRefArgs {
|
|
@@ -1345,4 +1550,4 @@ declare const exportCsv: <T>(records: RecordSummary<T>[], schema: CsvSchema<T>)
|
|
|
1345
1550
|
declare const importCsv: <T>(file: File, schema: CsvSchema<T>, ctx: RecordsCtx) => Promise<ImportReport>;
|
|
1346
1551
|
declare const downloadBlob: (blob: Blob, filename: string) => void;
|
|
1347
1552
|
|
|
1348
|
-
export { ALL_PRESENTATIONS, BatchList, BulkActionsMenu, type CollectedRecord, type CollectedSort, type CsvSchema, type CsvSchemaColumn, DEFAULT_I18N, DEFAULT_ICONS, DefaultRecordCard, DefaultRecordRow, DeleteButton, type DirtyStrategy, DrawerPreview, type EditorContext, EmptyState, ErrorState, FacetList, InheritanceMarker, InheritanceProvider, InlinePreview, IntroCard, LoadingState, type MergeStrategy, type MergedRecord, type NavConfirmI18n, type ParsedRef, PresentationSwitcher, type PreviewMode, PreviewScopePicker, PreviewToggleButton, type ProductBrowseItem, type ProductChildItem, ProductDrillDown, ProductList, type RecordBadge, RecordBrowser, type RecordCardinality, RecordEditor, RecordList, type RecordPresentation, type RecordSlotContext, type RecordSource, type RecordStatus, type RecordSummary, type RecordsAdminI18n, type RecordsAdminIcons, RecordsAdminShell, type RecordsAdminShellProps, ResolvedPreview, type ResolvedRecord, ScopeBreadcrumb, type ScopeKind, ScopeTabs, SidePreview, type SmartLinksSDK, StatusDot, StatusFilterPills, TabbedPreview, type TelemetryEvent, type UseResolveAllRecordsArgs, type UseResolveAllResult, type UseRulePreviewArgs, type UseRulePreviewResult, UtilityRow, VariantList, buildRef, bulkDelete, bulkUpsert, deleteRecord, downloadBlob, exportCsv, getRecordByRef, importCsv, listRecords, matchRecords, mergeIcons, parseRef, parsedRefToScope, parsedRefToTarget, pickHeaderIcon, resolutionChain, resolveRecord, restoreRecord, scopesEqual, upsertRecord, useCollectedRecords, useDirtyNavigation, useFacetBrowse, useIntroDismissed, useMergedRecord, usePresentationPref, useProductBrowse, useProductChildren, useRecordEditor, useRecordList, useResolveAllRecords, useResolvedRecord, useRulePreview, useScopeProbe, useUnsavedGuard };
|
|
1553
|
+
export { ALL_PRESENTATIONS, BatchList, BulkActionsMenu, type ClipboardEntry, type CollectedRecord, type CollectedSort, type CsvSchema, type CsvSchemaColumn, DEFAULT_I18N, DEFAULT_ICONS, DefaultRecordCard, DefaultRecordRow, DeleteButton, type DirtyStrategy, DrawerPreview, type EditorContext, EmptyState, ErrorState, FacetList, InheritanceMarker, InheritanceProvider, InlinePreview, IntroCard, LoadingState, type MergeStrategy, type MergedRecord, type NavConfirmI18n, type ParsedRef, type PasteCompatibility, type PasteCompatibilityResult, PresentationSwitcher, type PreviewMode, PreviewScopePicker, PreviewToggleButton, type ProductBrowseItem, type ProductChildItem, ProductDrillDown, ProductList, type RecordBadge, RecordBrowser, type RecordCardinality, RecordEditor, RecordList, type RecordPresentation, type RecordSlotContext, type RecordSource, type RecordStatus, type RecordSummary, type RecordsAdminI18n, type RecordsAdminIcons, RecordsAdminShell, type RecordsAdminShellProps, ResolvedPreview, type ResolvedRecord, ScopeBreadcrumb, type ScopeKind, ScopeTabs, SidePreview, type SmartLinksSDK, StatusDot, StatusFilterPills, TabbedPreview, type TelemetryEvent, type UseRecordClipboardArgs, type UseRecordClipboardReturn, type UseResolveAllRecordsArgs, type UseResolveAllResult, type UseRulePreviewArgs, type UseRulePreviewResult, UtilityRow, VariantList, buildRef, bulkDelete, bulkUpsert, checkPasteCompatibility, cloneValue, deleteRecord, downloadBlob, exportCsv, getRecordByRef, importCsv, listRecords, matchRecords, mergeIcons, parseRef, parsedRefToScope, parsedRefToTarget, pickHeaderIcon, resolutionChain, resolveRecord, restoreRecord, scopesEqual, upsertRecord, useCollectedRecords, useDirtyNavigation, useFacetBrowse, useIntroDismissed, useMergedRecord, usePresentationPref, useProductBrowse, useProductChildren, useRecordClipboard, useRecordEditor, useRecordList, useResolveAllRecords, useResolvedRecord, useRulePreview, useScopeProbe, useUnsavedGuard };
|