diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fa7eea..2818a7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Release Notes +## [5.0.0](#) +- Nova 5 only (`laravel/nova: ^5.0`) +- Icons use Nova 5 `` API and Heroicons v2 names (`arrow-path`, `magnifying-glass`, `command-line`) +- Tool CSS no longer ships Tailwind preflight (it restyled the whole Nova UI) +- `dark:` styles follow Nova's theme switch (`.dark` class) instead of the OS setting +- Removed unused Inertia dev dependencies + ## [4.4.0](#) - Added `Stepanenko3\NovaCommandRunner\Traits\RunsArtisan` - Update `run_by` assignment to use the `getArtisanRunByName` method diff --git a/composer.json b/composer.json index dcc0576..6123d49 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "license": "MIT", "require": { "php": ">=7.4", - "laravel/nova": "^5.0 || ^4.0", + "laravel/nova": "^5.0", "stepanenko3/laravel-helpers": "^1.3.2" }, "autoload": { diff --git a/dist/css/tool.css b/dist/css/tool.css index 9201594..9805239 100644 --- a/dist/css/tool.css +++ b/dist/css/tool.css @@ -1 +1 @@ -/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:oklch(63.7% .237 25.331);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.z-\[60\]{z-index:60}.m-auto{margin:auto}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.max-h-full{max-height:100%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-full{width:100%}.max-w-full{max-width:100%}.min-w-80{min-width:calc(var(--spacing) * 80)}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.flex-col{flex-direction:column}.content-start{align-content:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500\/75{background-color:#6a7282bf}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/75{background-color:color-mix(in oklab,var(--color-gray-500) 75%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-8{padding-block:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.\!text-gray-900{color:var(--color-gray-900)!important}.\!text-green-500{color:var(--color-green-500)!important}.\!text-red-500{color:var(--color-red-500)!important}.\!text-yellow-500{color:var(--color-yellow-500)!important}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-green-500{color:var(--color-green-500)}.text-red-500{color:var(--color-red-500)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:bg-gray-50:is(:where(.group):hover *){background-color:var(--color-gray-50)}.hover\:opacity-75:hover{opacity:.75}}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:48rem){.md\:col-span-3{grid-column:span 3/span 3}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:w-1\/2{width:50%}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}:where(.md\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}}@media (prefers-color-scheme:dark){.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-gray-800{border-color:var(--color-gray-800)}.dark\:border-gray-900{border-color:var(--color-gray-900)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-gray-900\/75{background-color:#101828bf}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-900\/75{background-color:color-mix(in oklab,var(--color-gray-900) 75%,transparent)}}.dark\:\!text-gray-300{color:var(--color-gray-300)!important}.dark\:text-gray-500{color:var(--color-gray-500)}@media (hover:hover){.dark\:group-hover\:bg-gray-900:is(:where(.group):hover *){background-color:var(--color-gray-900)}}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000} +/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--color-red-500:oklch(63.7% .237 25.331);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-500:oklch(72.3% .219 149.579);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.z-\[60\]{z-index:60}.m-auto{margin:auto}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.\!h-\[50px\]{height:50px!important}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.max-h-full{max-height:100%}.\!w-\[50px\]{width:50px!important}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-full{width:100%}.max-w-full{max-width:100%}.min-w-80{min-width:calc(var(--spacing) * 80)}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.flex-col{flex-direction:column}.content-start{align-content:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500\/75{background-color:#6a7282bf}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/75{background-color:color-mix(in oklab,var(--color-gray-500) 75%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-red-500{background-color:var(--color-red-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-8{padding-block:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.\!text-gray-900{color:var(--color-gray-900)!important}.\!text-green-500{color:var(--color-green-500)!important}.\!text-red-500{color:var(--color-red-500)!important}.\!text-yellow-500{color:var(--color-yellow-500)!important}.text-gray-300{color:var(--color-gray-300)}.text-gray-500{color:var(--color-gray-500)}.text-green-500{color:var(--color-green-500)}.text-red-500{color:var(--color-red-500)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:bg-gray-50:is(:where(.group):hover *){background-color:var(--color-gray-50)}.hover\:opacity-75:hover{opacity:.75}}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:48rem){.md\:col-span-3{grid-column:span 3/span 3}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:w-1\/2{width:50%}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}:where(.md\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)))}}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\:border-gray-900:where(.dark,.dark *){border-color:var(--color-gray-900)}.dark\:bg-gray-700:where(.dark,.dark *){background-color:var(--color-gray-700)}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-gray-900\/75:where(.dark,.dark *){background-color:#101828bf}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-900\/75:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-gray-900) 75%,transparent)}}.dark\:\!text-gray-300:where(.dark,.dark *){color:var(--color-gray-300)!important}.dark\:text-gray-500:where(.dark,.dark *){color:var(--color-gray-500)}@media (hover:hover){.dark\:group-hover\:bg-gray-900:where(.dark,.dark *):is(:where(.group):hover *){background-color:var(--color-gray-900)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000} diff --git a/dist/js/tool.js b/dist/js/tool.js index 576f4b8..9ee7a0e 100644 --- a/dist/js/tool.js +++ b/dist/js/tool.js @@ -1 +1 @@ -(function(e,f){typeof exports=="object"&&typeof module<"u"?f(require("vue")):typeof define=="function"&&define.amd?define(["vue"],f):(e=typeof globalThis<"u"?globalThis:e||self,f(e.Vue))})(this,function(e){"use strict";const f={key:0,class:"absolute inset-0 bg-gray-500/75 dark:bg-gray-900/75 rounded-lg"},b={__name:"Button",props:{theme:String,loading:Boolean},setup(l){return(r,n)=>{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":l.theme==="danger","bg-yellow-500":l.theme==="warning","bg-blue-500":l.theme==="info","bg-green-500":l.theme==="success","bg-gray-200 !text-gray-900 dark:bg-gray-700 dark:!text-gray-300":l.theme==="gray","pointer-events-none":l.loading}])},[e.renderSlot(r.$slots,"default"),l.loading?(e.openBlock(),e.createElementBlock("div",f)):e.createCommentVNode("",!0),l.loading?(e.openBlock(),e.createBlock(d,{key:1,class:"absolute inset-0 m-auto text-white",width:"32"})):e.createCommentVNode("",!0)],2)}}},D=(l,r)=>{const n=l.__vccOpts||l;for(const[d,g]of r)n[d]=g;return n},T={props:{type:{type:String,required:!1},loading:{type:Boolean,default:!1},processing:{type:Boolean,default:!1}}},M={type:"button",class:"inline-flex relative items-center justify-center w-8 h-8 focus:outline-none focus:ring rounded-lg"},L={key:0,class:"absolute",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)"}};function j(l,r,n,d,g,m){const x=e.resolveComponent("Icon"),N=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("button",M,[e.createElementVNode("span",{class:e.normalizeClass({invisible:n.processing||n.loading})},[e.renderSlot(l.$slots,"default"),n.type?(e.openBlock(),e.createBlock(x,{key:0,solid:"",type:n.type},null,8,["type"])):e.createCommentVNode("",!0)],2),n.processing||n.loading?(e.openBlock(),e.createElementBlock("span",L,[e.createVNode(N,{class:"text-gray-500",width:"32"})])):e.createCommentVNode("",!0)])}const _=D(T,[["render",j]]),O={class:"nova-command-runner"},$={class:"text-lg font-semibold mb-6"},F={key:0,class:"flex flex-col md:flex-row mb-3 md:space-x-3 space-y-2 md:space-y-0"},R=["value"],U={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 grid md:grid-cols-12 gap-6 p-6"},H={class:"text-sm font-semibold"},q={class:"flex flex-col md:flex-row md:items-center justify-between mt-6 mb-6"},z={class:"font-bold"},I={class:"md:ml-2 inline-flex items-center shadow rounded-lg bg-white dark:bg-gray-800 px-2 h-8"},A={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 p-2 overflow-y-hidden overflow-x-auto"},P={key:0,class:"w-full"},X={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:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},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={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"},oe=["innerHTML"],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={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"},ne={key:1,class:"flex flex-col justify-center items-center px-6 py-8"},le={class:"text-base font-normal mt-3"},se={key:1,class:"fixed inset-0 z-[60] bg-gray-500/75 dark:bg-gray-900/75 flex items-center justify-center p-3"},ce={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"},ie={class:"text-lg font-bold mb-5"},de={class:"grid gap-6"},pe={key:0},ge={class:"mb-2 block leading-tight w-full text-sm font-semibold"},me=["onUpdate:modelValue"],ye=["type","onUpdate:modelValue","placeholder"],he={key:1},fe=["onUpdate:modelValue"],ke={class:"flex items-center space-x-3 mt-5"},be={__name:"Tool",setup(l){const r=s=>window.Nova&&window.Nova.config&&window.Nova.config("translations")&&window.Nova.config("translations")[s]?window.Nova.config("translations")[s]:s,n=e.ref(!1),d=e.ref(!1),g=e.ref(!1),m=e.ref(!1),x=e.ref(""),N=e.ref(),y=e.ref(),h=e.ref(),w=e.ref(),C=e.ref(),xe=e.ref(),S=e.ref(),u=e.ref(),k=e.ref(),a=e.ref();e.onMounted(async()=>{await E(),we()});async function E(){if(n.value)return;n.value=!0;const s=await fetch("/nova-vendor/stepanenko3/nova-command-runner");if(s.ok){const o=await s.clone().json();x.value=o.heading,y.value=o.history,C.value=o.commands,xe.value=o.help,S.value=o.polling_time,w.value=[],o.commands.forEach(p=>{let t=p.group;w.value.indexOf(t)<0&&w.value.push(t)}),h.value=o.custom_commands,h.value&&Object.keys(h.value).indexOf(k.value)===-1&&(k.value=Object.keys(h.value)[0])}n.value=!1}function we(){N.value=setInterval(()=>{!n.value&&(d.value||y.value.filter(s=>s.status==="pending").length>0)&&E()},S.value)}function ue(){V({label:r("Clear Command Run History"),type:"primary",help:r("Are you sure you want to clear the command run history?"),command_type:"artisan",command:"cache:forget nova-command-runner-history",variables:[],flags:[]})}function V(s){a.value=s,m.value=!0}function B(){m.value=!1,a.value={}}function _e(){let s=!0;a.value.variables&&Object.keys(a.value.variables).forEach(o=>{(a.value.variables[o].value==null||a.value.variables[o].value.length===0)&&(s=!1,Nova.error(a.value.variables[o].label+" is required"))}),s&&(g.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:a.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),g.value=!1,y.value=p.history,B()}else Nova.error(`${o.status}: ${o.statusText||"Something went wrong"}`),g.value=!1,B()}).catch(o=>{g.value=!1}))}function Ne(){if(!u.value){Nova.error("Please enter a command");return}V({label:r("Custom Command"),type:"primary",help:r("Are you sure you want to run this command?"),command_type:k.value,command:u.value,variables:[],flags:[]})}return(s,o)=>{const p=e.resolveComponent("Icon");return e.openBlock(),e.createElementBlock("div",O,[e.createElementVNode("div",$,e.toDisplayString(x.value),1),Array.isArray(h.value)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",F,[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(h.value,(t,c)=>(e.openBlock(),e.createElementBlock("option",{key:c,value:c},e.toDisplayString(t),9,R))),128))],512),[[e.vModelSelect,k.value]]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":o[1]||(o[1]=t=>u.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,u.value]]),e.createVNode(b,{onClick:Ne},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r("Run")),1)]),_:1})])),e.createElementVNode("div",U,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(t,c)=>(e.openBlock(),e.createElementBlock("div",{class:"md:col-span-3 grid gap-3 content-start",key:c},[e.createElementVNode("div",H,e.toDisplayString(t||r("Unnamed group")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,(i,Ee)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[i.group==t?(e.openBlock(),e.createBlock(b,{key:0,loading:!m.value&&g.value,theme:i.type,onClick:Ve=>V(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:2},1032,["loading","theme","onClick"])):e.createCommentVNode("",!0)],64))),256))]))),128))]),e.createElementVNode("div",q,[e.createElementVNode("div",z,e.toDisplayString(r("History")),1),e.createElementVNode("div",I,[e.createVNode(_,{onClick:e.withModifiers(E,["prevent"]),loading:n.value,type:"refresh",title:r("Refresh")},null,8,["loading","title"]),e.createVNode(_,{onClick:o[2]||(o[2]=e.withModifiers(t=>d.value=!d.value,["prevent"])),class:e.normalizeClass([{"text-green-500":d.value,"text-gray-500":!d.value},"w-8 h-8"]),type:"clock",title:r("Polling")},null,8,["class","title"]),e.createVNode(_,{onClick:e.withModifiers(ue,["prevent"]),type:"trash",class:"text-red-500",title:r("Clear history")},null,8,["title"])])]),e.createElementVNode("div",A,[y.value&&Object.keys(y.value).length>0?(e.openBlock(),e.createElementBlock("table",P,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",X,e.toDisplayString(r("Command")),1),e.createElementVNode("th",J,e.toDisplayString(r("Type")),1),e.createElementVNode("th",K,e.toDisplayString(r("Run By")),1),e.createElementVNode("th",W,e.toDisplayString(r("Status")),1),e.createElementVNode("th",G,e.toDisplayString(r("Result")),1),e.createElementVNode("th",Q,e.toDisplayString(r("Duration")),1),e.createElementVNode("th",Y,e.toDisplayString(r("Happened")),1)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(t,c)=>(e.openBlock(),e.createElementBlock("tr",{key:c},[e.createElementVNode("td",Z,e.toDisplayString(t.run),1),e.createElementVNode("td",v,e.toDisplayString(t.type),1),e.createElementVNode("td",ee,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",te,[e.createElementVNode("pre",{innerHTML:t.result},null,8,oe)]),e.createElementVNode("td",re,e.toDisplayString(t.duration?t.duration+" sec.":""),1),e.createElementVNode("td",ae,e.toDisplayString(t.time),1)]))),128))])])):(e.openBlock(),e.createElementBlock("div",ne,[e.createVNode(p,{type:"search",class:"mb-3 text-gray-300 dark:text-gray-500",width:"50",height:"50"}),e.createElementVNode("h3",le,e.toDisplayString(r("No Logs.")),1)]))]),m.value?(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",{class:"absolute inset-0",onClick:o[3]||(o[3]=e.withModifiers(()=>m.value=!1,["prevent"]))}),e.createElementVNode("div",ce,[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(()=>m.value=!1,["prevent"]))}," ✕ "),e.createElementVNode("div",ie,e.toDisplayString(a.value.label),1),e.createElementVNode("div",de,[a.value.help?(e.openBlock(),e.createElementBlock("p",pe,e.toDisplayString(a.value.help),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value.variables,(t,c)=>(e.openBlock(),e.createElementBlock("div",{key:c},[e.createElementVNode("label",ge,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":i=>t.value=i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,i=>(e.openBlock(),e.createElementBlock("option",null,e.toDisplayString(i),1))),256))],8,me)),[[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":i=>t.value=i,placeholder:t.placeholder},null,8,ye)),[[e.vModelDynamic,t.value]])]))),128)),a.value.flags.length?(e.openBlock(),e.createElementBlock("div",he,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value.flags,(t,c)=>(e.openBlock(),e.createElementBlock("label",{key:"flag-"+c,class:"flex items-center cursor-pointer"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":i=>a.value.flags[c].selected=i,"true-value":1,"false-value":0,class:"opacity-0 absolute pointer-events-none"},null,8,fe),[[e.vModelCheckbox,a.value.flags[c].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":a.value.flags[c].selected}])}," ✓ ",2),e.createElementVNode("span",null,e.toDisplayString(t.label),1)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ke,[e.createVNode(b,{theme:"gray",onClick:e.withModifiers(B,["prevent"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r("Cancel")),1)]),_:1}),e.createVNode(b,{loading:g.value,onClick:o[5]||(o[5]=t=>_e()),theme:a.value.type},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.label),1)]),_:1},8,["loading","theme"])])])])):e.createCommentVNode("",!0)])}}};Nova.booting(()=>{Nova.inertia("NovaCommandRunner",be)})}); +(function(e,m){typeof exports=="object"&&typeof module<"u"?m(require("vue"),require("laravel-nova-ui")):typeof define=="function"&&define.amd?define(["vue","laravel-nova-ui"],m):(e=typeof globalThis<"u"?globalThis:e||self,m(e.Vue,e.LaravelNovaUi))})(this,function(e,m){"use strict";const S={key:0,class:"absolute inset-0 bg-gray-500/75 dark:bg-gray-900/75 rounded-lg"},k={__name:"Button",props:{theme:String,loading:Boolean},setup(s){return(r,n)=>{const d=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["shadow relative h-10 px-4 rounded-lg text-white flex items-center text-center cursor-pointer hover:opacity-75 transition",{"bg-primary-500":!["danger","warning","info","success","gray"].includes(s.theme),"bg-red-500":s.theme==="danger","bg-yellow-500":s.theme==="warning","bg-blue-500":s.theme==="info","bg-green-500":s.theme==="success","bg-gray-200 !text-gray-900 dark:bg-gray-700 dark:!text-gray-300":s.theme==="gray","pointer-events-none":s.loading}])},[e.renderSlot(r.$slots,"default"),s.loading?(e.openBlock(),e.createElementBlock("div",S)):e.createCommentVNode("",!0),s.loading?(e.openBlock(),e.createBlock(d,{key:1,class:"absolute inset-0 m-auto text-white",width:"32"})):e.createCommentVNode("",!0)],2)}}},D=(s,r)=>{const n=s.__vccOpts||s;for(const[d,g]of r)n[d]=g;return n},T={components:{Icon:m.Icon},props:{icon:{type:String,required:!1},loading:{type:Boolean,default:!1},processing:{type:Boolean,default:!1}}},M={type:"button",class:"inline-flex relative items-center justify-center w-8 h-8 focus:outline-none focus:ring rounded-lg"},L={key:0,class:"absolute",style:{top:"50%",left:"50%",transform:"translate(-50%, -50%)"}};function j(s,r,n,d,g,p){const b=e.resolveComponent("Icon"),_=e.resolveComponent("Loader");return e.openBlock(),e.createElementBlock("button",M,[e.createElementVNode("span",{class:e.normalizeClass({invisible:n.processing||n.loading})},[e.renderSlot(s.$slots,"default"),n.icon?(e.openBlock(),e.createBlock(b,{key:0,name:n.icon,type:"solid"},null,8,["name"])):e.createCommentVNode("",!0)],2),n.processing||n.loading?(e.openBlock(),e.createElementBlock("span",L,[e.createVNode(_,{class:"text-gray-500",width:"32"})])):e.createCommentVNode("",!0)])}const u=D(T,[["render",j]]),O={class:"nova-command-runner"},$={class:"text-lg font-semibold mb-6"},F={key:0,class:"flex flex-col md:flex-row mb-3 md:space-x-3 space-y-2 md:space-y-0"},R=["value"],U={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 grid md:grid-cols-12 gap-6 p-6"},q={class:"text-sm font-semibold"},H={class:"flex flex-col md:flex-row md:items-center justify-between mt-6 mb-6"},I={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"},A={class:"bg-white dark:bg-gray-800 rounded-lg shadow mb-3 p-2 overflow-y-hidden overflow-x-auto"},P={key:0,class:"w-full"},X={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:"text-center px-2 whitespace-nowrap uppercase text-gray-500 text-xxs tracking-wide py-2"},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={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"},oe=["innerHTML"],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={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"},ne={key:1,class:"flex flex-col justify-center items-center px-6 py-8"},le={class:"text-base font-normal mt-3"},se={key:1,class:"fixed inset-0 z-[60] bg-gray-500/75 dark:bg-gray-900/75 flex items-center justify-center p-3"},ce={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"},ie={class:"text-lg font-bold mb-5"},de={class:"grid gap-6"},ge={key:0},pe={class:"mb-2 block leading-tight w-full text-sm font-semibold"},me=["onUpdate:modelValue"],ye=["type","onUpdate:modelValue","placeholder"],he={key:1},fe=["onUpdate:modelValue"],ke={class:"flex items-center space-x-3 mt-5"},be={__name:"Tool",setup(s){const r=c=>window.Nova&&window.Nova.config&&window.Nova.config("translations")&&window.Nova.config("translations")[c]?window.Nova.config("translations")[c]:c,n=e.ref(!1),d=e.ref(!1),g=e.ref(!1),p=e.ref(!1),b=e.ref(""),_=e.ref(),y=e.ref(),h=e.ref(),x=e.ref(),B=e.ref(),xe=e.ref(),C=e.ref(),w=e.ref(),f=e.ref(),a=e.ref();e.onMounted(async()=>{await N(),we()});async function N(){if(n.value)return;n.value=!0;const c=await fetch("/nova-vendor/stepanenko3/nova-command-runner");if(c.ok){const o=await c.clone().json();b.value=o.heading,y.value=o.history,B.value=o.commands,xe.value=o.help,C.value=o.polling_time,x.value=[],o.commands.forEach(t=>{let l=t.group;x.value.indexOf(l)<0&&x.value.push(l)}),h.value=o.custom_commands,h.value&&Object.keys(h.value).indexOf(f.value)===-1&&(f.value=Object.keys(h.value)[0])}n.value=!1}function we(){_.value=setInterval(()=>{!n.value&&(d.value||y.value.filter(c=>c.status==="pending").length>0)&&N()},C.value)}function ue(){E({label:r("Clear Command Run History"),type:"primary",help:r("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(c){a.value=c,p.value=!0}function V(){p.value=!1,a.value={}}function _e(){let c=!0;a.value.variables&&Object.keys(a.value.variables).forEach(o=>{(a.value.variables[o].value==null||a.value.variables[o].value.length===0)&&(c=!1,Nova.error(a.value.variables[o].label+" is required"))}),c&&(g.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:a.value})}).then(async o=>{if(o.ok){const t=await o.json();t.status&&(t.status==="success"||t.status==="pending")?Nova.success(t.result):Nova.error(t.result),g.value=!1,y.value=t.history,V()}else Nova.error(`${o.status}: ${o.statusText||"Something went wrong"}`),g.value=!1,V()}).catch(o=>{g.value=!1}))}function Ne(){if(!w.value){Nova.error("Please enter a command");return}E({label:r("Custom Command"),type:"primary",help:r("Are you sure you want to run this command?"),command_type:f.value,command:w.value,variables:[],flags:[]})}return(c,o)=>(e.openBlock(),e.createElementBlock("div",O,[e.createElementVNode("div",$,e.toDisplayString(b.value),1),Array.isArray(h.value)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",F,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[0]||(o[0]=t=>f.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(h.value,(t,l)=>(e.openBlock(),e.createElementBlock("option",{key:l,value:l},e.toDisplayString(t),9,R))),128))],512),[[e.vModelSelect,f.value]]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":o[1]||(o[1]=t=>w.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,w.value]]),e.createVNode(k,{onClick:Ne},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r("Run")),1)]),_:1})])),e.createElementVNode("div",U,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:"md:col-span-3 grid gap-3 content-start",key:l},[e.createElementVNode("div",q,e.toDisplayString(t||r("Unnamed group")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,(i,Ee)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[i.group==t?(e.openBlock(),e.createBlock(k,{key:0,loading:!p.value&&g.value,theme:i.type,onClick:Ve=>E(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:2},1032,["loading","theme","onClick"])):e.createCommentVNode("",!0)],64))),256))]))),128))]),e.createElementVNode("div",H,[e.createElementVNode("div",I,e.toDisplayString(r("History")),1),e.createElementVNode("div",z,[e.createVNode(u,{onClick:e.withModifiers(N,["prevent"]),loading:n.value,icon:"arrow-path",title:r("Refresh")},null,8,["loading","title"]),e.createVNode(u,{onClick:o[2]||(o[2]=e.withModifiers(t=>d.value=!d.value,["prevent"])),class:e.normalizeClass([{"text-green-500":d.value,"text-gray-500":!d.value},"w-8 h-8"]),icon:"clock",title:r("Polling")},null,8,["class","title"]),e.createVNode(u,{onClick:e.withModifiers(ue,["prevent"]),icon:"trash",class:"text-red-500",title:r("Clear history")},null,8,["title"])])]),e.createElementVNode("div",A,[y.value&&Object.keys(y.value).length>0?(e.openBlock(),e.createElementBlock("table",P,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",X,e.toDisplayString(r("Command")),1),e.createElementVNode("th",J,e.toDisplayString(r("Type")),1),e.createElementVNode("th",K,e.toDisplayString(r("Run By")),1),e.createElementVNode("th",W,e.toDisplayString(r("Status")),1),e.createElementVNode("th",G,e.toDisplayString(r("Result")),1),e.createElementVNode("th",Q,e.toDisplayString(r("Duration")),1),e.createElementVNode("th",Y,e.toDisplayString(r("Happened")),1)])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(t,l)=>(e.openBlock(),e.createElementBlock("tr",{key:l},[e.createElementVNode("td",Z,e.toDisplayString(t.run),1),e.createElementVNode("td",v,e.toDisplayString(t.type),1),e.createElementVNode("td",ee,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",te,[e.createElementVNode("pre",{innerHTML:t.result},null,8,oe)]),e.createElementVNode("td",re,e.toDisplayString(t.duration?t.duration+" sec.":""),1),e.createElementVNode("td",ae,e.toDisplayString(t.time),1)]))),128))])])):(e.openBlock(),e.createElementBlock("div",ne,[e.createVNode(e.unref(m.Icon),{name:"magnifying-glass",class:"mb-3 text-gray-300 dark:text-gray-500 !w-[50px] !h-[50px]"}),e.createElementVNode("h3",le,e.toDisplayString(r("No Logs.")),1)]))]),p.value?(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",{class:"absolute inset-0",onClick:o[3]||(o[3]=e.withModifiers(()=>p.value=!1,["prevent"]))}),e.createElementVNode("div",ce,[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(()=>p.value=!1,["prevent"]))}," ✕ "),e.createElementVNode("div",ie,e.toDisplayString(a.value.label),1),e.createElementVNode("div",de,[a.value.help?(e.openBlock(),e.createElementBlock("p",ge,e.toDisplayString(a.value.help),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.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":i=>t.value=i},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,i=>(e.openBlock(),e.createElementBlock("option",null,e.toDisplayString(i),1))),256))],8,me)),[[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":i=>t.value=i,placeholder:t.placeholder},null,8,ye)),[[e.vModelDynamic,t.value]])]))),128)),a.value.flags.length?(e.openBlock(),e.createElementBlock("div",he,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.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":i=>a.value.flags[l].selected=i,"true-value":1,"false-value":0,class:"opacity-0 absolute pointer-events-none"},null,8,fe),[[e.vModelCheckbox,a.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":a.value.flags[l].selected}])}," ✓ ",2),e.createElementVNode("span",null,e.toDisplayString(t.label),1)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ke,[e.createVNode(k,{theme:"gray",onClick:e.withModifiers(V,["prevent"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r("Cancel")),1)]),_:1}),e.createVNode(k,{loading:g.value,onClick:o[5]||(o[5]=t=>_e()),theme:a.value.type},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value.label),1)]),_:1},8,["loading","theme"])])])])):e.createCommentVNode("",!0)]))}};Nova.booting(()=>{Nova.inertia("NovaCommandRunner",be)})}); diff --git a/package-lock.json b/package-lock.json index e7d893f..7fc871a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,6 @@ "tailwindcss": "^4.0.14" }, "devDependencies": { - "@inertiajs/inertia": "^0.11.1", - "@inertiajs/inertia-vue3": "^0.6.0", "@tailwindcss/vite": "^4.2.1", "@vitejs/plugin-vue": "^5.2.1", "@vue/compiler-sfc": "^3.5.13", @@ -490,31 +488,6 @@ "node": ">=18" } }, - "node_modules/@inertiajs/inertia": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@inertiajs/inertia/-/inertia-0.11.1.tgz", - "integrity": "sha512-btmV53c54oW4Z9XF0YyTdIUnM7ue0ONy3/KJOz6J1C5CYIwimiKfDMpz8ZbGJuxS+SPdOlNsqj2ZhlHslpJRZg==", - "dev": true, - "dependencies": { - "axios": "^0.21.1", - "deepmerge": "^4.0.0", - "qs": "^6.9.0" - } - }, - "node_modules/@inertiajs/inertia-vue3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@inertiajs/inertia-vue3/-/inertia-vue3-0.6.0.tgz", - "integrity": "sha512-qhPBtd/G0VS7vVVbYw1rrqKB6JqRusxqt+5ec2GLmK6t7fTlBBnZ3KsakmGZLSM1m1OGkNcfn4ifmCk3zfA8RQ==", - "dev": true, - "dependencies": { - "lodash.clonedeep": "^4.5.0", - "lodash.isequal": "^4.5.0" - }, - "peerDependencies": { - "@inertiajs/inertia": "^0.11.0", - "vue": "^3.0.0" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1305,15 +1278,6 @@ "postcss": "^8.1.0" } }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, "node_modules/browserslist": { "version": "4.24.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", @@ -1345,25 +1309,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001689", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz", @@ -1390,32 +1335,6 @@ "dev": true, "peer": true }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -1457,27 +1376,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/esbuild": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", @@ -1533,26 +1431,6 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -1579,46 +1457,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1626,54 +1464,6 @@ "dev": true, "license": "ISC" }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -1945,18 +1735,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -1998,15 +1776,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -2045,21 +1814,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/rollup": { "version": "4.34.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.4.tgz", @@ -2099,41 +1853,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", diff --git a/package.json b/package.json index a676701..70afafc 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,6 @@ "nova:install": "npm --prefix='vendor/laravel/nova' ci" }, "devDependencies": { - "@inertiajs/inertia": "^0.11.1", - "@inertiajs/inertia-vue3": "^0.6.0", "@tailwindcss/vite": "^4.2.1", "@vitejs/plugin-vue": "^5.2.1", "@vue/compiler-sfc": "^3.5.13", diff --git a/resources/css/tool.css b/resources/css/tool.css index f1d8c73..e2c48bd 100644 --- a/resources/css/tool.css +++ b/resources/css/tool.css @@ -1 +1,7 @@ -@import "tailwindcss"; +/* No preflight: Nova ships its own base styles, a second reset would restyle all of Nova. */ +@layer theme, base, components, utilities; +@import "tailwindcss/theme.css" layer(theme); +@import "tailwindcss/utilities.css" layer(utilities); + +/* Nova toggles dark mode with a .dark class, not the OS media query. */ +@custom-variant dark (&:where(.dark, .dark *)); diff --git a/resources/js/components/Button.vue b/resources/js/components/Button.vue index 0f54a0c..38821f9 100644 --- a/resources/js/components/Button.vue +++ b/resources/js/components/Button.vue @@ -1,7 +1,8 @@