@masterteam/components 0.0.30 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/assets/common.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */
2
- @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-divide-y-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;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@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-50:oklch(97.1% .013 17.38);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--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-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--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-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--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;-webkit-text-decoration: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}:-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{label.required:after{content:"*";color:var(--p-red-500);padding-inline-start:2px}.dark label.required:after{color:var(--p-red-600)}}@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.z-10{z-index:10}.order-1{order:1}.col-span-6{grid-column:span 6/span 6}.m-0{margin:calc(var(--spacing)*0)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.size-full{width:100%;height:100%}.h-full{height:100%}.w-12{width:calc(var(--spacing)*12)}.w-72{width:calc(var(--spacing)*72)}.w-full{width:100%}.min-w-full{min-width:100%}.flex-1{flex:1}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.origin-top-right{transform-origin:100% 0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.border,.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--p-content-border-color\){border-color:var(--p-content-border-color)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-500{border-color:var(--color-gray-500)}.border-primary-400{border-color:var(--p-primary-400)}@supports (color:color-mix(in lab, red, red)){.border-primary-400{border-color:color-mix(in srgb,var(--p-primary-400)calc(100%*1),transparent)}}.border-surface{border-color:var(--p-content-border-color)}.border-surface-200{border-color:var(--p-surface-200)}@supports (color:color-mix(in lab, red, red)){.border-surface-200{border-color:color-mix(in srgb,var(--p-surface-200)calc(100%*1),transparent)}}.border-surface-300{border-color:var(--p-surface-300)}@supports (color:color-mix(in lab, red, red)){.border-surface-300{border-color:color-mix(in srgb,var(--p-surface-300)calc(100%*1),transparent)}}.\!bg-white{background-color:var(--color-white)!important}.bg-content{background-color:var(--p-content-background)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-primary-50{background-color:var(--p-primary-50)}@supports (color:color-mix(in lab, red, red)){.bg-primary-50{background-color:color-mix(in srgb,var(--p-primary-50)calc(100%*1),transparent)}}.bg-surface-50{background-color:var(--p-surface-50)}@supports (color:color-mix(in lab, red, red)){.bg-surface-50{background-color:color-mix(in srgb,var(--p-surface-50)calc(100%*1),transparent)}}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.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-5{padding-inline:calc(var(--spacing)*5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-3{padding-block:calc(var(--spacing)*3)}.py-5{padding-block:calc(var(--spacing)*5)}.text-center{text-align:center}.text-end{text-align:end}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.align-super\!{vertical-align:super!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.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))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[\.95rem\]{font-size:.95rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-blue-600{color:var(--color-blue-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-muted-color{color:var(--p-text-muted-color)}.text-primary-400{color:var(--p-primary-400)}@supports (color:color-mix(in lab, red, red)){.text-primary-400{color:color-mix(in srgb,var(--p-primary-400)calc(100%*1),transparent)}}.text-primary-700{color:var(--p-primary-700)}@supports (color:color-mix(in lab, red, red)){.text-primary-700{color:color-mix(in srgb,var(--p-primary-700)calc(100%*1),transparent)}}.text-purple-600{color:var(--color-purple-600)}.text-red-600{color:var(--color-red-600)}.text-surface-500{color:var(--p-surface-500)}@supports (color:color-mix(in lab, red, red)){.text-surface-500{color:color-mix(in srgb,var(--p-surface-500)calc(100%*1),transparent)}}.text-yellow-600{color:var(--color-yellow-600)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px 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)}.ring-1{--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)}.ring-black{--tw-ring-color:var(--color-black)}.ring-primary-200{--tw-ring-color:var(--p-primary-200)}@supports (color:color-mix(in lab, red, red)){.ring-primary-200{--tw-ring-color:color-mix(in srgb,var(--p-primary-200)calc(100%*1),transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-yellow-50:hover{background-color:var(--color-yellow-50)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-700:hover{color:var(--color-green-700)}.hover\:text-purple-700:hover{color:var(--color-purple-700)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-yellow-700:hover{color:var(--color-yellow-700)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@container (min-width:28rem){.\@md\:col-span-3{grid-column:span 3/span 3}}@container (min-width:42rem){.\@2xl\:col-span-2{grid-column:span 2/span 2}}.dark\:border-surface-500:where(.dark,.dark *){border-color:var(--p-surface-500)}@supports (color:color-mix(in lab, red, red)){.dark\:border-surface-500:where(.dark,.dark *){border-color:color-mix(in srgb,var(--p-surface-500)calc(100%*1),transparent)}}.dark\:bg-primary-800:where(.dark,.dark *){background-color:var(--p-primary-800)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-primary-800:where(.dark,.dark *){background-color:color-mix(in srgb,var(--p-primary-800)calc(100%*1),transparent)}}.dark\:bg-primary-900\/20:where(.dark,.dark *){background-color:var(--p-primary-900)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-primary-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,color-mix(in srgb,var(--p-primary-900)calc(100%*1),transparent)20%,transparent)}}.dark\:bg-surface-950:where(.dark,.dark *){background-color:var(--p-surface-950)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-950:where(.dark,.dark *){background-color:color-mix(in srgb,var(--p-surface-950)calc(100%*1),transparent)}}.dark\:text-gray-50:where(.dark,.dark *){color:var(--color-gray-50)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\:text-primary-300:where(.dark,.dark *){color:var(--p-primary-300)}@supports (color:color-mix(in lab, red, red)){.dark\:text-primary-300:where(.dark,.dark *){color:color-mix(in srgb,var(--p-primary-300)calc(100%*1),transparent)}}@media (hover:hover){.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-surface-950:where(.dark,.dark *):hover{background-color:var(--p-surface-950)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-950:where(.dark,.dark *):hover{background-color:color-mix(in srgb,var(--p-surface-950)calc(100%*1),transparent)}}.dark\:hover\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}}}:root{--app-background:var(--p-surface-100)}:root[class=dark]{--app-background:var(--p-surface-950)}body{background-color:var(--app-background)}.mt-dialog .p-dialog-header{background-color:var(--p-surface-100);border-radius:.75rem .75rem 0 0;padding:1rem 1.25rem}.mt-dialog .p-dialog-header .p-dialog-header-actions .p-dialog-close-button{background-color:#fff;border-radius:.3rem;justify-content:center;width:2rem;height:2rem}.mt-dialog .p-dialog-content{border-radius:.8rem;height:100%;overflow-y:hidden}.mt-dialog .p-dialog-content .mt-dialog-content{height:100%;padding-bottom:5rem;overflow:auto}.mt-dialog .p-dialog-content .mt-dialog-footer{background-color:var(--p-surface-100);justify-content:end;gap:10px;padding:.8rem 1.25rem;display:flex;position:sticky;bottom:0}.custom-drawer .p-drawer-header,.custom-drawer .p-drawer-content,.custom-drawer .p-drawer-footer{padding:0}@keyframes enter{0%{opacity:var(--p-enter-opacity,1);transform:translate3d(var(--p-enter-translate-x,0),var(--p-enter-translate-y,0),0)scale3d(var(--p-enter-scale,1),var(--p-enter-scale,1),var(--p-enter-scale,1))rotate(var(--p-enter-rotate,0))}}@keyframes leave{to{opacity:var(--p-leave-opacity,1);transform:translate3d(var(--p-leave-translate-x,0),var(--p-leave-translate-y,0),0)scale3d(var(--p-leave-scale,1),var(--p-leave-scale,1),var(--p-leave-scale,1))rotate(var(--p-leave-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-divide-y-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:"<percentage>";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:"<percentage>";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:"<length>";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}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-divide-y-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;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@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-50:oklch(97.1% .013 17.38);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-blue-50:oklch(97% .014 254.604);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--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-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--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-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--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;-webkit-text-decoration: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}:-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{label.required:after{content:"*";color:var(--p-red-500);padding-inline-start:2px}.dark label.required:after{color:var(--p-red-600)}}@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.z-10{z-index:10}.order-1{order:1}.col-span-6{grid-column:span 6/span 6}.m-0{margin:calc(var(--spacing)*0)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.size-full{width:100%;height:100%}.h-full{height:100%}.w-12{width:calc(var(--spacing)*12)}.w-72{width:calc(var(--spacing)*72)}.w-full{width:100%}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.flex-1{flex:1}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.origin-top-right{transform-origin:100% 0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.border,.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--p-content-border-color\){border-color:var(--p-content-border-color)}.border-\(--p-inputtext-invalid-border-color\)\!{border-color:var(--p-inputtext-invalid-border-color)!important}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-500{border-color:var(--color-gray-500)}.border-primary-400{border-color:var(--p-primary-400)}@supports (color:color-mix(in lab, red, red)){.border-primary-400{border-color:color-mix(in srgb,var(--p-primary-400)calc(100%*1),transparent)}}.border-surface{border-color:var(--p-content-border-color)}.border-surface-200{border-color:var(--p-surface-200)}@supports (color:color-mix(in lab, red, red)){.border-surface-200{border-color:color-mix(in srgb,var(--p-surface-200)calc(100%*1),transparent)}}.border-surface-300{border-color:var(--p-surface-300)}@supports (color:color-mix(in lab, red, red)){.border-surface-300{border-color:color-mix(in srgb,var(--p-surface-300)calc(100%*1),transparent)}}.\!bg-white{background-color:var(--color-white)!important}.bg-\(--p-inputtext-filled-background\){background-color:var(--p-inputtext-filled-background)}.bg-content{background-color:var(--p-content-background)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-primary-50{background-color:var(--p-primary-50)}@supports (color:color-mix(in lab, red, red)){.bg-primary-50{background-color:color-mix(in srgb,var(--p-primary-50)calc(100%*1),transparent)}}.bg-surface-50{background-color:var(--p-surface-50)}@supports (color:color-mix(in lab, red, red)){.bg-surface-50{background-color:color-mix(in srgb,var(--p-surface-50)calc(100%*1),transparent)}}.bg-white{background-color:var(--color-white)}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.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-5{padding-inline:calc(var(--spacing)*5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-3{padding-block:calc(var(--spacing)*3)}.py-5{padding-block:calc(var(--spacing)*5)}.text-center{text-align:center}.text-end{text-align:end}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.align-super\!{vertical-align:super!important}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.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))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[\.95rem\]{font-size:.95rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-blue-600{color:var(--color-blue-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-muted-color{color:var(--p-text-muted-color)}.text-primary-400{color:var(--p-primary-400)}@supports (color:color-mix(in lab, red, red)){.text-primary-400{color:color-mix(in srgb,var(--p-primary-400)calc(100%*1),transparent)}}.text-primary-700{color:var(--p-primary-700)}@supports (color:color-mix(in lab, red, red)){.text-primary-700{color:color-mix(in srgb,var(--p-primary-700)calc(100%*1),transparent)}}.text-purple-600{color:var(--color-purple-600)}.text-red-600{color:var(--color-red-600)}.text-surface-500{color:var(--p-surface-500)}@supports (color:color-mix(in lab, red, red)){.text-surface-500{color:color-mix(in srgb,var(--p-surface-500)calc(100%*1),transparent)}}.text-yellow-600{color:var(--color-yellow-600)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px 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)}.ring-1{--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)}.ring-black{--tw-ring-color:var(--color-black)}.ring-primary-200{--tw-ring-color:var(--p-primary-200)}@supports (color:color-mix(in lab, red, red)){.ring-primary-200{--tw-ring-color:color-mix(in srgb,var(--p-primary-200)calc(100%*1),transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.hover\:border-\(--p-inputtext-hover-border-color\)\!:hover{border-color:var(--p-inputtext-hover-border-color)!important}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-yellow-50:hover{background-color:var(--color-yellow-50)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-700:hover{color:var(--color-green-700)}.hover\:text-purple-700:hover{color:var(--color-purple-700)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-yellow-700:hover{color:var(--color-yellow-700)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@container (min-width:28rem){.\@md\:col-span-3{grid-column:span 3/span 3}}@container (min-width:42rem){.\@2xl\:col-span-2{grid-column:span 2/span 2}}.dark\:border-surface-500:where(.dark,.dark *){border-color:var(--p-surface-500)}@supports (color:color-mix(in lab, red, red)){.dark\:border-surface-500:where(.dark,.dark *){border-color:color-mix(in srgb,var(--p-surface-500)calc(100%*1),transparent)}}.dark\:bg-primary-800:where(.dark,.dark *){background-color:var(--p-primary-800)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-primary-800:where(.dark,.dark *){background-color:color-mix(in srgb,var(--p-primary-800)calc(100%*1),transparent)}}.dark\:bg-primary-900\/20:where(.dark,.dark *){background-color:var(--p-primary-900)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-primary-900\/20:where(.dark,.dark *){background-color:color-mix(in oklab,color-mix(in srgb,var(--p-primary-900)calc(100%*1),transparent)20%,transparent)}}.dark\:bg-surface-950:where(.dark,.dark *){background-color:var(--p-surface-950)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-surface-950:where(.dark,.dark *){background-color:color-mix(in srgb,var(--p-surface-950)calc(100%*1),transparent)}}.dark\:text-gray-50:where(.dark,.dark *){color:var(--color-gray-50)}.dark\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\:text-primary-300:where(.dark,.dark *){color:var(--p-primary-300)}@supports (color:color-mix(in lab, red, red)){.dark\:text-primary-300:where(.dark,.dark *){color:color-mix(in srgb,var(--p-primary-300)calc(100%*1),transparent)}}@media (hover:hover){.dark\:hover\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-surface-950:where(.dark,.dark *):hover{background-color:var(--p-surface-950)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-surface-950:where(.dark,.dark *):hover{background-color:color-mix(in srgb,var(--p-surface-950)calc(100%*1),transparent)}}.dark\:hover\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}}}:root{--app-background:var(--p-surface-100)}:root[class=dark]{--app-background:var(--p-surface-950)}body{background-color:var(--app-background)}.mt-dialog .p-dialog-header{background-color:var(--p-surface-100);border-radius:.75rem .75rem 0 0;padding:1rem 1.25rem}.mt-dialog .p-dialog-header .p-dialog-header-actions .p-dialog-close-button{background-color:#fff;border-radius:.3rem;justify-content:center;width:2rem;height:2rem}.mt-dialog .p-dialog-content{border-radius:.8rem;height:100%;overflow-y:hidden}.mt-dialog .p-dialog-content .mt-modal-content{height:100%;padding-bottom:5rem;overflow:auto}.mt-dialog .p-dialog-content .mt-modal-footer{background-color:var(--p-surface-100);justify-content:end;gap:10px;padding:.8rem 1.25rem;display:flex;position:sticky;bottom:0}.mt-drawer .p-drawer-content .mt-modal-content{height:calc(100% - 60px);overflow:auto}.mt-drawer .p-drawer-content .mt-modal-footer{border-top:1px solid var(--p-surface-200);justify-content:flex-end;gap:.5rem;height:15rem;padding:.75rem;display:flex}.mt-custom-drawer .p-drawer-header,.mt-custom-drawer .p-drawer-content,.mt-custom-drawer .p-drawer-footer,.mt-drawer .p-drawer-header,.mt-drawer .p-drawer-content,.mt-drawer .p-drawer-footer{padding:0}.mt-drawer .p-drawer-content,body:has(:is(.p-dialog-mask.p-overlay-mask,.p-drawer-mask.p-overlay-mask)){overflow:hidden}@keyframes enter{0%{opacity:var(--p-enter-opacity,1);transform:translate3d(var(--p-enter-translate-x,0),var(--p-enter-translate-y,0),0)scale3d(var(--p-enter-scale,1),var(--p-enter-scale,1),var(--p-enter-scale,1))rotate(var(--p-enter-rotate,0))}}@keyframes leave{to{opacity:var(--p-leave-opacity,1);transform:translate3d(var(--p-leave-translate-x,0),var(--p-leave-translate-y,0),0)scale3d(var(--p-leave-scale,1),var(--p-leave-scale,1),var(--p-leave-scale,1))rotate(var(--p-leave-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-divide-y-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:"<percentage>";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:"<percentage>";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:"<length>";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}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
@@ -1,12 +1,14 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { ControlValueAccessor, NgControl, Validators } from '@angular/forms';
3
3
  import { ColorPicker, ColorPickerChangeEvent } from 'primeng/colorpicker';
4
+ import { isInvalid } from '@masterteam/components';
4
5
 
5
6
  declare class ColorPickerField implements ControlValueAccessor {
6
7
  colorPicker: ColorPicker;
7
8
  label: _angular_core.InputSignal<string | undefined>;
8
9
  placeholder: _angular_core.InputSignal<string | undefined>;
9
10
  class: _angular_core.InputSignal<string>;
11
+ variant: _angular_core.InputSignal<"outlined" | "filled">;
10
12
  readonly: _angular_core.InputSignal<boolean>;
11
13
  pInputs: _angular_core.InputSignal<Partial<ColorPicker> | undefined>;
12
14
  required: _angular_core.InputSignal<boolean>;
@@ -17,6 +19,7 @@ declare class ColorPickerField implements ControlValueAccessor {
17
19
  disabled: _angular_core.WritableSignal<boolean>;
18
20
  onTouched: () => void;
19
21
  onModelChange: (value: string | null) => void;
22
+ isInvalid: typeof isInvalid;
20
23
  constructor();
21
24
  applyInputsToColorPicker(): void;
22
25
  onValueChange(value: string | null): void;
@@ -25,7 +28,7 @@ declare class ColorPickerField implements ControlValueAccessor {
25
28
  registerOnTouched(fn: any): void;
26
29
  setDisabledState(disabled: boolean): void;
27
30
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColorPickerField, never>;
28
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorPickerField, "mt-color-picker-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "pInputs": { "alias": "pInputs"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, true, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorPickerField, "mt-color-picker-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "pInputs": { "alias": "pInputs"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, true, never>;
29
32
  }
30
33
 
31
34
  export { ColorPickerField };
package/dialog/index.d.ts CHANGED
@@ -1,10 +1,8 @@
1
1
  import { DialogService as DialogService$1, DynamicDialogRef, DynamicDialogConfig } from 'primeng/dynamicdialog';
2
- export { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';
2
+ export { DynamicDialogConfig, DynamicDialogRef, DynamicDialogRef as ModalRef } from 'primeng/dynamicdialog';
3
3
  import * as i0 from '@angular/core';
4
4
 
5
5
  declare class DialogService extends DialogService$1 {
6
- footerClass: string;
7
- contentClass: string;
8
6
  ref: DynamicDialogRef | undefined;
9
7
  open(component: any, config?: DynamicDialogConfig): DynamicDialogRef<any>;
10
8
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
@@ -0,0 +1,52 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Type, InjectionToken, Injector } from '@angular/core';
3
+ import { DynamicDialogRef } from 'primeng/dynamicdialog';
4
+
5
+ interface DynamicDrawerConfigInterface {
6
+ header?: string;
7
+ position?: string;
8
+ data?: any;
9
+ fullScreen?: boolean;
10
+ modal?: boolean;
11
+ closable?: boolean;
12
+ closeOnEscape?: boolean;
13
+ dismissible?: boolean;
14
+ appendTo?: any;
15
+ transitionOptions?: string;
16
+ styleClass?: string;
17
+ inputValues?: any;
18
+ }
19
+ declare class DrawerService {
20
+ private appRef;
21
+ private env;
22
+ private rootInjector;
23
+ private destroyRef;
24
+ private doc;
25
+ private hostRef?;
26
+ defauiltConfig: DynamicDrawerConfigInterface;
27
+ open<T>(component: Type<any>, config?: DynamicDrawerConfigInterface): DynamicDialogRef<T>;
28
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerService, never>;
29
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DrawerService>;
30
+ }
31
+
32
+ declare const DynamicDrawerConfig: InjectionToken<any>;
33
+ declare class DynamicDrawerHost {
34
+ visible: _angular_core.ModelSignal<boolean>;
35
+ cmp: _angular_core.WritableSignal<any>;
36
+ cfg: _angular_core.WritableSignal<any>;
37
+ cmpInputs: _angular_core.WritableSignal<Record<string, unknown>>;
38
+ childInjector: Injector;
39
+ private ref?;
40
+ connect(opts: {
41
+ component: any;
42
+ config?: any;
43
+ parent: Injector;
44
+ ref: DynamicDialogRef;
45
+ }): void;
46
+ handleHide(data?: null): void;
47
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicDrawerHost, never>;
48
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicDrawerHost, "mt-dynamic-drawer-host", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "connect": { "alias": "connect"; "required": true; }; }, { "visible": "visibleChange"; }, never, never, true, never>;
49
+ }
50
+
51
+ export { DrawerService, DynamicDrawerConfig, DynamicDrawerHost };
52
+ export type { DynamicDrawerConfigInterface };
@@ -4,12 +4,16 @@ import * as i1 from '@angular/forms';
4
4
  import { NgControl, Validators, FormsModule } from '@angular/forms';
5
5
  import * as i2 from 'primeng/colorpicker';
6
6
  import { ColorPickerModule } from 'primeng/colorpicker';
7
+ import { FieldValidation } from '@masterteam/components/field-validation';
8
+ import { TextField } from '@masterteam/components/text-field';
9
+ import { isInvalid } from '@masterteam/components';
7
10
 
8
11
  class ColorPickerField {
9
12
  colorPicker;
10
13
  label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
11
14
  placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
12
15
  class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
16
+ variant = input('outlined', ...(ngDevMode ? [{ debugName: "variant" }] : []));
13
17
  readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
14
18
  pInputs = input(...(ngDevMode ? [undefined, { debugName: "pInputs" }] : []));
15
19
  required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
@@ -20,6 +24,7 @@ class ColorPickerField {
20
24
  disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
21
25
  onTouched = () => { };
22
26
  onModelChange = () => { };
27
+ isInvalid = isInvalid;
23
28
  constructor() {
24
29
  if (this.ngControl) {
25
30
  this.ngControl.valueAccessor = this;
@@ -39,6 +44,9 @@ class ColorPickerField {
39
44
  this.ngControl.control.addValidators(Validators.required);
40
45
  this.ngControl.control.updateValueAndValidity();
41
46
  }
47
+ if (this.ngControl.control) {
48
+ this.ngControl.control.addValidators(Validators.pattern(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/));
49
+ }
42
50
  });
43
51
  }
44
52
  applyInputsToColorPicker() {
@@ -49,6 +57,7 @@ class ColorPickerField {
49
57
  }
50
58
  onValueChange(value) {
51
59
  this.onModelChange(value);
60
+ this.onTouched();
52
61
  this.value.set(value);
53
62
  }
54
63
  writeValue(value) {
@@ -64,13 +73,13 @@ class ColorPickerField {
64
73
  this.disabled.set(disabled);
65
74
  }
66
75
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ColorPickerField, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: ColorPickerField, isStandalone: true, selector: "mt-color-picker-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, host: { properties: { "class": "class()" } }, viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }], ngImport: i0, template: "<p-colorpicker\n #colorPicker=\"\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"leading-none\"\n></p-colorpicker>\n@if (label()) {\n <label\n class=\"ms-2\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n", styles: [":host{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ColorPickerModule }, { kind: "component", type: i2.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["styleClass", "inline", "format", "tabindex", "inputId", "autoZIndex", "showTransitionOptions", "hideTransitionOptions", "autofocus", "defaultColor", "appendTo"], outputs: ["onChange", "onShow", "onHide"] }] });
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: ColorPickerField, isStandalone: true, selector: "mt-color-picker-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pInputs: { classPropertyName: "pInputs", publicName: "pInputs", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, host: { properties: { "class": "class()" } }, viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"flex flex-col gap-1 min-w-full\">\n @if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n }\n <div\n class=\"flex items-center hover:border-(--p-inputtext-hover-border-color)! p-inputtext\"\n [class.bg-(--p-inputtext-filled-background)]=\"variant() === 'filled'\"\n [class.border-(--p-inputtext-invalid-border-color)!]=\"\n ngControl?.control?.invalid && ngControl?.control?.touched\n \"\n >\n <p-colorpicker\n #colorPicker=\"\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"leading-none\"\n [invalid]=\"isInvalid(ngControl?.control)\"\n ></p-colorpicker>\n <div class=\"ms-2 w-full\">\n <mt-text-field\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (change)=\"onChange.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"No color selected\"\n class=\"leading-none min-w-max p-0 input-no-border px-0\"\n hint=\"Should be a hex color code, e.g. #ff5733 or #f00\"\n ></mt-text-field>\n </div>\n </div>\n <mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\n</div>\n", styles: [":host{display:flex;align-items:center}::ng-deep .input-no-border .p-component{border:none;box-shadow:none;background-color:transparent;width:100%}::ng-deep .input-no-border .p-inputgroupaddon{border-inline:none;border-block-start:none;border-block-end:none;padding:0!important}::ng-deep .input-no-border .p-inputgroupaddon:last-child{border-inline-end:none}::ng-deep .p-inputtext .p-inputtext{padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ColorPickerModule }, { kind: "component", type: i2.ColorPicker, selector: "p-colorPicker, p-colorpicker, p-color-picker", inputs: ["styleClass", "inline", "format", "tabindex", "inputId", "autoZIndex", "showTransitionOptions", "hideTransitionOptions", "autofocus", "defaultColor", "appendTo"], outputs: ["onChange", "onShow", "onHide"] }, { kind: "component", type: FieldValidation, selector: "mt-field-validation", inputs: ["control", "touched"] }, { kind: "component", type: TextField, selector: "mt-text-field", inputs: ["field", "hint", "label", "placeholder", "class", "type", "readonly", "pInputs", "pKeyFilter", "required"] }] });
68
77
  }
69
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ColorPickerField, decorators: [{
70
79
  type: Component,
71
- args: [{ selector: 'mt-color-picker-field', standalone: true, imports: [FormsModule, ColorPickerModule], host: {
80
+ args: [{ selector: 'mt-color-picker-field', standalone: true, imports: [FormsModule, ColorPickerModule, FieldValidation, TextField], host: {
72
81
  '[class]': 'class()',
73
- }, template: "<p-colorpicker\n #colorPicker=\"\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"leading-none\"\n></p-colorpicker>\n@if (label()) {\n <label\n class=\"ms-2\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n", styles: [":host{display:flex;align-items:center}\n"] }]
82
+ }, template: "<div class=\"flex flex-col gap-1 min-w-full\">\n @if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n }\n <div\n class=\"flex items-center hover:border-(--p-inputtext-hover-border-color)! p-inputtext\"\n [class.bg-(--p-inputtext-filled-background)]=\"variant() === 'filled'\"\n [class.border-(--p-inputtext-invalid-border-color)!]=\"\n ngControl?.control?.invalid && ngControl?.control?.touched\n \"\n >\n <p-colorpicker\n #colorPicker=\"\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"leading-none\"\n [invalid]=\"isInvalid(ngControl?.control)\"\n ></p-colorpicker>\n <div class=\"ms-2 w-full\">\n <mt-text-field\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (change)=\"onChange.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"No color selected\"\n class=\"leading-none min-w-max p-0 input-no-border px-0\"\n hint=\"Should be a hex color code, e.g. #ff5733 or #f00\"\n ></mt-text-field>\n </div>\n </div>\n <mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\n</div>\n", styles: [":host{display:flex;align-items:center}::ng-deep .input-no-border .p-component{border:none;box-shadow:none;background-color:transparent;width:100%}::ng-deep .input-no-border .p-inputgroupaddon{border-inline:none;border-block-start:none;border-block-end:none;padding:0!important}::ng-deep .input-no-border .p-inputgroupaddon:last-child{border-inline-end:none}::ng-deep .p-inputtext .p-inputtext{padding:0!important}\n"] }]
74
83
  }], ctorParameters: () => [], propDecorators: { colorPicker: [{
75
84
  type: ViewChild,
76
85
  args: ['colorPicker', { static: true }]
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components-color-picker-field.mjs","sources":["../../../../packages/masterteam/components/color-picker-field/color-picker-field.ts","../../../../packages/masterteam/components/color-picker-field/color-picker-field.html","../../../../packages/masterteam/components/color-picker-field/masterteam-components-color-picker-field.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n signal,\n input,\n output,\n inject,\n effect,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n ColorPickerModule,\n ColorPicker,\n ColorPickerChangeEvent,\n} from 'primeng/colorpicker';\n\n@Component({\n selector: 'mt-color-picker-field',\n standalone: true,\n imports: [FormsModule, ColorPickerModule],\n templateUrl: './color-picker-field.html',\n styleUrls: ['./color-picker-field.scss'],\n host: {\n '[class]': 'class()',\n },\n})\nexport class ColorPickerField implements ControlValueAccessor {\n @ViewChild('colorPicker', { static: true })\n colorPicker: ColorPicker;\n\n label = input<string>();\n placeholder = input<string>();\n class = input<string>('');\n readonly = input<boolean>(false);\n pInputs = input<Partial<ColorPicker>>();\n required = input<boolean>(false);\n\n onChange = output<ColorPickerChangeEvent>();\n\n public ngControl = inject(NgControl, { self: true });\n\n requiredValidator = Validators.required;\n value = signal<string | null>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: string | null) => void = () => {};\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n // Effect to apply pInputs reactively when the pInputs signal changes\n effect(() => {\n const currentPInputs = this.pInputs();\n // Ensure colorPicker ViewChild is initialized and pInputs has a value\n // @ViewChild with static: true makes 'colorPicker' available during construction/ngOnInit\n if (this.colorPicker && currentPInputs) {\n this.applyInputsToColorPicker();\n }\n });\n\n // Effect to add required validator if required input is true\n effect(() => {\n if (this.ngControl.control && this.required()) {\n this.ngControl.control.addValidators(Validators.required);\n this.ngControl.control.updateValueAndValidity();\n }\n });\n }\n\n applyInputsToColorPicker() {\n const currentPInputs = this.pInputs();\n if (currentPInputs) {\n Object.assign(this.colorPicker, currentPInputs);\n }\n }\n\n onValueChange(value: string | null) {\n this.onModelChange(value);\n this.value.set(value);\n }\n\n writeValue(value: string | null) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","<p-colorpicker\n #colorPicker=\"\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (onBlur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"leading-none\"\n></p-colorpicker>\n@if (label()) {\n <label\n class=\"ms-2\"\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MA+Ba,gBAAgB,CAAA;AAE3B,IAAA,WAAW;IAEX,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IACvB,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAC7B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;IAChC,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAwB;AACvC,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;IAEhC,QAAQ,GAAG,MAAM,EAA0B;IAEpC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpD,IAAA,iBAAiB,GAAG,UAAU,CAAC,QAAQ;AACvC,IAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,iDAAC;AACnC,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,oDAAC;AAEjC,IAAA,SAAS,GAAe,MAAK,EAAE,CAAC;AAChC,IAAA,aAAa,GAAmC,MAAK,EAAE,CAAC;AAExD,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;QACrC;;QAGA,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE;;;AAGrC,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,cAAc,EAAE;gBACtC,IAAI,CAAC,wBAAwB,EAAE;YACjC;AACF,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;AACzD,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACjD;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,wBAAwB,GAAA;AACtB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE;QACrC,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;QACjD;IACF;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;AAEA,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;IACzB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7B;uGAxEW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/B7B,klBAmBA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKY,WAAW,8VAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAO7B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAA,IAAA,EAGnC;AACJ,wBAAA,SAAS,EAAE,SAAS;AACrB,qBAAA,EAAA,QAAA,EAAA,klBAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA;wDAID,WAAW,EAAA,CAAA;sBADV,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AEhC5C;;AAEG;;;;"}
1
+ {"version":3,"file":"masterteam-components-color-picker-field.mjs","sources":["../../../../packages/masterteam/components/color-picker-field/color-picker-field.ts","../../../../packages/masterteam/components/color-picker-field/color-picker-field.html","../../../../packages/masterteam/components/color-picker-field/masterteam-components-color-picker-field.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n signal,\n input,\n output,\n inject,\n effect,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n Validators,\n} from '@angular/forms';\nimport {\n ColorPickerModule,\n ColorPicker,\n ColorPickerChangeEvent,\n} from 'primeng/colorpicker';\nimport { FieldValidation } from '@masterteam/components/field-validation';\nimport { TextField } from '@masterteam/components/text-field';\nimport { isInvalid } from '@masterteam/components';\n\n@Component({\n selector: 'mt-color-picker-field',\n standalone: true,\n imports: [FormsModule, ColorPickerModule, FieldValidation, TextField],\n templateUrl: './color-picker-field.html',\n styleUrls: ['./color-picker-field.scss'],\n host: {\n '[class]': 'class()',\n },\n})\nexport class ColorPickerField implements ControlValueAccessor {\n @ViewChild('colorPicker', { static: true })\n colorPicker: ColorPicker;\n\n label = input<string>();\n placeholder = input<string>();\n class = input<string>('');\n variant = input<'outlined' | 'filled'>('outlined');\n readonly = input<boolean>(false);\n pInputs = input<Partial<ColorPicker>>();\n required = input<boolean>(false);\n\n onChange = output<ColorPickerChangeEvent>();\n\n public ngControl = inject(NgControl, { self: true });\n\n requiredValidator = Validators.required;\n value = signal<string | null>(null);\n disabled = signal<boolean>(false);\n\n onTouched: () => void = () => {};\n onModelChange: (value: string | null) => void = () => {};\n isInvalid = isInvalid;\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n // Effect to apply pInputs reactively when the pInputs signal changes\n effect(() => {\n const currentPInputs = this.pInputs();\n // Ensure colorPicker ViewChild is initialized and pInputs has a value\n // @ViewChild with static: true makes 'colorPicker' available during construction/ngOnInit\n if (this.colorPicker && currentPInputs) {\n this.applyInputsToColorPicker();\n }\n });\n\n // Effect to add required validator if required input is true\n effect(() => {\n if (this.ngControl.control && this.required()) {\n this.ngControl.control.addValidators(Validators.required);\n this.ngControl.control.updateValueAndValidity();\n }\n if (this.ngControl.control) {\n this.ngControl.control.addValidators(\n Validators.pattern(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/),\n );\n }\n });\n }\n\n applyInputsToColorPicker() {\n const currentPInputs = this.pInputs();\n if (currentPInputs) {\n Object.assign(this.colorPicker, currentPInputs);\n }\n }\n\n onValueChange(value: string | null) {\n this.onModelChange(value);\n this.onTouched();\n this.value.set(value);\n }\n\n writeValue(value: string | null) {\n this.value.set(value);\n }\n\n registerOnChange(fn: any) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n this.disabled.set(disabled);\n }\n}\n","<div class=\"flex flex-col gap-1 min-w-full\">\n @if (label()) {\n <label\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\n [for]=\"ngControl?.name || label()\"\n >{{ label() }}</label\n >\n }\n <div\n class=\"flex items-center hover:border-(--p-inputtext-hover-border-color)! p-inputtext\"\n [class.bg-(--p-inputtext-filled-background)]=\"variant() === 'filled'\"\n [class.border-(--p-inputtext-invalid-border-color)!]=\"\n ngControl?.control?.invalid && ngControl?.control?.touched\n \"\n >\n <p-colorpicker\n #colorPicker=\"\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (onChange)=\"onChange.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n class=\"leading-none\"\n [invalid]=\"isInvalid(ngControl?.control)\"\n ></p-colorpicker>\n <div class=\"ms-2 w-full\">\n <mt-text-field\n [ngModel]=\"value()\"\n (ngModelChange)=\"onValueChange($event)\"\n (change)=\"onChange.emit($event)\"\n (blur)=\"onTouched()\"\n [disabled]=\"disabled() || readonly()\"\n [class.ng-invalid]=\"ngControl?.control?.invalid\"\n placeholder=\"No color selected\"\n class=\"leading-none min-w-max p-0 input-no-border px-0\"\n hint=\"Should be a hex color code, e.g. #ff5733 or #f00\"\n ></mt-text-field>\n </div>\n </div>\n <mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,9 @@
1
1
  import { DialogService as DialogService$1 } from 'primeng/dynamicdialog';
2
- export { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';
2
+ export { DynamicDialogConfig, DynamicDialogRef, DynamicDialogRef as ModalRef } from 'primeng/dynamicdialog';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Injectable } from '@angular/core';
5
5
 
6
6
  class DialogService extends DialogService$1 {
7
- footerClass = 'mt-dialog-footer';
8
- contentClass = 'mt-dialog-content';
9
7
  ref;
10
8
  open(component, config) {
11
9
  const defaultConfig = {
@@ -20,10 +18,11 @@ class DialogService extends DialogService$1 {
20
18
  return this.ref;
21
19
  }
22
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DialogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
23
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DialogService });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DialogService, providedIn: 'root' });
24
22
  }
25
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DialogService, decorators: [{
26
- type: Injectable
24
+ type: Injectable,
25
+ args: [{ providedIn: 'root' }]
27
26
  }] });
28
27
 
29
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components-dialog.mjs","sources":["../../../../packages/masterteam/components/dialog/dialog.ts","../../../../packages/masterteam/components/dialog/masterteam-components-dialog.ts"],"sourcesContent":["import {\n DialogService as PrimeNGDialogService,\n DynamicDialogConfig,\n DynamicDialogRef,\n} from 'primeng/dynamicdialog';\nimport { Injectable } from '@angular/core';\nexport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\n\n@Injectable()\nexport class DialogService extends PrimeNGDialogService {\n footerClass: string = 'mt-dialog-footer';\n contentClass: string = 'mt-dialog-content';\n ref: DynamicDialogRef | undefined;\n\n override open(component: any, config?: DynamicDialogConfig) {\n const defaultConfig = {\n closable: true,\n modal: true,\n };\n this.ref = super.open(component, {\n ...defaultConfig,\n ...config,\n styleClass: 'mt-dialog ' + config?.styleClass,\n });\n return this.ref;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeNGDialogService"],"mappings":";;;;;AASM,MAAO,aAAc,SAAQA,eAAoB,CAAA;IACrD,WAAW,GAAW,kBAAkB;IACxC,YAAY,GAAW,mBAAmB;AAC1C,IAAA,GAAG;IAEM,IAAI,CAAC,SAAc,EAAE,MAA4B,EAAA;AACxD,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,KAAK,EAAE,IAAI;SACZ;QACD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,GAAG,aAAa;AAChB,YAAA,GAAG,MAAM;AACT,YAAA,UAAU,EAAE,YAAY,GAAG,MAAM,EAAE,UAAU;AAC9C,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,GAAG;IACjB;uGAhBW,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"masterteam-components-dialog.mjs","sources":["../../../../packages/masterteam/components/dialog/dialog.ts","../../../../packages/masterteam/components/dialog/masterteam-components-dialog.ts"],"sourcesContent":["import {\n DialogService as PrimeNGDialogService,\n DynamicDialogConfig,\n DynamicDialogRef,\n} from 'primeng/dynamicdialog';\nimport { Injectable } from '@angular/core';\nexport {\n DynamicDialogConfig,\n DynamicDialogRef as ModalRef,\n} from 'primeng/dynamicdialog';\nexport { DynamicDialogRef } from 'primeng/dynamicdialog';\n\n@Injectable({ providedIn: 'root' })\nexport class DialogService extends PrimeNGDialogService {\n ref: DynamicDialogRef | undefined;\n\n override open(component: any, config?: DynamicDialogConfig) {\n const defaultConfig = {\n closable: true,\n modal: true,\n };\n this.ref = super.open(component, {\n ...defaultConfig,\n ...config,\n styleClass: 'mt-dialog ' + config?.styleClass,\n });\n return this.ref;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeNGDialogService"],"mappings":";;;;;AAaM,MAAO,aAAc,SAAQA,eAAoB,CAAA;AACrD,IAAA,GAAG;IAEM,IAAI,CAAC,SAAc,EAAE,MAA4B,EAAA;AACxD,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,KAAK,EAAE,IAAI;SACZ;QACD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,GAAG,aAAa;AAChB,YAAA,GAAG,MAAM;AACT,YAAA,UAAU,EAAE,YAAY,GAAG,MAAM,EAAE,UAAU;AAC9C,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,GAAG;IACjB;uGAdW,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACZlC;;AAEG;;;;"}
@@ -35,11 +35,11 @@ class Drawer {
35
35
  this.onHide.emit(true);
36
36
  }
37
37
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: Drawer, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: Drawer, isStandalone: true, selector: "mt-drawer", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, blockScroll: { classPropertyName: "blockScroll", publicName: "blockScroll", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, transitionOptions: { classPropertyName: "transitionOptions", publicName: "transitionOptions", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange", visibleChange: "visibleChange", onShow: "onShow", onHide: "onHide" }, ngImport: i0, template: "<p-drawer\n [(visible)]=\"visible\"\n [position]=\"position()\"\n [fullScreen]=\"fullScreen()\"\n [modal]=\"modal()\"\n [closable]=\"false\"\n [closeOnEscape]=\"closeOnEscape()\"\n [blockScroll]=\"blockScroll()\"\n [dismissible]=\"dismissible()\"\n [appendTo]=\"appendTo()\"\n [transitionOptions]=\"transitionOptions()\"\n [styleClass]=\"styleClass() + ' custom-drawer'\"\n (visibleChange)=\"visibleChangeEvent($event)\"\n (onShow)=\"onShowEvent()\"\n (onHide)=\"onHideEvent()\"\n>\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ title() }}</h3>\n <mt-button\n (onClick)=\"onClose()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-content select=\"[content]\"></ng-content>\n\n <ng-template #footer>\n <div class=\"flex justify-end p-3 gap-2 border-t border-surface-200\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </ng-template>\n</p-drawer>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "component", type: i1.Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }] });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: Drawer, isStandalone: true, selector: "mt-drawer", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, blockScroll: { classPropertyName: "blockScroll", publicName: "blockScroll", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, transitionOptions: { classPropertyName: "transitionOptions", publicName: "transitionOptions", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange", visibleChange: "visibleChange", onShow: "onShow", onHide: "onHide" }, ngImport: i0, template: "<p-drawer\n [(visible)]=\"visible\"\n [position]=\"position()\"\n [fullScreen]=\"fullScreen()\"\n [modal]=\"modal()\"\n [closable]=\"false\"\n [closeOnEscape]=\"closeOnEscape()\"\n [blockScroll]=\"blockScroll()\"\n [dismissible]=\"dismissible()\"\n [appendTo]=\"appendTo()\"\n [transitionOptions]=\"transitionOptions()\"\n [styleClass]=\"styleClass() + ' mt-custom-drawer'\"\n (visibleChange)=\"visibleChangeEvent($event)\"\n (onShow)=\"onShowEvent()\"\n (onHide)=\"onHideEvent()\"\n>\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ title() }}</h3>\n <mt-button\n (onClick)=\"onClose()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-content select=\"[content]\"></ng-content>\n\n <ng-template #footer>\n <div class=\"flex justify-end p-3 gap-2 border-t border-surface-200\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </ng-template>\n</p-drawer>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "component", type: i1.Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }] });
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: Drawer, decorators: [{
41
41
  type: Component,
42
- args: [{ selector: 'mt-drawer', standalone: true, imports: [CommonModule, DrawerModule, Button], template: "<p-drawer\n [(visible)]=\"visible\"\n [position]=\"position()\"\n [fullScreen]=\"fullScreen()\"\n [modal]=\"modal()\"\n [closable]=\"false\"\n [closeOnEscape]=\"closeOnEscape()\"\n [blockScroll]=\"blockScroll()\"\n [dismissible]=\"dismissible()\"\n [appendTo]=\"appendTo()\"\n [transitionOptions]=\"transitionOptions()\"\n [styleClass]=\"styleClass() + ' custom-drawer'\"\n (visibleChange)=\"visibleChangeEvent($event)\"\n (onShow)=\"onShowEvent()\"\n (onHide)=\"onHideEvent()\"\n>\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ title() }}</h3>\n <mt-button\n (onClick)=\"onClose()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-content select=\"[content]\"></ng-content>\n\n <ng-template #footer>\n <div class=\"flex justify-end p-3 gap-2 border-t border-surface-200\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </ng-template>\n</p-drawer>\n" }]
42
+ args: [{ selector: 'mt-drawer', standalone: true, imports: [CommonModule, DrawerModule, Button], template: "<p-drawer\n [(visible)]=\"visible\"\n [position]=\"position()\"\n [fullScreen]=\"fullScreen()\"\n [modal]=\"modal()\"\n [closable]=\"false\"\n [closeOnEscape]=\"closeOnEscape()\"\n [blockScroll]=\"blockScroll()\"\n [dismissible]=\"dismissible()\"\n [appendTo]=\"appendTo()\"\n [transitionOptions]=\"transitionOptions()\"\n [styleClass]=\"styleClass() + ' mt-custom-drawer'\"\n (visibleChange)=\"visibleChangeEvent($event)\"\n (onShow)=\"onShowEvent()\"\n (onHide)=\"onHideEvent()\"\n>\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ title() }}</h3>\n <mt-button\n (onClick)=\"onClose()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-content select=\"[content]\"></ng-content>\n\n <ng-template #footer>\n <div class=\"flex justify-end p-3 gap-2 border-t border-surface-200\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </ng-template>\n</p-drawer>\n" }]
43
43
  }] });
44
44
 
45
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components-drawer.mjs","sources":["../../../../packages/masterteam/components/drawer/drawer.ts","../../../../packages/masterteam/components/drawer/drawer.html","../../../../packages/masterteam/components/drawer/masterteam-components-drawer.ts"],"sourcesContent":["import { Button } from '@masterteam/components/button';\nimport { Component, input, output, model } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrawerModule } from 'primeng/drawer';\n\n@Component({\n selector: 'mt-drawer',\n standalone: true,\n imports: [CommonModule, DrawerModule, Button],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n})\nexport class Drawer {\n visible = model<boolean>(false);\n visibleChange = output<boolean>();\n onShow = output<boolean>();\n onHide = output<boolean>();\n position = input<'left' | 'right' | 'top' | 'bottom'>('right');\n fullScreen = input<boolean>(false);\n closeOnEscape = input<boolean>(false);\n blockScroll = input<boolean>(true);\n dismissible = input<boolean>(true);\n title = input<string>('');\n styleClass = input<string>('');\n transitionOptions = input<string>('200ms cubic-bezier(0, 0, 1, 1)');\n appendTo = input<string>('body');\n modal = input<boolean>(true);\n\n visibleChangeEvent(event: boolean) {\n this.visibleChange.emit(event);\n }\n\n onClose() {\n this.visible.set(false);\n this.visibleChange.emit(false);\n this.onHide.emit(true);\n }\n onShowEvent() {\n this.onShow.emit(true);\n }\n onHideEvent() {\n this.onHide.emit(true);\n }\n}\n","<p-drawer\n [(visible)]=\"visible\"\n [position]=\"position()\"\n [fullScreen]=\"fullScreen()\"\n [modal]=\"modal()\"\n [closable]=\"false\"\n [closeOnEscape]=\"closeOnEscape()\"\n [blockScroll]=\"blockScroll()\"\n [dismissible]=\"dismissible()\"\n [appendTo]=\"appendTo()\"\n [transitionOptions]=\"transitionOptions()\"\n [styleClass]=\"styleClass() + ' custom-drawer'\"\n (visibleChange)=\"visibleChangeEvent($event)\"\n (onShow)=\"onShowEvent()\"\n (onHide)=\"onHideEvent()\"\n>\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ title() }}</h3>\n <mt-button\n (onClick)=\"onClose()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-content select=\"[content]\"></ng-content>\n\n <ng-template #footer>\n <div class=\"flex justify-end p-3 gap-2 border-t border-surface-200\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </ng-template>\n</p-drawer>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAYa,MAAM,CAAA;AACjB,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;IAC/B,aAAa,GAAG,MAAM,EAAW;IACjC,MAAM,GAAG,MAAM,EAAW;IAC1B,MAAM,GAAG,MAAM,EAAW;AAC1B,IAAA,QAAQ,GAAG,KAAK,CAAsC,OAAO,oDAAC;AAC9D,IAAA,UAAU,GAAG,KAAK,CAAU,KAAK,sDAAC;AAClC,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;AACrC,IAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;AAClC,IAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;AAClC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,UAAU,GAAG,KAAK,CAAS,EAAE,sDAAC;AAC9B,IAAA,iBAAiB,GAAG,KAAK,CAAS,gCAAgC,6DAAC;AACnE,IAAA,QAAQ,GAAG,KAAK,CAAS,MAAM,oDAAC;AAChC,IAAA,KAAK,GAAG,KAAK,CAAU,IAAI,iDAAC;AAE5B,IAAA,kBAAkB,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;uGA9BW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,0nDCZnB,kqCAwCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,kaAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIjC,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPlB,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAA,QAAA,EAAA,kqCAAA,EAAA;;;AER/C;;AAEG;;;;"}
1
+ {"version":3,"file":"masterteam-components-drawer.mjs","sources":["../../../../packages/masterteam/components/drawer/drawer.ts","../../../../packages/masterteam/components/drawer/drawer.html","../../../../packages/masterteam/components/drawer/masterteam-components-drawer.ts"],"sourcesContent":["import { Button } from '@masterteam/components/button';\nimport { Component, input, output, model } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrawerModule } from 'primeng/drawer';\n\n@Component({\n selector: 'mt-drawer',\n standalone: true,\n imports: [CommonModule, DrawerModule, Button],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n})\nexport class Drawer {\n visible = model<boolean>(false);\n visibleChange = output<boolean>();\n onShow = output<boolean>();\n onHide = output<boolean>();\n position = input<'left' | 'right' | 'top' | 'bottom'>('right');\n fullScreen = input<boolean>(false);\n closeOnEscape = input<boolean>(false);\n blockScroll = input<boolean>(true);\n dismissible = input<boolean>(true);\n title = input<string>('');\n styleClass = input<string>('');\n transitionOptions = input<string>('200ms cubic-bezier(0, 0, 1, 1)');\n appendTo = input<string>('body');\n modal = input<boolean>(true);\n\n visibleChangeEvent(event: boolean) {\n this.visibleChange.emit(event);\n }\n\n onClose() {\n this.visible.set(false);\n this.visibleChange.emit(false);\n this.onHide.emit(true);\n }\n onShowEvent() {\n this.onShow.emit(true);\n }\n onHideEvent() {\n this.onHide.emit(true);\n }\n}\n","<p-drawer\n [(visible)]=\"visible\"\n [position]=\"position()\"\n [fullScreen]=\"fullScreen()\"\n [modal]=\"modal()\"\n [closable]=\"false\"\n [closeOnEscape]=\"closeOnEscape()\"\n [blockScroll]=\"blockScroll()\"\n [dismissible]=\"dismissible()\"\n [appendTo]=\"appendTo()\"\n [transitionOptions]=\"transitionOptions()\"\n [styleClass]=\"styleClass() + ' mt-custom-drawer'\"\n (visibleChange)=\"visibleChangeEvent($event)\"\n (onShow)=\"onShowEvent()\"\n (onHide)=\"onHideEvent()\"\n>\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ title() }}</h3>\n <mt-button\n (onClick)=\"onClose()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-content select=\"[content]\"></ng-content>\n\n <ng-template #footer>\n <div class=\"flex justify-end p-3 gap-2 border-t border-surface-200\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </ng-template>\n</p-drawer>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAYa,MAAM,CAAA;AACjB,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;IAC/B,aAAa,GAAG,MAAM,EAAW;IACjC,MAAM,GAAG,MAAM,EAAW;IAC1B,MAAM,GAAG,MAAM,EAAW;AAC1B,IAAA,QAAQ,GAAG,KAAK,CAAsC,OAAO,oDAAC;AAC9D,IAAA,UAAU,GAAG,KAAK,CAAU,KAAK,sDAAC;AAClC,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;AACrC,IAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;AAClC,IAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;AAClC,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,UAAU,GAAG,KAAK,CAAS,EAAE,sDAAC;AAC9B,IAAA,iBAAiB,GAAG,KAAK,CAAS,gCAAgC,6DAAC;AACnE,IAAA,QAAQ,GAAG,KAAK,CAAS,MAAM,oDAAC;AAChC,IAAA,KAAK,GAAG,KAAK,CAAU,IAAI,iDAAC;AAE5B,IAAA,kBAAkB,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;IACA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB;uGA9BW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,0nDCZnB,qqCAwCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,kaAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIjC,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPlB,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAA,QAAA,EAAA,qqCAAA,EAAA;;;AER/C;;AAEG;;;;"}
@@ -0,0 +1,172 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, model, signal, Injector, Input, Component, inject, ApplicationRef, EnvironmentInjector, DestroyRef, createComponent, Injectable } from '@angular/core';
3
+ import { NgComponentOutlet, DOCUMENT } from '@angular/common';
4
+ import { DynamicDialogRef } from 'primeng/dynamicdialog';
5
+ import * as i1 from 'primeng/drawer';
6
+ import { DrawerModule } from 'primeng/drawer';
7
+ import { Button } from '@masterteam/components/button';
8
+
9
+ const DynamicDrawerConfig = new InjectionToken('DynamicDrawerConfig');
10
+ class DynamicDrawerHost {
11
+ visible = model(false, ...(ngDevMode ? [{ debugName: "visible" }] : []));
12
+ cmp = signal(null, ...(ngDevMode ? [{ debugName: "cmp" }] : []));
13
+ cfg = signal({}, ...(ngDevMode ? [{ debugName: "cfg" }] : []));
14
+ cmpInputs = signal({}, ...(ngDevMode ? [{ debugName: "cmpInputs" }] : []));
15
+ childInjector;
16
+ ref;
17
+ connect(opts) {
18
+ this.cmp.set(opts.component);
19
+ this.cfg.set(opts.config ?? {});
20
+ this.cmpInputs.set(opts.config?.inputValues ?? {});
21
+ this.ref = opts.ref;
22
+ this.childInjector = Injector.create({
23
+ parent: opts.parent,
24
+ providers: [
25
+ { provide: DynamicDrawerConfig, useValue: opts.config ?? {} },
26
+ { provide: DynamicDialogRef, useValue: opts.ref },
27
+ ],
28
+ });
29
+ opts.ref.onClose.subscribe(() => {
30
+ this.visible.set(false);
31
+ });
32
+ this.visible.set(true);
33
+ }
34
+ handleHide(data = null) {
35
+ this.visible.set(false);
36
+ this.ref?.close(data);
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DynamicDrawerHost, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: DynamicDrawerHost, isStandalone: true, selector: "mt-dynamic-drawer-host", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, connect: { classPropertyName: "connect", publicName: "connect", isSignal: false, isRequired: true, transformFunction: null } }, outputs: { visible: "visibleChange" }, ngImport: i0, template: `
40
+ <p-drawer
41
+ [(visible)]="visible"
42
+ [closable]="cfg()?.closable"
43
+ [position]="cfg()?.position"
44
+ [fullScreen]="cfg()?.fullScreen"
45
+ [modal]="cfg()?.modal"
46
+ [closeOnEscape]="cfg()?.closeOnEscape"
47
+ [dismissible]="cfg()?.dismissible"
48
+ [appendTo]="cfg()?.appendTo"
49
+ [transitionOptions]="cfg()?.transitionOptions"
50
+ [styleClass]="cfg()?.styleClass + ' mt-drawer'"
51
+ >
52
+ <ng-template #header>
53
+ <div
54
+ class="flex items-center justify-between px-5 w-full py-3 border-b border-surface"
55
+ >
56
+ <h3 class="text-xl font-semibold">{{ cfg()?.header }}</h3>
57
+ <mt-button
58
+ (onClick)="handleHide()"
59
+ variant="outlined"
60
+ styleClass="!bg-white"
61
+ icon="general.x-close"
62
+ severity="secondary"
63
+ >
64
+ </mt-button>
65
+ </div>
66
+ </ng-template>
67
+
68
+ <ng-container
69
+ *ngComponentOutlet="cmp(); injector: childInjector; inputs: cmpInputs()"
70
+ >
71
+ </ng-container>
72
+ </p-drawer>
73
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: DrawerModule }, { kind: "component", type: i1.Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }] });
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DynamicDrawerHost, decorators: [{
76
+ type: Component,
77
+ args: [{
78
+ selector: 'mt-dynamic-drawer-host',
79
+ standalone: true,
80
+ imports: [NgComponentOutlet, DrawerModule, Button],
81
+ template: `
82
+ <p-drawer
83
+ [(visible)]="visible"
84
+ [closable]="cfg()?.closable"
85
+ [position]="cfg()?.position"
86
+ [fullScreen]="cfg()?.fullScreen"
87
+ [modal]="cfg()?.modal"
88
+ [closeOnEscape]="cfg()?.closeOnEscape"
89
+ [dismissible]="cfg()?.dismissible"
90
+ [appendTo]="cfg()?.appendTo"
91
+ [transitionOptions]="cfg()?.transitionOptions"
92
+ [styleClass]="cfg()?.styleClass + ' mt-drawer'"
93
+ >
94
+ <ng-template #header>
95
+ <div
96
+ class="flex items-center justify-between px-5 w-full py-3 border-b border-surface"
97
+ >
98
+ <h3 class="text-xl font-semibold">{{ cfg()?.header }}</h3>
99
+ <mt-button
100
+ (onClick)="handleHide()"
101
+ variant="outlined"
102
+ styleClass="!bg-white"
103
+ icon="general.x-close"
104
+ severity="secondary"
105
+ >
106
+ </mt-button>
107
+ </div>
108
+ </ng-template>
109
+
110
+ <ng-container
111
+ *ngComponentOutlet="cmp(); injector: childInjector; inputs: cmpInputs()"
112
+ >
113
+ </ng-container>
114
+ </p-drawer>
115
+ `,
116
+ }]
117
+ }], propDecorators: { connect: [{
118
+ type: Input,
119
+ args: [{ required: true }]
120
+ }] } });
121
+
122
+ // dynamic-drawer.service.ts
123
+ class DrawerService {
124
+ appRef = inject(ApplicationRef);
125
+ env = inject(EnvironmentInjector);
126
+ rootInjector = inject(Injector);
127
+ destroyRef = inject(DestroyRef);
128
+ doc = inject(DOCUMENT);
129
+ hostRef;
130
+ defauiltConfig = {
131
+ position: 'right',
132
+ modal: true,
133
+ closable: false,
134
+ transitionOptions: '200ms cubic-bezier(0, 0, 1, 1)',
135
+ inputValues: {},
136
+ };
137
+ open(component, config = {}) {
138
+ config = { ...this.defauiltConfig, ...config };
139
+ this.hostRef = createComponent(DynamicDrawerHost, {
140
+ environmentInjector: this.env,
141
+ });
142
+ this.appRef.attachView(this.hostRef.hostView);
143
+ this.doc.body.appendChild(this.hostRef.location.nativeElement);
144
+ // auto-clean if app destroyed (SSR/hot-reload safety)
145
+ this.destroyRef.onDestroy(() => {
146
+ this.appRef.detachView(this.hostRef.hostView);
147
+ this.hostRef.destroy();
148
+ this.hostRef = undefined;
149
+ });
150
+ const ref = new DynamicDialogRef();
151
+ this.hostRef.instance.connect({
152
+ component,
153
+ config,
154
+ parent: this.rootInjector,
155
+ ref,
156
+ });
157
+ return ref;
158
+ }
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DrawerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
160
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DrawerService, providedIn: 'root' });
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DrawerService, decorators: [{
163
+ type: Injectable,
164
+ args: [{ providedIn: 'root' }]
165
+ }] });
166
+
167
+ /**
168
+ * Generated bundle index. Do not edit.
169
+ */
170
+
171
+ export { DrawerService, DynamicDrawerConfig, DynamicDrawerHost };
172
+ //# sourceMappingURL=masterteam-components-dynamic-drawer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-dynamic-drawer.mjs","sources":["../../../../packages/masterteam/components/dynamic-drawer/dynamic-drawer-host.ts","../../../../packages/masterteam/components/dynamic-drawer/dynamic-drawer.ts","../../../../packages/masterteam/components/dynamic-drawer/masterteam-components-dynamic-drawer.ts"],"sourcesContent":["import { DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { DrawerModule } from 'primeng/drawer';\nimport {\n Component,\n Injector,\n Input,\n signal,\n InjectionToken,\n model,\n} from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\n\nexport const DynamicDrawerConfig = new InjectionToken<any>(\n 'DynamicDrawerConfig',\n);\nimport { Button } from '@masterteam/components/button';\n\n@Component({\n selector: 'mt-dynamic-drawer-host',\n standalone: true,\n imports: [NgComponentOutlet, DrawerModule, Button],\n template: `\n <p-drawer\n [(visible)]=\"visible\"\n [closable]=\"cfg()?.closable\"\n [position]=\"cfg()?.position\"\n [fullScreen]=\"cfg()?.fullScreen\"\n [modal]=\"cfg()?.modal\"\n [closeOnEscape]=\"cfg()?.closeOnEscape\"\n [dismissible]=\"cfg()?.dismissible\"\n [appendTo]=\"cfg()?.appendTo\"\n [transitionOptions]=\"cfg()?.transitionOptions\"\n [styleClass]=\"cfg()?.styleClass + ' mt-drawer'\"\n >\n <ng-template #header>\n <div\n class=\"flex items-center justify-between px-5 w-full py-3 border-b border-surface\"\n >\n <h3 class=\"text-xl font-semibold\">{{ cfg()?.header }}</h3>\n <mt-button\n (onClick)=\"handleHide()\"\n variant=\"outlined\"\n styleClass=\"!bg-white\"\n icon=\"general.x-close\"\n severity=\"secondary\"\n >\n </mt-button>\n </div>\n </ng-template>\n\n <ng-container\n *ngComponentOutlet=\"cmp(); injector: childInjector; inputs: cmpInputs()\"\n >\n </ng-container>\n </p-drawer>\n `,\n})\nexport class DynamicDrawerHost {\n public visible = model<boolean>(false);\n cmp = signal<any>(null);\n cfg = signal<any>({});\n cmpInputs = signal<Record<string, unknown>>({});\n childInjector!: Injector;\n private ref?: DynamicDialogRef;\n\n @Input({ required: true })\n connect(opts: {\n component: any;\n config?: any;\n parent: Injector;\n ref: DynamicDialogRef;\n }) {\n this.cmp.set(opts.component);\n this.cfg.set(opts.config ?? {});\n this.cmpInputs.set(opts.config?.inputValues ?? {});\n this.ref = opts.ref;\n this.childInjector = Injector.create({\n parent: opts.parent,\n providers: [\n { provide: DynamicDrawerConfig, useValue: opts.config ?? {} },\n { provide: DynamicDialogRef, useValue: opts.ref },\n ],\n });\n opts.ref.onClose.subscribe(() => {\n this.visible.set(false);\n });\n this.visible.set(true);\n }\n\n handleHide(data = null) {\n this.visible.set(false);\n this.ref?.close(data);\n }\n}\n","// dynamic-drawer.service.ts\nimport {\n Injectable,\n Type,\n createComponent,\n EnvironmentInjector,\n ApplicationRef,\n Injector,\n DestroyRef,\n inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DynamicDrawerHost } from './dynamic-drawer-host';\nimport { DynamicDialogRef } from 'primeng/dynamicdialog';\n\nexport interface DynamicDrawerConfigInterface {\n header?: string;\n position?: string;\n data?: any;\n fullScreen?: boolean;\n modal?: boolean;\n closable?: boolean;\n closeOnEscape?: boolean;\n dismissible?: boolean;\n appendTo?: any;\n transitionOptions?: string;\n styleClass?: string;\n inputValues?: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DrawerService {\n private appRef = inject(ApplicationRef);\n private env = inject(EnvironmentInjector);\n private rootInjector = inject(Injector);\n private destroyRef = inject(DestroyRef);\n private doc = inject(DOCUMENT);\n private hostRef?: ReturnType<typeof createComponent<DynamicDrawerHost>>;\n defauiltConfig: DynamicDrawerConfigInterface = {\n position: 'right',\n modal: true,\n closable: false,\n transitionOptions: '200ms cubic-bezier(0, 0, 1, 1)',\n inputValues: {},\n };\n open<T>(\n component: Type<any>,\n config: DynamicDrawerConfigInterface = {},\n ): DynamicDialogRef<T> {\n config = { ...this.defauiltConfig, ...config };\n this.hostRef = createComponent(DynamicDrawerHost, {\n environmentInjector: this.env,\n });\n\n this.appRef.attachView(this.hostRef.hostView);\n this.doc.body.appendChild(this.hostRef.location.nativeElement);\n\n // auto-clean if app destroyed (SSR/hot-reload safety)\n this.destroyRef.onDestroy(() => {\n this.appRef.detachView(this.hostRef!.hostView);\n this.hostRef!.destroy();\n this.hostRef = undefined;\n });\n\n const ref = new DynamicDialogRef<T>();\n this.hostRef.instance.connect({\n component,\n config,\n parent: this.rootInjector,\n ref,\n });\n\n return ref;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { DrawerService } from '@masterteam/components/dynamic-drawer';
2
+ import { DialogService } from '@masterteam/components/dialog';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Injectable } from '@angular/core';
5
+ import { Directionality } from '@angular/cdk/bidi';
6
+
7
+ class ModalService {
8
+ drawerService = inject(DrawerService);
9
+ dialogService = inject(DialogService);
10
+ dir = inject(Directionality, { optional: true });
11
+ footerClass = 'mt-modal-footer';
12
+ contentClass = 'mt-modal-content';
13
+ modalConfig;
14
+ openModal(component, modalType, config) {
15
+ let ref;
16
+ if (modalType === 'drawer') {
17
+ config.position = this.handelStartEndPosition(config.position);
18
+ console.log('Opening drawer with config:', config);
19
+ ref = this.drawerService.open(component, config);
20
+ }
21
+ else {
22
+ ref = this.dialogService.open(component, config);
23
+ }
24
+ return ref;
25
+ }
26
+ handelStartEndPosition(position) {
27
+ if (position === 'start') {
28
+ return this.dir?.value === 'rtl' ? 'right' : 'left';
29
+ }
30
+ else if (position === 'end') {
31
+ return this.dir?.value === 'rtl' ? 'left' : 'right';
32
+ }
33
+ else {
34
+ return position || 'left';
35
+ }
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ModalService, providedIn: 'root' });
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ModalService, decorators: [{
41
+ type: Injectable,
42
+ args: [{ providedIn: 'root' }]
43
+ }] });
44
+
45
+ /**
46
+ * Generated bundle index. Do not edit.
47
+ */
48
+
49
+ export { ModalService };
50
+ //# sourceMappingURL=masterteam-components-modal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterteam-components-modal.mjs","sources":["../../../../packages/masterteam/components/modal/modal.ts","../../../../packages/masterteam/components/modal/masterteam-components-modal.ts"],"sourcesContent":["import {\n DynamicDrawerConfigInterface,\n DrawerService,\n} from '@masterteam/components/dynamic-drawer';\nimport {\n DynamicDialogConfig,\n DialogService,\n} from '@masterteam/components/dialog';\nimport { inject, Injectable } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi'; // Import from Angular CDK\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n readonly drawerService: DrawerService = inject(DrawerService);\n readonly dialogService: DialogService = inject(DialogService);\n private dir = inject(Directionality, { optional: true });\n\n footerClass: string = 'mt-modal-footer';\n contentClass: string = 'mt-modal-content';\n modalConfig: any;\n\n openModal(\n component: any,\n modalType: 'drawer' | 'dialog',\n config: DynamicDialogConfig | DynamicDrawerConfigInterface,\n ) {\n let ref: any;\n if (modalType === 'drawer') {\n config.position = this.handelStartEndPosition(config.position);\n console.log('Opening drawer with config:', config);\n ref = this.drawerService.open(component, config);\n } else {\n ref = this.dialogService.open(component, config);\n }\n\n return ref;\n }\n\n handelStartEndPosition(position: string | undefined) {\n if (position === 'start') {\n return this.dir?.value === 'rtl' ? 'right' : 'left';\n } else if (position === 'end') {\n return this.dir?.value === 'rtl' ? 'left' : 'right';\n } else {\n return position || 'left';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAYa,YAAY,CAAA;AACd,IAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC;AACpD,IAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC;IACrD,GAAG,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAExD,WAAW,GAAW,iBAAiB;IACvC,YAAY,GAAW,kBAAkB;AACzC,IAAA,WAAW;AAEX,IAAA,SAAS,CACP,SAAc,EACd,SAA8B,EAC9B,MAA0D,EAAA;AAE1D,QAAA,IAAI,GAAQ;AACZ,QAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9D,YAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC;YAClD,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAClD;aAAO;YACL,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAClD;AAEA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,sBAAsB,CAAC,QAA4B,EAAA;AACjD,QAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM;QACrD;AAAO,aAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO;QACrD;aAAO;YACL,OAAO,QAAQ,IAAI,MAAM;QAC3B;IACF;uGAlCW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACXlC;;AAEG;;;;"}
@@ -696,11 +696,13 @@ class ColorPickerFieldConfig extends BaseFieldConfig {
696
696
  format;
697
697
  inline;
698
698
  appendTo;
699
+ variant;
699
700
  constructor(config) {
700
701
  super({ ...config, type: 'color-picker' });
701
702
  this.format = config.format || 'hex';
702
703
  this.inline = config.inline || false;
703
704
  this.appendTo = config.appendTo || 'body';
705
+ this.variant = config.variant || 'outlined';
704
706
  }
705
707
  }
706
708
  class IconFieldConfig extends BaseFieldConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/povide-messages.ts","../../../../packages/masterteam/components/src/lib/utils/inputs.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\nexport function generateTailwindPalette(\n primaryColor500: string,\n): TailwindColorPalette {\n const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n\n const palette: TailwindColorPalette = {\n '500': primaryColor500,\n };\n\n // Define steps for lighter shades (50 - 400)\n const lightnessStepsLighter: { [key: string]: number } = {\n '50': 95,\n '100': 90,\n '200': 80,\n '300': 70,\n '400': 60,\n };\n\n const saturationReductionsLighter: { [key: string]: number } = {\n '50': 40, // More desaturated\n '100': 30,\n '200': 20,\n '300': 10,\n '400': 5, // Slightly desaturated\n };\n\n for (const shade in lightnessStepsLighter) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n const newL: number = lightnessStepsLighter[shade];\n // Ensure saturation doesn't go below 0\n const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Define steps for darker shades (600 - 950)\n const lightnessStepsDarker: { [key: string]: number } = {\n '600': 45,\n '700': 35,\n '800': 25,\n '900': 15,\n '950': 8, // More aggressive darkening for 950\n };\n\n const saturationIncreasesDarker: { [key: string]: number } = {\n '600': 5,\n '700': 10,\n '800': 15,\n '900': 20,\n '950': 25, // Can increase saturation for darker shades\n };\n\n for (const shade in lightnessStepsDarker) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n const newL: number = lightnessStepsDarker[shade];\n // Ensure saturation doesn't exceed 100\n const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Sort the keys numerically to ensure consistent order\n const sortedPalette: TailwindColorPalette = {};\n Object.keys(palette)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((key: string) => {\n sortedPalette[key] = palette[key];\n });\n\n return sortedPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset, updatePreset } from '@primeuix/themes';\nimport { ToastTokenSections } from '@primeuix/themes/types/toast';\nimport { EnvironmentProviders } from '@angular/core';\n\nconst toastStyle: ToastTokenSections.Success = {\n // borderColor: '{surface.300}',\n background: '{content.background}',\n // color: '{surface.600}',\n // closeButton: {\n // hoverBackground: '{surface.100}',\n // focusRing: {\n // color: '{surface.600}',\n // },\n // },\n};\n\nexport function changePrimaryColor(color: string): void {\n updatePreset({\n semantic: {\n primary: generateTailwindPalette(color || '#334dff'),\n },\n });\n}\n\nconst MTPreset = (primaryColor?: string) =>\n definePreset(Aura, {\n options: {\n prefix: 'mt',\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n primary: generateTailwindPalette(primaryColor || '#334dff'),\n content: {\n borderRadius: '{border.radius.lg}',\n },\n formField: {\n borderRadius: '{border.radius.lg}',\n },\n },\n components: {\n dialog: {\n header: {\n padding: '0',\n },\n content: {\n padding: '0',\n },\n footer: {\n padding: '0',\n },\n },\n toast: {\n root: {\n borderRadius: '{border.radius.xl}',\n },\n colorScheme: {\n light: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n dark: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n },\n },\n togglebutton: {\n root: {\n padding: '1px',\n },\n colorScheme: {\n light: {\n root: {\n checkedColor: '{primary.500}',\n },\n },\n dark: {\n root: {\n checkedColor: '{primary.400}',\n },\n },\n },\n },\n selectbutton: {\n root: {\n borderRadius: '{border.radius.lg}',\n },\n },\n\n paginator: {\n root: {\n borderRadius: '{border.radius.lg}',\n padding: '0 .5rem',\n },\n navButton: {\n borderRadius: '0',\n },\n\n colorScheme: {\n light: {\n navButton: {\n color: '{surface.600}',\n hoverBackground: '#fff',\n selectedBackground: '{surface.200}',\n selectedColor: '{surface.600}',\n focusRing: {\n color: '{surface.200}',\n },\n },\n },\n dark: {\n navButton: {\n color: '{surface.200}',\n hoverBackground: 'transparent',\n selectedBackground: 'transparent',\n selectedColor: '#fff',\n focusRing: {\n color: '#fff',\n },\n },\n },\n },\n\n css: () => `\n .p-paginator {\n --p-paginator-gap: 0;\n --p-paginator-nav-button-width: 2.2rem;\n --p-paginator-nav-button-height: 2.2rem;\n width: fit-content;\n border: 1px solid var(--p-surface-200);\n overflow: hidden;\n font-size: .95rem;\n }\n\n .p-paginator-pages button,\n .p-paginator-prev,\n .p-paginator-next {\n border-color: var(--p-surface-200);\n }\n\n .p-paginator-pages button {\n border-style: solid;\n border-width: 0 0 0 1px;\n }\n\n .p-paginator-pages button:first-child {\n border-left: none;\n }\n\n .p-paginator-prev {\n border-right: 1px solid var(--p-surface-200);\n }\n\n .p-paginator-next {\n border-left: 1px solid var(--p-surface-200);\n }\n\n .p-paginator .p-select {\n border: 0;\n background: transparent;\n }\n\n .p-paginator .p-select .p-select-label {\n padding: 0;\n }\n\n /* Dark Mode Styles */\n .dark .p-paginator {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-pages button,\n .dark .p-paginator-prev,\n .dark .p-paginator-next {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-prev {\n border-right-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-next {\n border-left-color: var(--p-surface-500);\n }\n `,\n },\n\n toggleswitch: {\n root: {\n width: '2.5rem',\n height: '1.4rem',\n },\n },\n\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n });\n\nexport function provideMTComponents(\n primaryColor?: string,\n): EnvironmentProviders {\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset(primaryColor),\n options: {\n darkModeSelector: '.dark',\n },\n },\n });\n}\n","import { MessageService } from 'primeng/api';\n\nexport function provideMTMessages() {\n return MessageService;\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function isInvalid(control: AbstractControl | null) {\n if (!control) return false;\n return control && control?.invalid && control?.touched;\n}\n","import { HttpContext } from '@angular/common/http';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'checkbox'\n | 'icon-field'\n | 'color-picker'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport type FieldRelationAction = 'enable' | 'disable' | 'show' | 'hide';\n\nexport interface FieldRelationConfig {\n key: string;\n value: any;\n action: FieldRelationAction;\n}\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n\n defaultValue?: any;\n\n customTemplate: string;\n relations: FieldRelationConfig[];\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n defaultValue?: any;\n relations?: FieldRelationConfig[];\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.defaultValue = config.defaultValue;\n this.relations = config.relations || [];\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: string;\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n }\n}\n\nexport class RadioButtonFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n },\n ) {\n super({ ...config, type: 'radio-button' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n }\n}\nexport class RadioCardsFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n size: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n },\n ) {\n super({ ...config, type: 'radio-cards' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || 'small';\n }\n}\nexport class UserSearchFieldConfig extends BaseFieldConfig {\n optionLabel: string;\n optionValue: string;\n size: string;\n apiUrl: string;\n context: HttpContext | undefined;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n hint?: string;\n apiUrl?: string;\n context?: HttpContext | undefined;\n placeholder?: string;\n },\n ) {\n super({ ...config, type: 'user-search' });\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || '';\n this.hint = config.hint || '';\n this.context = config.context || undefined;\n this.apiUrl = config.apiUrl || '';\n this.placeholder = config.placeholder || 'Search';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\nexport class ToggleFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'toggle' });\n }\n}\nexport class EditorFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'editor-field' });\n }\n}\n\nexport class ColorPickerFieldConfig extends BaseFieldConfig {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n },\n ) {\n super({ ...config, type: 'color-picker' });\n this.format = config.format || 'hex';\n this.inline = config.inline || false;\n this.appendTo = config.appendTo || 'body';\n }\n}\n\nexport class IconFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {}) {\n super({ ...config, type: 'icon-field' });\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\nexport interface FieldState {\n hidden: boolean;\n disabled: boolean;\n initialHidden: boolean;\n initialDisabled: boolean;\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/config/povide-messages';\nexport * from './lib/utils/theme';\nexport * from './lib/utils/inputs';\nexport * from './lib/config/dynamic-form.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/povide-messages.ts","../../../../packages/masterteam/components/src/lib/utils/inputs.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\nexport function generateTailwindPalette(\n primaryColor500: string,\n): TailwindColorPalette {\n const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n\n const palette: TailwindColorPalette = {\n '500': primaryColor500,\n };\n\n // Define steps for lighter shades (50 - 400)\n const lightnessStepsLighter: { [key: string]: number } = {\n '50': 95,\n '100': 90,\n '200': 80,\n '300': 70,\n '400': 60,\n };\n\n const saturationReductionsLighter: { [key: string]: number } = {\n '50': 40, // More desaturated\n '100': 30,\n '200': 20,\n '300': 10,\n '400': 5, // Slightly desaturated\n };\n\n for (const shade in lightnessStepsLighter) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n const newL: number = lightnessStepsLighter[shade];\n // Ensure saturation doesn't go below 0\n const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Define steps for darker shades (600 - 950)\n const lightnessStepsDarker: { [key: string]: number } = {\n '600': 45,\n '700': 35,\n '800': 25,\n '900': 15,\n '950': 8, // More aggressive darkening for 950\n };\n\n const saturationIncreasesDarker: { [key: string]: number } = {\n '600': 5,\n '700': 10,\n '800': 15,\n '900': 20,\n '950': 25, // Can increase saturation for darker shades\n };\n\n for (const shade in lightnessStepsDarker) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n const newL: number = lightnessStepsDarker[shade];\n // Ensure saturation doesn't exceed 100\n const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Sort the keys numerically to ensure consistent order\n const sortedPalette: TailwindColorPalette = {};\n Object.keys(palette)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((key: string) => {\n sortedPalette[key] = palette[key];\n });\n\n return sortedPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset, updatePreset } from '@primeuix/themes';\nimport { ToastTokenSections } from '@primeuix/themes/types/toast';\nimport { EnvironmentProviders } from '@angular/core';\n\nconst toastStyle: ToastTokenSections.Success = {\n // borderColor: '{surface.300}',\n background: '{content.background}',\n // color: '{surface.600}',\n // closeButton: {\n // hoverBackground: '{surface.100}',\n // focusRing: {\n // color: '{surface.600}',\n // },\n // },\n};\n\nexport function changePrimaryColor(color: string): void {\n updatePreset({\n semantic: {\n primary: generateTailwindPalette(color || '#334dff'),\n },\n });\n}\n\nconst MTPreset = (primaryColor?: string) =>\n definePreset(Aura, {\n options: {\n prefix: 'mt',\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n primary: generateTailwindPalette(primaryColor || '#334dff'),\n content: {\n borderRadius: '{border.radius.lg}',\n },\n formField: {\n borderRadius: '{border.radius.lg}',\n },\n },\n components: {\n dialog: {\n header: {\n padding: '0',\n },\n content: {\n padding: '0',\n },\n footer: {\n padding: '0',\n },\n },\n toast: {\n root: {\n borderRadius: '{border.radius.xl}',\n },\n colorScheme: {\n light: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n dark: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n },\n },\n togglebutton: {\n root: {\n padding: '1px',\n },\n colorScheme: {\n light: {\n root: {\n checkedColor: '{primary.500}',\n },\n },\n dark: {\n root: {\n checkedColor: '{primary.400}',\n },\n },\n },\n },\n selectbutton: {\n root: {\n borderRadius: '{border.radius.lg}',\n },\n },\n\n paginator: {\n root: {\n borderRadius: '{border.radius.lg}',\n padding: '0 .5rem',\n },\n navButton: {\n borderRadius: '0',\n },\n\n colorScheme: {\n light: {\n navButton: {\n color: '{surface.600}',\n hoverBackground: '#fff',\n selectedBackground: '{surface.200}',\n selectedColor: '{surface.600}',\n focusRing: {\n color: '{surface.200}',\n },\n },\n },\n dark: {\n navButton: {\n color: '{surface.200}',\n hoverBackground: 'transparent',\n selectedBackground: 'transparent',\n selectedColor: '#fff',\n focusRing: {\n color: '#fff',\n },\n },\n },\n },\n\n css: () => `\n .p-paginator {\n --p-paginator-gap: 0;\n --p-paginator-nav-button-width: 2.2rem;\n --p-paginator-nav-button-height: 2.2rem;\n width: fit-content;\n border: 1px solid var(--p-surface-200);\n overflow: hidden;\n font-size: .95rem;\n }\n\n .p-paginator-pages button,\n .p-paginator-prev,\n .p-paginator-next {\n border-color: var(--p-surface-200);\n }\n\n .p-paginator-pages button {\n border-style: solid;\n border-width: 0 0 0 1px;\n }\n\n .p-paginator-pages button:first-child {\n border-left: none;\n }\n\n .p-paginator-prev {\n border-right: 1px solid var(--p-surface-200);\n }\n\n .p-paginator-next {\n border-left: 1px solid var(--p-surface-200);\n }\n\n .p-paginator .p-select {\n border: 0;\n background: transparent;\n }\n\n .p-paginator .p-select .p-select-label {\n padding: 0;\n }\n\n /* Dark Mode Styles */\n .dark .p-paginator {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-pages button,\n .dark .p-paginator-prev,\n .dark .p-paginator-next {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-prev {\n border-right-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-next {\n border-left-color: var(--p-surface-500);\n }\n `,\n },\n\n toggleswitch: {\n root: {\n width: '2.5rem',\n height: '1.4rem',\n },\n },\n\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n });\n\nexport function provideMTComponents(\n primaryColor?: string,\n): EnvironmentProviders {\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset(primaryColor),\n options: {\n darkModeSelector: '.dark',\n },\n },\n });\n}\n","import { MessageService } from 'primeng/api';\n\nexport function provideMTMessages() {\n return MessageService;\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function isInvalid(control: AbstractControl | null) {\n if (!control) return false;\n return control && control?.invalid && control?.touched;\n}\n","import { HttpContext } from '@angular/common/http';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'checkbox'\n | 'icon-field'\n | 'color-picker'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport type FieldRelationAction = 'enable' | 'disable' | 'show' | 'hide';\n\nexport interface FieldRelationConfig {\n key: string;\n value: any;\n action: FieldRelationAction;\n}\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n\n defaultValue?: any;\n\n customTemplate: string;\n relations: FieldRelationConfig[];\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n defaultValue?: any;\n relations?: FieldRelationConfig[];\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.defaultValue = config.defaultValue;\n this.relations = config.relations || [];\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: string;\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n }\n}\n\nexport class RadioButtonFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n },\n ) {\n super({ ...config, type: 'radio-button' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n }\n}\nexport class RadioCardsFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n size: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n },\n ) {\n super({ ...config, type: 'radio-cards' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || 'small';\n }\n}\nexport class UserSearchFieldConfig extends BaseFieldConfig {\n optionLabel: string;\n optionValue: string;\n size: string;\n apiUrl: string;\n context: HttpContext | undefined;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n optionLabel?: string;\n optionValue?: string;\n size?: string;\n hint?: string;\n apiUrl?: string;\n context?: HttpContext | undefined;\n placeholder?: string;\n },\n ) {\n super({ ...config, type: 'user-search' });\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.size = config.size || '';\n this.hint = config.hint || '';\n this.context = config.context || undefined;\n this.apiUrl = config.apiUrl || '';\n this.placeholder = config.placeholder || 'Search';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\nexport class ToggleFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'toggle' });\n }\n}\nexport class EditorFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'>) {\n super({ ...config, type: 'editor-field' });\n }\n}\n\nexport class ColorPickerFieldConfig extends BaseFieldConfig {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n variant?: 'outlined' | 'filled';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n variant?: 'outlined' | 'filled';\n },\n ) {\n super({ ...config, type: 'color-picker' });\n this.format = config.format || 'hex';\n this.inline = config.inline || false;\n this.appendTo = config.appendTo || 'body';\n this.variant = config.variant || 'outlined';\n }\n}\n\nexport class IconFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {}) {\n super({ ...config, type: 'icon-field' });\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\nexport interface FieldState {\n hidden: boolean;\n disabled: boolean;\n initialHidden: boolean;\n initialDisabled: boolean;\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/config/povide-messages';\nexport * from './lib/utils/theme';\nexport * from './lib/utils/inputs';\nexport * from './lib/config/dynamic-form.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -294,10 +294,12 @@ declare class ColorPickerFieldConfig extends BaseFieldConfig {
294
294
  format?: 'hex' | 'rgb' | 'hsb';
295
295
  inline?: boolean;
296
296
  appendTo?: any;
297
+ variant?: 'outlined' | 'filled';
297
298
  constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {
298
299
  format?: 'hex' | 'rgb' | 'hsb';
299
300
  inline?: boolean;
300
301
  appendTo?: any;
302
+ variant?: 'outlined' | 'filled';
301
303
  });
302
304
  }
303
305
  declare class IconFieldConfig extends BaseFieldConfig {
@@ -0,0 +1,18 @@
1
+ import { DrawerService, DynamicDrawerConfigInterface } from '@masterteam/components/dynamic-drawer';
2
+ import { DialogService, DynamicDialogConfig } from '@masterteam/components/dialog';
3
+ import * as i0 from '@angular/core';
4
+
5
+ declare class ModalService {
6
+ readonly drawerService: DrawerService;
7
+ readonly dialogService: DialogService;
8
+ private dir;
9
+ footerClass: string;
10
+ contentClass: string;
11
+ modalConfig: any;
12
+ openModal(component: any, modalType: 'drawer' | 'dialog', config: DynamicDialogConfig | DynamicDrawerConfigInterface): any;
13
+ handelStartEndPosition(position: string | undefined): string;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
16
+ }
17
+
18
+ export { ModalService };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/components",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "publishConfig": {
5
5
  "directory": ".",
6
6
  "linkDirectory": false,
@@ -39,6 +39,14 @@
39
39
  "types": "./index.d.ts",
40
40
  "default": "./fesm2022/masterteam-components.mjs"
41
41
  },
42
+ "./avatar": {
43
+ "types": "./avatar/index.d.ts",
44
+ "default": "./fesm2022/masterteam-components-avatar.mjs"
45
+ },
46
+ "./avatar-text": {
47
+ "types": "./avatar-text/index.d.ts",
48
+ "default": "./fesm2022/masterteam-components-avatar-text.mjs"
49
+ },
42
50
  "./breadcrumb": {
43
51
  "types": "./breadcrumb/index.d.ts",
44
52
  "default": "./fesm2022/masterteam-components-breadcrumb.mjs"
@@ -55,70 +63,70 @@
55
63
  "types": "./button-group/index.d.ts",
56
64
  "default": "./fesm2022/masterteam-components-button-group.mjs"
57
65
  },
58
- "./avatar": {
59
- "types": "./avatar/index.d.ts",
60
- "default": "./fesm2022/masterteam-components-avatar.mjs"
61
- },
62
- "./avatar-text": {
63
- "types": "./avatar-text/index.d.ts",
64
- "default": "./fesm2022/masterteam-components-avatar-text.mjs"
65
- },
66
66
  "./checkbox-field": {
67
67
  "types": "./checkbox-field/index.d.ts",
68
68
  "default": "./fesm2022/masterteam-components-checkbox-field.mjs"
69
69
  },
70
- "./chip": {
71
- "types": "./chip/index.d.ts",
72
- "default": "./fesm2022/masterteam-components-chip.mjs"
73
- },
74
70
  "./color-picker-field": {
75
71
  "types": "./color-picker-field/index.d.ts",
76
72
  "default": "./fesm2022/masterteam-components-color-picker-field.mjs"
77
73
  },
78
- "./dialog": {
79
- "types": "./dialog/index.d.ts",
80
- "default": "./fesm2022/masterteam-components-dialog.mjs"
74
+ "./chip": {
75
+ "types": "./chip/index.d.ts",
76
+ "default": "./fesm2022/masterteam-components-chip.mjs"
81
77
  },
82
78
  "./date-field": {
83
79
  "types": "./date-field/index.d.ts",
84
80
  "default": "./fesm2022/masterteam-components-date-field.mjs"
85
81
  },
86
- "./drawer": {
87
- "types": "./drawer/index.d.ts",
88
- "default": "./fesm2022/masterteam-components-drawer.mjs"
82
+ "./dialog": {
83
+ "types": "./dialog/index.d.ts",
84
+ "default": "./fesm2022/masterteam-components-dialog.mjs"
89
85
  },
90
86
  "./editor-field": {
91
87
  "types": "./editor-field/index.d.ts",
92
88
  "default": "./fesm2022/masterteam-components-editor-field.mjs"
93
89
  },
90
+ "./dynamic-drawer": {
91
+ "types": "./dynamic-drawer/index.d.ts",
92
+ "default": "./fesm2022/masterteam-components-dynamic-drawer.mjs"
93
+ },
94
+ "./drawer": {
95
+ "types": "./drawer/index.d.ts",
96
+ "default": "./fesm2022/masterteam-components-drawer.mjs"
97
+ },
94
98
  "./field-validation": {
95
99
  "types": "./field-validation/index.d.ts",
96
100
  "default": "./fesm2022/masterteam-components-field-validation.mjs"
97
101
  },
98
- "./icon-field": {
99
- "types": "./icon-field/index.d.ts",
100
- "default": "./fesm2022/masterteam-components-icon-field.mjs"
102
+ "./list": {
103
+ "types": "./list/index.d.ts",
104
+ "default": "./fesm2022/masterteam-components-list.mjs"
101
105
  },
102
106
  "./formula-builder": {
103
107
  "types": "./formula-builder/index.d.ts",
104
108
  "default": "./fesm2022/masterteam-components-formula-builder.mjs"
105
109
  },
106
- "./list": {
107
- "types": "./list/index.d.ts",
108
- "default": "./fesm2022/masterteam-components-list.mjs"
110
+ "./menu": {
111
+ "types": "./menu/index.d.ts",
112
+ "default": "./fesm2022/masterteam-components-menu.mjs"
113
+ },
114
+ "./icon-field": {
115
+ "types": "./icon-field/index.d.ts",
116
+ "default": "./fesm2022/masterteam-components-icon-field.mjs"
109
117
  },
110
118
  "./module-summary-card": {
111
119
  "types": "./module-summary-card/index.d.ts",
112
120
  "default": "./fesm2022/masterteam-components-module-summary-card.mjs"
113
121
  },
122
+ "./modal": {
123
+ "types": "./modal/index.d.ts",
124
+ "default": "./fesm2022/masterteam-components-modal.mjs"
125
+ },
114
126
  "./multi-select-field": {
115
127
  "types": "./multi-select-field/index.d.ts",
116
128
  "default": "./fesm2022/masterteam-components-multi-select-field.mjs"
117
129
  },
118
- "./menu": {
119
- "types": "./menu/index.d.ts",
120
- "default": "./fesm2022/masterteam-components-menu.mjs"
121
- },
122
130
  "./number-field": {
123
131
  "types": "./number-field/index.d.ts",
124
132
  "default": "./fesm2022/masterteam-components-number-field.mjs"
@@ -139,14 +147,14 @@
139
147
  "types": "./radio-cards-field/index.d.ts",
140
148
  "default": "./fesm2022/masterteam-components-radio-cards-field.mjs"
141
149
  },
142
- "./select-field": {
143
- "types": "./select-field/index.d.ts",
144
- "default": "./fesm2022/masterteam-components-select-field.mjs"
145
- },
146
150
  "./slider-field": {
147
151
  "types": "./slider-field/index.d.ts",
148
152
  "default": "./fesm2022/masterteam-components-slider-field.mjs"
149
153
  },
154
+ "./select-field": {
155
+ "types": "./select-field/index.d.ts",
156
+ "default": "./fesm2022/masterteam-components-select-field.mjs"
157
+ },
150
158
  "./table": {
151
159
  "types": "./table/index.d.ts",
152
160
  "default": "./fesm2022/masterteam-components-table.mjs"
@@ -155,14 +163,14 @@
155
163
  "types": "./tabs/index.d.ts",
156
164
  "default": "./fesm2022/masterteam-components-tabs.mjs"
157
165
  },
158
- "./textarea-field": {
159
- "types": "./textarea-field/index.d.ts",
160
- "default": "./fesm2022/masterteam-components-textarea-field.mjs"
161
- },
162
166
  "./text-field": {
163
167
  "types": "./text-field/index.d.ts",
164
168
  "default": "./fesm2022/masterteam-components-text-field.mjs"
165
169
  },
170
+ "./textarea-field": {
171
+ "types": "./textarea-field/index.d.ts",
172
+ "default": "./fesm2022/masterteam-components-textarea-field.mjs"
173
+ },
166
174
  "./toast": {
167
175
  "types": "./toast/index.d.ts",
168
176
  "default": "./fesm2022/masterteam-components-toast.mjs"