diff --git a/dist/css/tool.css b/dist/css/tool.css index b7398e6..3173c86 100644 --- a/dist/css/tool.css +++ b/dist/css/tool.css @@ -1 +1 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.nova-command-runner :is(.pointer-events-none){pointer-events:none}.nova-command-runner :is(.invisible){visibility:hidden}.nova-command-runner :is(.fixed){position:fixed}.nova-command-runner :is(.absolute){position:absolute}.nova-command-runner :is(.relative){position:relative}.nova-command-runner :is(.inset-0){inset:0}.nova-command-runner :is(.right-0){right:0}.nova-command-runner :is(.top-0){top:0}.nova-command-runner :is(.z-\[60\]){z-index:60}.nova-command-runner :is(.m-auto){margin:auto}.nova-command-runner :is(.mb-2){margin-bottom:.5rem}.nova-command-runner :is(.mb-3){margin-bottom:.75rem}.nova-command-runner :is(.mb-5){margin-bottom:1.25rem}.nova-command-runner :is(.mb-6){margin-bottom:1.5rem}.nova-command-runner :is(.mr-2){margin-right:.5rem}.nova-command-runner :is(.mt-3){margin-top:.75rem}.nova-command-runner :is(.mt-5){margin-top:1.25rem}.nova-command-runner :is(.mt-6){margin-top:1.5rem}.nova-command-runner :is(.block){display:block}.nova-command-runner :is(.flex){display:flex}.nova-command-runner :is(.inline-flex){display:inline-flex}.nova-command-runner :is(.table){display:table}.nova-command-runner :is(.grid){display:grid}.nova-command-runner :is(.h-10){height:2.5rem}.nova-command-runner :is(.h-6){height:1.5rem}.nova-command-runner :is(.h-8){height:2rem}.nova-command-runner :is(.max-h-full){max-height:100%}.nova-command-runner :is(.w-5){width:1.25rem}.nova-command-runner :is(.w-6){width:1.5rem}.nova-command-runner :is(.w-8){width:2rem}.nova-command-runner :is(.w-full){width:100%}.nova-command-runner :is(.min-w-80){min-width:20rem}.nova-command-runner :is(.max-w-full){max-width:100%}.nova-command-runner :is(.flex-shrink-0){flex-shrink:0}.nova-command-runner :is(.flex-grow){flex-grow:1}.nova-command-runner :is(.transform){transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nova-command-runner :is(.cursor-pointer){cursor:pointer}.nova-command-runner :is(.appearance-none){-webkit-appearance:none;-moz-appearance:none;appearance:none}.nova-command-runner :is(.flex-col){flex-direction:column}.nova-command-runner :is(.content-start){align-content:flex-start}.nova-command-runner :is(.items-center){align-items:center}.nova-command-runner :is(.justify-center){justify-content:center}.nova-command-runner :is(.justify-between){justify-content:space-between}.nova-command-runner :is(.gap-3){gap:.75rem}.nova-command-runner :is(.gap-6){gap:1.5rem}.nova-command-runner :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.nova-command-runner :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.nova-command-runner :is(.overflow-x-auto){overflow-x:auto}.nova-command-runner :is(.overflow-y-auto){overflow-y:auto}.nova-command-runner :is(.overflow-y-hidden){overflow-y:hidden}.nova-command-runner :is(.whitespace-nowrap){white-space:nowrap}.nova-command-runner :is(.rounded-lg){border-radius:.5rem}.nova-command-runner :is(.border){border-width:1px}.nova-command-runner :is(.border-t){border-top-width:1px}.nova-command-runner :is(.border-gray-100){--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.nova-command-runner :is(.border-gray-300){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.nova-command-runner :is(.bg-blue-500){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-gray-200){--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-gray-500\/75){background-color:#6b7280bf}.nova-command-runner :is(.bg-green-500){--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-red-500){--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-white){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-yellow-500){--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity))}.nova-command-runner :is(.p-2){padding:.5rem}.nova-command-runner :is(.p-3){padding:.75rem}.nova-command-runner :is(.p-6){padding:1.5rem}.nova-command-runner :is(.px-2){padding-left:.5rem;padding-right:.5rem}.nova-command-runner :is(.px-3){padding-left:.75rem;padding-right:.75rem}.nova-command-runner :is(.px-4){padding-left:1rem;padding-right:1rem}.nova-command-runner :is(.px-6){padding-left:1.5rem;padding-right:1.5rem}.nova-command-runner :is(.py-2){padding-top:.5rem;padding-bottom:.5rem}.nova-command-runner :is(.py-8){padding-top:2rem;padding-bottom:2rem}.nova-command-runner :is(.text-center){text-align:center}.nova-command-runner :is(.text-base){font-size:1rem;line-height:1.5rem}.nova-command-runner :is(.text-lg){font-size:1.125rem;line-height:1.75rem}.nova-command-runner :is(.text-sm){font-size:.875rem;line-height:1.25rem}.nova-command-runner :is(.font-bold){font-weight:700}.nova-command-runner :is(.font-normal){font-weight:400}.nova-command-runner :is(.font-semibold){font-weight:600}.nova-command-runner :is(.uppercase){text-transform:uppercase}.nova-command-runner :is(.leading-tight){line-height:1.25}.nova-command-runner :is(.tracking-wide){letter-spacing:.025em}.nova-command-runner :is(.\!text-gray-900){--tw-text-opacity: 1 !important;color:rgb(17 24 39 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-green-500){--tw-text-opacity: 1 !important;color:rgb(34 197 94 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-red-500){--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-yellow-500){--tw-text-opacity: 1 !important;color:rgb(234 179 8 / var(--tw-text-opacity))!important}.nova-command-runner :is(.text-gray-300){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.nova-command-runner :is(.text-gray-500){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.nova-command-runner :is(.text-gray-900){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.nova-command-runner :is(.text-green-500){--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.nova-command-runner :is(.text-red-500){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.nova-command-runner :is(.text-transparent){color:transparent}.nova-command-runner :is(.text-white){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.nova-command-runner :is(.opacity-0){opacity:0}.nova-command-runner :is(.shadow){--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.nova-command-runner :is(.filter){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)}.nova-command-runner :is(.transition){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.nova-command-runner :is(.hover\:opacity-75:hover){opacity:.75}.nova-command-runner :is(.focus\:outline-none:focus){outline:2px solid transparent;outline-offset:2px}.nova-command-runner :is(.focus\:ring:focus){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.nova-command-runner :is(.group:hover .group-hover\:bg-gray-50){--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:border-gray-700){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.nova-command-runner :is(.dark .dark\:border-gray-800){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.nova-command-runner :is(.dark .dark\:border-gray-900){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-700){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-800){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-900){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-900\/75){background-color:#111827bf}.nova-command-runner :is(.dark .dark\:text-gray-300){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.nova-command-runner :is(.dark .dark\:text-gray-500){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.nova-command-runner :is(.dark .group:hover .dark\:group-hover\:bg-gray-900){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}@media (min-width: 768px){.nova-command-runner :is(.md\:col-span-3){grid-column:span 3 / span 3}.nova-command-runner :is(.md\:ml-2){margin-left:.5rem}.nova-command-runner :is(.md\:w-1\/2){width:50%}.nova-command-runner :is(.md\:grid-cols-12){grid-template-columns:repeat(12,minmax(0,1fr))}.nova-command-runner :is(.md\:flex-row){flex-direction:row}.nova-command-runner :is(.md\:items-center){align-items:center}.nova-command-runner :is(.md\:space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.nova-command-runner :is(.md\:space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}} +.nova-command-runner :is(.pointer-events-none){pointer-events:none}.nova-command-runner :is(.invisible){visibility:hidden}.nova-command-runner :is(.fixed){position:fixed}.nova-command-runner :is(.absolute){position:absolute}.nova-command-runner :is(.relative){position:relative}.nova-command-runner :is(.inset-0){inset:0}.nova-command-runner :is(.right-0){right:0}.nova-command-runner :is(.top-0){top:0}.nova-command-runner :is(.z-\[60\]){z-index:60}.nova-command-runner :is(.m-auto){margin:auto}.nova-command-runner :is(.mb-2){margin-bottom:.5rem}.nova-command-runner :is(.mb-3){margin-bottom:.75rem}.nova-command-runner :is(.mb-5){margin-bottom:1.25rem}.nova-command-runner :is(.mb-6){margin-bottom:1.5rem}.nova-command-runner :is(.mr-2){margin-right:.5rem}.nova-command-runner :is(.mt-3){margin-top:.75rem}.nova-command-runner :is(.mt-5){margin-top:1.25rem}.nova-command-runner :is(.mt-6){margin-top:1.5rem}.nova-command-runner :is(.block){display:block}.nova-command-runner :is(.flex){display:flex}.nova-command-runner :is(.inline-flex){display:inline-flex}.nova-command-runner :is(.table){display:table}.nova-command-runner :is(.grid){display:grid}.nova-command-runner :is(.h-10){height:2.5rem}.nova-command-runner :is(.h-6){height:1.5rem}.nova-command-runner :is(.h-8){height:2rem}.nova-command-runner :is(.max-h-full){max-height:100%}.nova-command-runner :is(.w-5){width:1.25rem}.nova-command-runner :is(.w-6){width:1.5rem}.nova-command-runner :is(.w-8){width:2rem}.nova-command-runner :is(.w-full){width:100%}.nova-command-runner :is(.min-w-80){min-width:20rem}.nova-command-runner :is(.max-w-full){max-width:100%}.nova-command-runner :is(.flex-shrink-0){flex-shrink:0}.nova-command-runner :is(.flex-grow){flex-grow:1}.nova-command-runner :is(.transform){transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nova-command-runner :is(.cursor-pointer){cursor:pointer}.nova-command-runner :is(.appearance-none){-webkit-appearance:none;-moz-appearance:none;appearance:none}.nova-command-runner :is(.flex-col){flex-direction:column}.nova-command-runner :is(.content-start){align-content:flex-start}.nova-command-runner :is(.items-center){align-items:center}.nova-command-runner :is(.justify-center){justify-content:center}.nova-command-runner :is(.justify-between){justify-content:space-between}.nova-command-runner :is(.gap-3){gap:.75rem}.nova-command-runner :is(.gap-6){gap:1.5rem}.nova-command-runner :is(.space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.nova-command-runner :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.nova-command-runner :is(.overflow-x-auto){overflow-x:auto}.nova-command-runner :is(.overflow-y-auto){overflow-y:auto}.nova-command-runner :is(.overflow-y-hidden){overflow-y:hidden}.nova-command-runner :is(.whitespace-nowrap){white-space:nowrap}.nova-command-runner :is(.rounded-lg){border-radius:.5rem}.nova-command-runner :is(.border){border-width:1px}.nova-command-runner :is(.border-t){border-top-width:1px}.nova-command-runner :is(.border-gray-100){--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.nova-command-runner :is(.border-gray-300){--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.nova-command-runner :is(.bg-blue-500){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-gray-200){--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-gray-500\/75){background-color:#6b7280bf}.nova-command-runner :is(.bg-green-500){--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-red-500){--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-white){--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.nova-command-runner :is(.bg-yellow-500){--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity))}.nova-command-runner :is(.p-2){padding:.5rem}.nova-command-runner :is(.p-3){padding:.75rem}.nova-command-runner :is(.p-6){padding:1.5rem}.nova-command-runner :is(.px-2){padding-left:.5rem;padding-right:.5rem}.nova-command-runner :is(.px-3){padding-left:.75rem;padding-right:.75rem}.nova-command-runner :is(.px-4){padding-left:1rem;padding-right:1rem}.nova-command-runner :is(.px-6){padding-left:1.5rem;padding-right:1.5rem}.nova-command-runner :is(.py-2){padding-top:.5rem;padding-bottom:.5rem}.nova-command-runner :is(.py-8){padding-top:2rem;padding-bottom:2rem}.nova-command-runner :is(.text-center){text-align:center}.nova-command-runner :is(.text-base){font-size:1rem;line-height:1.5rem}.nova-command-runner :is(.text-lg){font-size:1.125rem;line-height:1.75rem}.nova-command-runner :is(.text-sm){font-size:.875rem;line-height:1.25rem}.nova-command-runner :is(.font-bold){font-weight:700}.nova-command-runner :is(.font-normal){font-weight:400}.nova-command-runner :is(.font-semibold){font-weight:600}.nova-command-runner :is(.uppercase){text-transform:uppercase}.nova-command-runner :is(.leading-tight){line-height:1.25}.nova-command-runner :is(.tracking-wide){letter-spacing:.025em}.nova-command-runner :is(.\!text-gray-300){--tw-text-opacity: 1 !important;color:rgb(209 213 219 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-gray-900){--tw-text-opacity: 1 !important;color:rgb(17 24 39 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-green-500){--tw-text-opacity: 1 !important;color:rgb(34 197 94 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-red-500){--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity))!important}.nova-command-runner :is(.\!text-yellow-500){--tw-text-opacity: 1 !important;color:rgb(234 179 8 / var(--tw-text-opacity))!important}.nova-command-runner :is(.text-gray-300){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.nova-command-runner :is(.text-gray-500){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.nova-command-runner :is(.text-green-500){--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.nova-command-runner :is(.text-red-500){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.nova-command-runner :is(.text-transparent){color:transparent}.nova-command-runner :is(.text-white){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.nova-command-runner :is(.opacity-0){opacity:0}.nova-command-runner :is(.shadow){--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.nova-command-runner :is(.filter){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)}.nova-command-runner :is(.transition){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.nova-command-runner :is(.hover\:opacity-75:hover){opacity:.75}.nova-command-runner :is(.focus\:outline-none:focus){outline:2px solid transparent;outline-offset:2px}.nova-command-runner :is(.focus\:ring:focus){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.nova-command-runner :is(.group:hover .group-hover\:bg-gray-50){--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:border-gray-700){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.nova-command-runner :is(.dark .dark\:border-gray-800){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.nova-command-runner :is(.dark .dark\:border-gray-900){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-700){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-800){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-900){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.nova-command-runner :is(.dark .dark\:bg-gray-900\/75){background-color:#111827bf}.nova-command-runner :is(.dark .dark\:\!text-gray-300){--tw-text-opacity: 1 !important;color:rgb(209 213 219 / var(--tw-text-opacity))!important}.nova-command-runner :is(.dark .dark\:text-gray-500){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.nova-command-runner :is(.dark .group:hover .dark\:group-hover\:bg-gray-900){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}@media (min-width: 768px){.nova-command-runner :is(.md\:col-span-3){grid-column:span 3 / span 3}.nova-command-runner :is(.md\:ml-2){margin-left:.5rem}.nova-command-runner :is(.md\:w-1\/2){width:50%}.nova-command-runner :is(.md\:grid-cols-12){grid-template-columns:repeat(12,minmax(0,1fr))}.nova-command-runner :is(.md\:flex-row){flex-direction:row}.nova-command-runner :is(.md\:items-center){align-items:center}.nova-command-runner :is(.md\:space-x-3>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.nova-command-runner :is(.md\:space-y-0>:not([hidden])~:not([hidden])){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}} diff --git a/dist/js/tool.js b/dist/js/tool.js index 373d389..0a337e5 100644 --- a/dist/js/tool.js +++ b/dist/js/tool.js @@ -1 +1 @@ -(function(e,h){typeof exports=="object"&&typeof module<"u"?h(require("vue")):typeof define=="function"&&define.amd?define(["vue"],h):(e=typeof globalThis<"u"?globalThis:e||self,h(e.Vue))})(this,function(e){"use strict";const h={key:0,class:"absolute inset-0 bg-gray-500/75 dark:bg-gray-900/75 rounded-lg"},f={__name:"Button",props:{type:String,loading:Boolean},setup(n){return(i,a)=>{const d=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["shadow relative h-10 px-4 rounded-lg bg-primary-500 text-white text-white flex items-center text-center cursor-pointer hover:opacity-75 transition",{"bg-red-500":n.type==="danger","bg-yellow-500":n.type==="warning","bg-blue-500":n.type==="info","bg-green-500":n.type==="success","bg-gray-200 text-gray-900 dark:bg-gray-700 dark:text-gray-300":n.type==="gray","pointer-events-none":n.loading}])},[e.renderSlot(i.$slots,"default"),n.loading?(e.openBlock(),e.createElementBlock("div",h)):e.createCommentVNode("",!0),n.loading?(e.openBlock(),e.createBlock(d,{key:1,class:"absolute inset-0 m-auto text-white",width:"32"})):e.createCommentVNode("",!0)],2)}}},S=(n,i)=>{const a=n.__vccOpts||n;for(const[d,g]of i)a[d]=g;return a},D={props:{type:{type:String,required:!1},loading:{type:Boolean,default:!1},processing:{type:Boolean,default:!1}}},T={type:"button",class:"inline-flex relative items-center justify-center w-8 h-8 focus:outline-none focus:ring rounded-lg"},M={key:0,class:"absolute",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)"}};function L(n,i,a,d,g,w){const _=e.resolveComponent("Icon"),m=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("button",T,[e.createElementVNode("span",{class:e.normalizeClass({invisible:a.processing||a.loading})},[e.renderSlot(n.$slots,"default"),a.type?(e.openBlock(),e.createBlock(_,{key:0,solid:"",type:a.type},null,8,["type"])):e.createCommentVNode("",!0)],2),a.processing||a.loading?(e.openBlock(),e.createElementBlock("span",M,[e.createVNode(m,{class:"text-gray-500",width:"32"})])):e.createCommentVNode("",!0)])}const u=S(D,[["render",L]]),j={class:"nova-command-runner"},O={class:"text-lg font-semibold mb-6"},$={key:0,class:"flex flex-col md:flex-row mb-3 md:space-x-3 space-y-2 md:space-y-0"},F=["value"],U={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 grid md:grid-cols-12 gap-6 p-6"},R={class:"text-sm font-semibold"},H={class:"flex flex-col md:flex-row md:items-center justify-between mt-6 mb-6"},q={class:"font-bold"},z={class:"md:ml-2 inline-flex items-center shadow rounded-lg bg-white dark:bg-gray-800 px-2 h-8"},I={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 p-2 overflow-y-hidden overflow-x-auto"},A={key:0,class:"w-full"},X={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},P={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},J={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},K={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},W={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},G={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},Q={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},Y={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},Z={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},v={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},ee={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},te=["innerHTML"],oe={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},re={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},ae={key:1,class:"flex flex-col justify-center items-center px-6 py-8"},ne={class:"text-base font-normal mt-3"},le={key:1,class:"fixed inset-0 z-[60] bg-gray-500/75 dark:bg-gray-900/75 flex items-center justify-center p-3"},se={class:"relative p-6 bg-white dark:bg-gray-800 rounded-lg shadow min-w-80 md:w-1/2 max-w-full max-h-full overflow-y-auto"},ce={class:"text-lg font-bold mb-5"},de={class:"grid gap-6"},ie={key:0},pe={class:"mb-2 block leading-tight w-full text-sm font-semibold"},ge=["onUpdate:modelValue"],me=["type","onUpdate:modelValue","placeholder"],ye={key:1},he=["onUpdate:modelValue"],ke={class:"flex items-center space-x-3 mt-5"},fe={__name:"Tool",setup(n){const i=e.ref(!1),a=e.ref(!1),d=e.ref(!1),g=e.ref(!1),w=e.ref(""),_=e.ref(),m=e.ref(),y=e.ref(),b=e.ref(),B=e.ref(),be=e.ref(),C=e.ref(),x=e.ref(),k=e.ref(),r=e.ref();e.onMounted(async()=>{await N(),xe()});async function N(){if(i.value)return;i.value=!0;const s=await fetch("/nova-vendor/stepanenko3/nova-command-runner");if(s.ok){const o=await s.clone().json();w.value=o.heading,m.value=o.history,B.value=o.commands,be.value=o.help,C.value=o.polling_time,b.value=[],o.commands.forEach(p=>{let t=p.group;b.value.indexOf(t)<0&&b.value.push(t)}),y.value=o.custom_commands,y.value&&Object.keys(y.value).indexOf(k.value)===-1&&(k.value=Object.keys(y.value)[0])}i.value=!1}function xe(){_.value=setInterval(()=>{!i.value&&(a.value||m.value.filter(s=>s.status==="pending").length>0)&&N()},C.value)}function ue(){E({label:"Clear Command Run History",type:"primary",help:"Are you sure you want to clear the command run history?",command_type:"artisan",command:"cache:forget nova-command-runner-history",variables:[],flags:[]})}function E(s){r.value=s,g.value=!0}function V(){g.value=!1,r.value={}}function we(){let s=!0;r.value.variables&&Object.keys(r.value.variables).forEach(o=>{(r.value.variables[o].value==null||r.value.variables[o].value.length===0)&&(s=!1,Nova.error(r.value.variables[o].label+" is required"))}),s&&(d.value=!0,fetch("/nova-vendor/stepanenko3/nova-command-runner/run",{method:"POST",headers:{"X-CSRF-TOKEN":document.head.querySelector('meta[name="csrf-token"]').content,"X-Requested-With":"XMLHttpRequest","Content-Type":"application/json"},body:JSON.stringify({command:r.value})}).then(async o=>{if(o.ok){const p=await o.json();p.status&&(p.status==="success"||p.status==="pending")?Nova.success(p.result):Nova.error(p.result),d.value=!1,m.value=p.history,V()}else Nova.error(`${o.status}: ${o.statusText||"Something went wrong"}`),d.value=!1,V()}).catch(o=>{d.value=!1}))}function _e(){if(!x.value){Nova.error("Please enter a command");return}E({label:"Custom Command",type:"primary",help:"Are you sure you want to run this command?",command_type:k.value,command:x.value,variables:[],flags:[]})}function Ne(s){return s}return(s,o)=>{const p=e.resolveComponent("Icon");return e.openBlock(),e.createElementBlock("div",j,[e.createElementVNode("div",O,e.toDisplayString(w.value),1),Array.isArray(y.value)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",$,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[0]||(o[0]=t=>k.value=t),class:"appearance-none bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-800 h-10 px-3 rounded-lg"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(t,l)=>(e.openBlock(),e.createElementBlock("option",{key:l,value:l},e.toDisplayString(t),9,F))),128))],512),[[e.vModelSelect,k.value]]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":o[1]||(o[1]=t=>x.value=t),class:"appearance-none bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-800 h-10 px-3 rounded-lg flex-grow"},null,512),[[e.vModelText,x.value]]),e.createVNode(f,{onClick:_e},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString("Run"),1)]),_:1})])),e.createElementVNode("div",U,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:"md:col-span-3 grid gap-3 content-start",key:l},[e.createElementVNode("div",R,e.toDisplayString(t||"Unnamed group"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,(c,Ee)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[c.group==t?(e.openBlock(),e.createBlock(f,{key:0,loading:!g.value&&d.value,type:c.type,onClick:Ve=>E(c)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1032,["loading","type","onClick"])):e.createCommentVNode("",!0)],64))),256))]))),128))]),e.createElementVNode("div",H,[e.createElementVNode("div",q,e.toDisplayString("History"),1),e.createElementVNode("div",z,[e.createVNode(u,{onClick:e.withModifiers(N,["prevent"]),loading:i.value,type:"refresh"},null,8,["loading"]),e.createVNode(u,{onClick:o[2]||(o[2]=e.withModifiers(t=>a.value=!a.value,["prevent"])),class:e.normalizeClass([{"text-green-500":a.value,"text-gray-500":!a.value},"w-8 h-8"]),type:"clock"},null,8,["class"]),e.createVNode(u,{onClick:e.withModifiers(ue,["prevent"]),type:"trash",class:"text-red-500"})])]),e.createElementVNode("div",I,[m.value&&Object.keys(m.value).length>0?(e.openBlock(),e.createElementBlock("table",A,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",X,e.toDisplayString("Command"),1),e.createElementVNode("th",P,e.toDisplayString("Type"),1),e.createElementVNode("th",J,e.toDisplayString("Run By"),1),e.createElementVNode("th",K,e.toDisplayString("Status"),1),e.createElementVNode("th",W,e.toDisplayString("Result"),1),e.createElementVNode("th",G,e.toDisplayString("Duration"),1),e.createElementVNode("th",Q,e.toDisplayString("Happened"),1)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(t,l)=>(e.openBlock(),e.createElementBlock("tr",{key:l},[e.createElementVNode("td",Y,e.toDisplayString(t.run),1),e.createElementVNode("td",Z,e.toDisplayString(t.type),1),e.createElementVNode("td",v,e.toDisplayString(t.run_by),1),e.createElementVNode("td",{class:e.normalizeClass(["px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900",{"!text-green-500":t.status==="success","!text-yellow-500":t.status==="pending","!text-red-500":t.status==="error"}])},e.toDisplayString(t.status),3),e.createElementVNode("td",ee,[e.createElementVNode("pre",{innerHTML:t.result},null,8,te)]),e.createElementVNode("td",oe,e.toDisplayString(t.duration?t.duration+" sec.":""),1),e.createElementVNode("td",re,e.toDisplayString(t.time),1)]))),128))])])):(e.openBlock(),e.createElementBlock("div",ae,[e.createVNode(p,{type:"search",class:"mb-3 text-gray-300 dark:text-gray-500",width:"50",height:"50"}),e.createElementVNode("h3",ne,e.toDisplayString("No Logs."),1)]))]),g.value?(e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("div",{class:"absolute inset-0",onClick:o[3]||(o[3]=e.withModifiers(()=>g.value=!1,["prevent"]))}),e.createElementVNode("div",se,[e.createElementVNode("div",{class:"absolute top-0 right-0 w-5 cursor-pointer hover:opacity-75 text-lg",onClick:o[4]||(o[4]=e.withModifiers(()=>g.value=!1,["prevent"]))}," ✕ "),e.createElementVNode("div",ce,e.toDisplayString(r.value.label),1),e.createElementVNode("div",de,[r.value.help?(e.openBlock(),e.createElementBlock("p",ie,e.toDisplayString(r.value.help),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.variables,(t,l)=>(e.openBlock(),e.createElementBlock("div",{key:l},[e.createElementVNode("label",pe,e.toDisplayString(t.label),1),t.field==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,class:"appearance-none bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-900 h-10 px-3 rounded-lg","onUpdate:modelValue":c=>t.value=c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,c=>(e.openBlock(),e.createElementBlock("option",null,e.toDisplayString(c),1))),256))],8,ge)),[[e.vModelSelect,t.value]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,type:t.field,class:"w-full appearance-none bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-900 h-10 px-3 rounded-lg","onUpdate:modelValue":c=>t.value=c,placeholder:t.placeholder},null,8,me)),[[e.vModelDynamic,t.value]])]))),128)),r.value.flags.length?(e.openBlock(),e.createElementBlock("div",ye,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.flags,(t,l)=>(e.openBlock(),e.createElementBlock("label",{key:"flag-"+l,class:"flex items-center cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":c=>r.value.flags[l].selected=c,"true-value":1,"false-value":0,class:"opacity-0 absolute pointer-events-none"},null,8,he),[[e.vModelCheckbox,r.value.flags[l].selected]]),e.createElementVNode("span",{class:e.normalizeClass(["h-6 w-6 block mr-2 flex-shrink-0 rounded-lg bg-white dark:bg-gray-900 text-transparent border border-gray-300 dark:border-gray-900 flex items-center justify-center text-center",{"!text-gray-900":r.value.flags[l].selected}])}," ✓ ",2),e.createElementVNode("span",null,e.toDisplayString(t.label),1)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ke,[e.createVNode(f,{type:"gray",onClick:e.withModifiers(V,["prevent"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString("Cancel"),1)]),_:1}),e.createVNode(f,{loading:d.value,onClick:o[5]||(o[5]=t=>we()),type:r.value.type},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value.label),1)]),_:1},8,["loading","type"])])])])):e.createCommentVNode("",!0)])}}};Nova.booting(()=>{Nova.inertia("NovaCommandRunner",fe)})}); +(function(e,h){typeof exports=="object"&&typeof module<"u"?h(require("vue")):typeof define=="function"&&define.amd?define(["vue"],h):(e=typeof globalThis<"u"?globalThis:e||self,h(e.Vue))})(this,function(e){"use strict";const h={key:0,class:"absolute inset-0 bg-gray-500/75 dark:bg-gray-900/75 rounded-lg"},f={__name:"Button",props:{type:String,loading:Boolean},setup(n){return(i,a)=>{const d=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["shadow relative h-10 px-4 rounded-lg bg-primary-500 text-white text-white flex items-center text-center cursor-pointer hover:opacity-75 transition",{"bg-red-500":n.type==="danger","bg-yellow-500":n.type==="warning","bg-blue-500":n.type==="info","bg-green-500":n.type==="success","bg-gray-200 !text-gray-900 dark:bg-gray-700 dark:!text-gray-300":n.type==="gray","pointer-events-none":n.loading}])},[e.renderSlot(i.$slots,"default"),n.loading?(e.openBlock(),e.createElementBlock("div",h)):e.createCommentVNode("",!0),n.loading?(e.openBlock(),e.createBlock(d,{key:1,class:"absolute inset-0 m-auto text-white",width:"32"})):e.createCommentVNode("",!0)],2)}}},S=(n,i)=>{const a=n.__vccOpts||n;for(const[d,g]of i)a[d]=g;return a},D={props:{type:{type:String,required:!1},loading:{type:Boolean,default:!1},processing:{type:Boolean,default:!1}}},T={type:"button",class:"inline-flex relative items-center justify-center w-8 h-8 focus:outline-none focus:ring rounded-lg"},M={key:0,class:"absolute",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)"}};function L(n,i,a,d,g,w){const _=e.resolveComponent("Icon"),m=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("button",T,[e.createElementVNode("span",{class:e.normalizeClass({invisible:a.processing||a.loading})},[e.renderSlot(n.$slots,"default"),a.type?(e.openBlock(),e.createBlock(_,{key:0,solid:"",type:a.type},null,8,["type"])):e.createCommentVNode("",!0)],2),a.processing||a.loading?(e.openBlock(),e.createElementBlock("span",M,[e.createVNode(m,{class:"text-gray-500",width:"32"})])):e.createCommentVNode("",!0)])}const u=S(D,[["render",L]]),j={class:"nova-command-runner"},O={class:"text-lg font-semibold mb-6"},$={key:0,class:"flex flex-col md:flex-row mb-3 md:space-x-3 space-y-2 md:space-y-0"},F=["value"],U={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 grid md:grid-cols-12 gap-6 p-6"},R={class:"text-sm font-semibold"},H={class:"flex flex-col md:flex-row md:items-center justify-between mt-6 mb-6"},q={class:"font-bold"},z={class:"md:ml-2 inline-flex items-center shadow rounded-lg bg-white dark:bg-gray-800 px-2 h-8"},I={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 p-2 overflow-y-hidden overflow-x-auto"},A={key:0,class:"w-full"},X={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},P={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},J={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},K={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},W={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},G={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},Q={class:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},Y={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},Z={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},v={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},ee={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},te=["innerHTML"],oe={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},re={class:"px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900"},ae={key:1,class:"flex flex-col justify-center items-center px-6 py-8"},ne={class:"text-base font-normal mt-3"},le={key:1,class:"fixed inset-0 z-[60] bg-gray-500/75 dark:bg-gray-900/75 flex items-center justify-center p-3"},se={class:"relative p-6 bg-white dark:bg-gray-800 rounded-lg shadow min-w-80 md:w-1/2 max-w-full max-h-full overflow-y-auto"},ce={class:"text-lg font-bold mb-5"},de={class:"grid gap-6"},ie={key:0},pe={class:"mb-2 block leading-tight w-full text-sm font-semibold"},ge=["onUpdate:modelValue"],me=["type","onUpdate:modelValue","placeholder"],ye={key:1},he=["onUpdate:modelValue"],ke={class:"flex items-center space-x-3 mt-5"},fe={__name:"Tool",setup(n){const i=e.ref(!1),a=e.ref(!1),d=e.ref(!1),g=e.ref(!1),w=e.ref(""),_=e.ref(),m=e.ref(),y=e.ref(),b=e.ref(),B=e.ref(),be=e.ref(),C=e.ref(),x=e.ref(),k=e.ref(),r=e.ref();e.onMounted(async()=>{await N(),xe()});async function N(){if(i.value)return;i.value=!0;const s=await fetch("/nova-vendor/stepanenko3/nova-command-runner");if(s.ok){const o=await s.clone().json();w.value=o.heading,m.value=o.history,B.value=o.commands,be.value=o.help,C.value=o.polling_time,b.value=[],o.commands.forEach(p=>{let t=p.group;b.value.indexOf(t)<0&&b.value.push(t)}),y.value=o.custom_commands,y.value&&Object.keys(y.value).indexOf(k.value)===-1&&(k.value=Object.keys(y.value)[0])}i.value=!1}function xe(){_.value=setInterval(()=>{!i.value&&(a.value||m.value.filter(s=>s.status==="pending").length>0)&&N()},C.value)}function ue(){E({label:"Clear Command Run History",type:"primary",help:"Are you sure you want to clear the command run history?",command_type:"artisan",command:"cache:forget nova-command-runner-history",variables:[],flags:[]})}function E(s){r.value=s,g.value=!0}function V(){g.value=!1,r.value={}}function we(){let s=!0;r.value.variables&&Object.keys(r.value.variables).forEach(o=>{(r.value.variables[o].value==null||r.value.variables[o].value.length===0)&&(s=!1,Nova.error(r.value.variables[o].label+" is required"))}),s&&(d.value=!0,fetch("/nova-vendor/stepanenko3/nova-command-runner/run",{method:"POST",headers:{"X-CSRF-TOKEN":document.head.querySelector('meta[name="csrf-token"]').content,"X-Requested-With":"XMLHttpRequest","Content-Type":"application/json"},body:JSON.stringify({command:r.value})}).then(async o=>{if(o.ok){const p=await o.json();p.status&&(p.status==="success"||p.status==="pending")?Nova.success(p.result):Nova.error(p.result),d.value=!1,m.value=p.history,V()}else Nova.error(`${o.status}: ${o.statusText||"Something went wrong"}`),d.value=!1,V()}).catch(o=>{d.value=!1}))}function _e(){if(!x.value){Nova.error("Please enter a command");return}E({label:"Custom Command",type:"primary",help:"Are you sure you want to run this command?",command_type:k.value,command:x.value,variables:[],flags:[]})}function Ne(s){return s}return(s,o)=>{const p=e.resolveComponent("Icon");return e.openBlock(),e.createElementBlock("div",j,[e.createElementVNode("div",O,e.toDisplayString(w.value),1),Array.isArray(y.value)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",$,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[0]||(o[0]=t=>k.value=t),class:"appearance-none bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-800 h-10 px-3 rounded-lg"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(t,l)=>(e.openBlock(),e.createElementBlock("option",{key:l,value:l},e.toDisplayString(t),9,F))),128))],512),[[e.vModelSelect,k.value]]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":o[1]||(o[1]=t=>x.value=t),class:"appearance-none bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-800 h-10 px-3 rounded-lg flex-grow"},null,512),[[e.vModelText,x.value]]),e.createVNode(f,{onClick:_e},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString("Run"),1)]),_:1})])),e.createElementVNode("div",U,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:"md:col-span-3 grid gap-3 content-start",key:l},[e.createElementVNode("div",R,e.toDisplayString(t||"Unnamed group"),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,(c,Ee)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[c.group==t?(e.openBlock(),e.createBlock(f,{key:0,loading:!g.value&&d.value,type:c.type,onClick:Ve=>E(c)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1032,["loading","type","onClick"])):e.createCommentVNode("",!0)],64))),256))]))),128))]),e.createElementVNode("div",H,[e.createElementVNode("div",q,e.toDisplayString("History"),1),e.createElementVNode("div",z,[e.createVNode(u,{onClick:e.withModifiers(N,["prevent"]),loading:i.value,type:"refresh"},null,8,["loading"]),e.createVNode(u,{onClick:o[2]||(o[2]=e.withModifiers(t=>a.value=!a.value,["prevent"])),class:e.normalizeClass([{"text-green-500":a.value,"text-gray-500":!a.value},"w-8 h-8"]),type:"clock"},null,8,["class"]),e.createVNode(u,{onClick:e.withModifiers(ue,["prevent"]),type:"trash",class:"text-red-500"})])]),e.createElementVNode("div",I,[m.value&&Object.keys(m.value).length>0?(e.openBlock(),e.createElementBlock("table",A,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",X,e.toDisplayString("Command"),1),e.createElementVNode("th",P,e.toDisplayString("Type"),1),e.createElementVNode("th",J,e.toDisplayString("Run By"),1),e.createElementVNode("th",K,e.toDisplayString("Status"),1),e.createElementVNode("th",W,e.toDisplayString("Result"),1),e.createElementVNode("th",G,e.toDisplayString("Duration"),1),e.createElementVNode("th",Q,e.toDisplayString("Happened"),1)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(t,l)=>(e.openBlock(),e.createElementBlock("tr",{key:l},[e.createElementVNode("td",Y,e.toDisplayString(t.run),1),e.createElementVNode("td",Z,e.toDisplayString(t.type),1),e.createElementVNode("td",v,e.toDisplayString(t.run_by),1),e.createElementVNode("td",{class:e.normalizeClass(["px-2 py-2 border-t border-gray-100 dark:border-gray-700 whitespace-nowrap cursor-pointer dark:bg-gray-800 group-hover:bg-gray-50 dark:group-hover:bg-gray-900",{"!text-green-500":t.status==="success","!text-yellow-500":t.status==="pending","!text-red-500":t.status==="error"}])},e.toDisplayString(t.status),3),e.createElementVNode("td",ee,[e.createElementVNode("pre",{innerHTML:t.result},null,8,te)]),e.createElementVNode("td",oe,e.toDisplayString(t.duration?t.duration+" sec.":""),1),e.createElementVNode("td",re,e.toDisplayString(t.time),1)]))),128))])])):(e.openBlock(),e.createElementBlock("div",ae,[e.createVNode(p,{type:"search",class:"mb-3 text-gray-300 dark:text-gray-500",width:"50",height:"50"}),e.createElementVNode("h3",ne,e.toDisplayString("No Logs."),1)]))]),g.value?(e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("div",{class:"absolute inset-0",onClick:o[3]||(o[3]=e.withModifiers(()=>g.value=!1,["prevent"]))}),e.createElementVNode("div",se,[e.createElementVNode("div",{class:"absolute top-0 right-0 w-5 cursor-pointer hover:opacity-75 text-lg",onClick:o[4]||(o[4]=e.withModifiers(()=>g.value=!1,["prevent"]))}," ✕ "),e.createElementVNode("div",ce,e.toDisplayString(r.value.label),1),e.createElementVNode("div",de,[r.value.help?(e.openBlock(),e.createElementBlock("p",ie,e.toDisplayString(r.value.help),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.variables,(t,l)=>(e.openBlock(),e.createElementBlock("div",{key:l},[e.createElementVNode("label",pe,e.toDisplayString(t.label),1),t.field==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,class:"appearance-none bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-900 h-10 px-3 rounded-lg","onUpdate:modelValue":c=>t.value=c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,c=>(e.openBlock(),e.createElementBlock("option",null,e.toDisplayString(c),1))),256))],8,ge)),[[e.vModelSelect,t.value]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,type:t.field,class:"w-full appearance-none bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-900 h-10 px-3 rounded-lg","onUpdate:modelValue":c=>t.value=c,placeholder:t.placeholder},null,8,me)),[[e.vModelDynamic,t.value]])]))),128)),r.value.flags.length?(e.openBlock(),e.createElementBlock("div",ye,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.flags,(t,l)=>(e.openBlock(),e.createElementBlock("label",{key:"flag-"+l,class:"flex items-center cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":c=>r.value.flags[l].selected=c,"true-value":1,"false-value":0,class:"opacity-0 absolute pointer-events-none"},null,8,he),[[e.vModelCheckbox,r.value.flags[l].selected]]),e.createElementVNode("span",{class:e.normalizeClass(["h-6 w-6 block mr-2 flex-shrink-0 rounded-lg bg-white dark:bg-gray-900 text-transparent border border-gray-300 dark:border-gray-900 flex items-center justify-center text-center",{"!text-gray-900":r.value.flags[l].selected}])}," ✓ ",2),e.createElementVNode("span",null,e.toDisplayString(t.label),1)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ke,[e.createVNode(f,{type:"gray",onClick:e.withModifiers(V,["prevent"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString("Cancel"),1)]),_:1}),e.createVNode(f,{loading:d.value,onClick:o[5]||(o[5]=t=>we()),type:r.value.type},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value.label),1)]),_:1},8,["loading","type"])])])])):e.createCommentVNode("",!0)])}}};Nova.booting(()=>{Nova.inertia("NovaCommandRunner",fe)})}); diff --git a/resources/css/tool.css b/resources/css/tool.css index b5c61c9..7c05d4d 100644 --- a/resources/css/tool.css +++ b/resources/css/tool.css @@ -1,3 +1,2 @@ -@tailwind base; @tailwind components; @tailwind utilities; diff --git a/resources/js/components/Button.vue b/resources/js/components/Button.vue index 95ad89e..7074b4e 100644 --- a/resources/js/components/Button.vue +++ b/resources/js/components/Button.vue @@ -6,7 +6,7 @@ 'bg-yellow-500': type === 'warning', 'bg-blue-500': type === 'info', 'bg-green-500': type === 'success', - 'bg-gray-200 text-gray-900 dark:bg-gray-700 dark:text-gray-300': type === 'gray', + 'bg-gray-200 !text-gray-900 dark:bg-gray-700 dark:!text-gray-300': type === 'gray', 'pointer-events-none': loading, }" >