@epam/ai-dial-ui-kit 0.2.0-rc.2 → 0.2.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/dial-ui-kit.cjs.js +1 -1
  2. package/dist/dial-ui-kit.es.js +896 -310
  3. package/dist/index.css +2 -2
  4. package/dist/src/components/Alert/Alert.d.ts +6 -6
  5. package/dist/src/components/Alert/constants.d.ts +1 -1
  6. package/dist/src/components/Button/Button.d.ts +5 -2
  7. package/dist/src/components/Button/constants.d.ts +2 -0
  8. package/dist/src/components/Checkbox/Checkbox.d.ts +33 -0
  9. package/dist/src/components/CloseButton/CloseButton.d.ts +26 -0
  10. package/dist/src/components/ConfirmationPopup/ConfirmationPopup.d.ts +53 -0
  11. package/dist/src/components/ConfirmationPopup/constants.d.ts +11 -0
  12. package/dist/src/components/Input/Input.d.ts +4 -4
  13. package/dist/src/components/InputField/InputField.d.ts +4 -4
  14. package/dist/src/components/Loader/Loader.d.ts +32 -0
  15. package/dist/src/components/Loader/constants.d.ts +2 -0
  16. package/dist/src/components/NoDataContent/NoDataContent.d.ts +22 -0
  17. package/dist/src/components/PasswordInput/Icons/HideIcon.d.ts +16 -0
  18. package/dist/src/components/PasswordInput/Icons/ShowIcon.d.ts +16 -0
  19. package/dist/src/components/PasswordInput/PasswordInput.d.ts +24 -0
  20. package/dist/src/components/PasswordInput/PasswordInputField.d.ts +29 -0
  21. package/dist/src/components/Popup/Popup.d.ts +52 -0
  22. package/dist/src/components/Popup/constants.d.ts +6 -0
  23. package/dist/src/components/RadioButton/RadioButton.d.ts +46 -0
  24. package/dist/src/components/RadioGroup/RadioGroup.d.ts +51 -0
  25. package/dist/src/components/RadioGroup/constants.d.ts +5 -0
  26. package/dist/src/components/Search/Search.d.ts +42 -0
  27. package/dist/src/components/Search/constants.d.ts +14 -0
  28. package/dist/src/components/Steps/Step.d.ts +9 -0
  29. package/dist/src/components/Steps/Steps.d.ts +24 -0
  30. package/dist/src/components/Steps/tests/Steps.test.d.ts +1 -0
  31. package/dist/src/components/Steps/utils.d.ts +3 -0
  32. package/dist/src/components/Switch/Switch.d.ts +1 -1
  33. package/dist/src/components/TextAreaField/TextAreaField.d.ts +2 -2
  34. package/dist/src/constants/icon.d.ts +5 -0
  35. package/dist/src/index.d.ts +19 -1
  36. package/dist/src/models/field-control-props.d.ts +2 -2
  37. package/dist/src/models/step.d.ts +9 -0
  38. package/dist/src/types/button.d.ts +6 -0
  39. package/dist/src/types/confirmation-popup.d.ts +4 -0
  40. package/dist/src/types/popup.d.ts +5 -0
  41. package/dist/src/types/radio-group.d.ts +4 -0
  42. package/dist/src/types/search.d.ts +4 -0
  43. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .dial-h1{font-weight:600}.dial-h1,.dial-h2{font-size:20px;line-height:24px}.dial-h2{font-weight:400}.dial-h3{font-weight:600;line-height:18px}.dial-body,.dial-h3{font-size:16px}.dial-body{font-weight:400;line-height:28px}.dial-small{font-weight:400}.dial-small,.dial-small-semi{font-size:14px;line-height:16px}.dial-small-semi{font-weight:600}.dial-small-medium{font-weight:400;font-size:14px;line-height:16px}.dial-small-150{font-weight:400;font-size:14px;line-height:21px}.dial-tiny{line-height:14px}.dial-tiny,.dial-tiny-150{font-weight:400;font-size:12px}.dial-tiny-150{line-height:18px}.dial-caption{font-weight:400;font-size:10px;line-height:12px}h1{font-weight:600}h1,h2{font-size:20px;line-height:24px}h2{font-weight:400}h3{font-weight:600;font-size:16px;line-height:18px}.dial-base-button{display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px}.dial-base-button-disable{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}.dial-primary-button{background-color:var(--controls-bg-accent,#5c8dea);color:var(--controls-primary,#fcfcfc);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;&:focus,&:hover{background-color:var(--controls-bg-accent-hover,#4878d2)}&:focus{border-color:var(--stroke-hover,#f3f4f6)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-secondary-button{background-color:transparent;color:var(--text-primary,#f3f4f6);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;border-color:var(--stroke-primary,#333942);&:focus,&:hover{background-color:var(--bg-layer-4,#333942)}&:focus{border-color:var(--stroke-hover,#f3f4f6)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-tertiary-button{background-color:transparent;color:var(--text-accent-primary,#5c8dea);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;&:focus,&:hover{background-color:var(--controls-bg-accent-alpha,#5c8dea2b)}&:active,&:focus{border-color:var(--stroke-accent-primary,#5c8dea)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-input{border-radius:3px;border-width:1px;border-style:solid;border-color:var(--stroke-primary,#333942);&:hover{border-color:var(--stroke-hover,#f3f4f6)}&:focus,&:focus-within{border-color:var(--stroke-accent-primary,#5c8dea)}}.dial-input,.dial-input-no-border{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:transparent;font-weight:400;font-size:14px;line-height:16px;width:100%;padding:.5rem .75rem;outline-width:0;&:not(:-moz-placeholder){color:var(--text-primary,#f3f4f6)}&:not(:placeholder-shown){color:var(--text-primary,#f3f4f6)}&:disabled{background-color:var(--bg-layer-3,#222932)}&:disabled:not(:-moz-placeholder){color:var(--text-secondary,#7f8792)}&:disabled,&:disabled:not(:placeholder-shown){color:var(--text-secondary,#7f8792)}}.dial-input-disable,.dial-input-readonly{background-color:var(--bg-layer-3,#222932)}.dial-input-disable:not(:-moz-placeholder){color:var(--text-secondary,#7f8792)}.dial-input-disable,.dial-input-disable:not(:placeholder-shown){color:var(--text-secondary,#7f8792)}.dial-input-error{border-color:var(--stroke-error,#f76464)}.dial-input-field{height:38px}input{-moz-appearance:textfield;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}&:focus{outline:none}}.dial-textarea{min-height:72px;resize:both;overflow:auto;white-space:normal}@layer ui{*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
2
- /*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.relative{position:relative}.z-\[55\]{z-index:55}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.h-0{height:0}.h-\[14px\]{height:14px}.h-\[18px\]{height:18px}.h-\[300px\]{height:300px}.h-\[38px\]{height:38px}.min-h-4{min-height:1rem}.min-h-\[72px\]{min-height:72px}.w-0{width:0}.w-2{width:.5rem}.w-80{width:20rem}.w-\[36px\]{width:36px}.w-\[500px\]{width:500px}.w-auto{width:auto}.w-full{width:100%}.min-w-\[800px\]{min-width:800px}.max-w-80{max-width:20rem}.max-w-\[1000px\]{max-width:1000px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[300px\]{max-width:300px}.max-w-\[600px\]{max-width:600px}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[minmax\(0\2c 100px\)_1fr\]{grid-template-columns:minmax(0,100px) 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-\[160px\]{-moz-column-gap:160px;column-gap:160px}.gap-y-10{row-gap:2.5rem}.gap-y-\[80px\]{row-gap:80px}.overflow-hidden,.truncate{overflow:hidden}.truncate{white-space:nowrap}.overflow-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-l-0{border-left-width:0}.border-r-0{border-right-width:0}.border-solid{border-style:solid}.border-error{border-color:var(--stroke-error,#f76464)}.border-primary{border-color:var(--stroke-primary,#333942)}.bg-accent-primary{background-color:var(--bg-accent-primary,#5c8dea)}.bg-blackout{background-color:var(--bg-blackout,#090d13b3)}.bg-controls-accent{background-color:var(--controls-bg-accent,#5c8dea)}.bg-controls-disable{background-color:var(--controls-bg-disable,#7f8792)}.bg-controls-enable-primary{background-color:var(--controls-enable-primary,#fcfcfc)}.bg-error{background-color:var(--bg-error,#402027)}.bg-info{background-color:var(--bg-info,#1c2c47)}.bg-layer-3{background-color:var(--bg-layer-3,#222932)}.bg-layer-4{background-color:var(--bg-layer-4,#333942)}.bg-success{background-color:var(--bg-success,#1d3841)}.bg-transparent{background-color:transparent}.bg-warning{background-color:var(--bg-warning,#3f3d25)}.stroke-primary{stroke:var(--stroke-primary,#333942)}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-\[var\(--bg-layer-0\2c _\#000000\)\]{color:var(--bg-layer-0,#000)}.text-accent-primary{color:var(--text-accent-primary,#5c8dea)}.text-controls-disable{color:var(--controls-disable,#333942)}.text-error{color:var(--text-error,#f76464)}.text-icon-accent-primary{color:var(--icon-accent-primary,#5c8dea)}.text-icon-accent-secondary{color:var(--icon-accent-secondary,#37babc)}.text-info{color:var(--text-info,#5c8dea)}.text-primary{color:var(--text-primary,#f3f4f6)}.text-secondary{color:var(--text-secondary,#7f8792)}.text-success{color:var(--text-success,#37babc)}.text-warning{color:var(--text-warning,#f4ce46)}.shadow{--tw-shadow:0 0 4px 0 var(--bg-blackout,#090d13b3);--tw-shadow-colored:0 0 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-offset-0{outline-offset:0}.blur{--tw-blur:blur(8px);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:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}}.hover\:text-primary:hover{color:var(--text-primary,#f3f4f6)}.focus-visible\:outline:focus-visible{outline-style:solid}@media (min-width:640px){.sm\:inline{display:inline}}
1
+ .dial-h1{font-weight:600}.dial-h1,.dial-h2{font-size:20px;line-height:24px}.dial-h2{font-weight:400}.dial-h3{font-weight:600;line-height:18px}.dial-body,.dial-h3{font-size:16px}.dial-body{font-weight:400;line-height:28px}.dial-small{font-weight:400}.dial-small,.dial-small-semi{font-size:14px;line-height:16px}.dial-small-semi{font-weight:600}.dial-small-medium{font-weight:400;font-size:14px;line-height:16px}.dial-small-150{font-weight:400;font-size:14px;line-height:21px}.dial-tiny{line-height:14px}.dial-tiny,.dial-tiny-150{font-weight:400;font-size:12px}.dial-tiny-150{line-height:18px}.dial-caption{font-weight:400;font-size:10px;line-height:12px}h1{font-weight:600}h1,h2{font-size:20px;line-height:24px}h2{font-weight:400}h3{font-weight:600;font-size:16px;line-height:18px}.dial-base-button{display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px}.dial-base-button-disable{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}.dial-primary-button{background-color:var(--controls-bg-accent,#5c8dea);color:var(--controls-primary,#fcfcfc);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;&:focus,&:hover{background-color:var(--controls-bg-accent-hover,#4878d2)}&:focus{border-color:var(--stroke-hover,#f3f4f6)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-secondary-button{background-color:transparent;color:var(--text-primary,#f3f4f6);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;border-color:var(--stroke-primary,#333942);&:focus,&:hover{background-color:var(--bg-layer-4,#333942)}&:focus{border-color:var(--stroke-hover,#f3f4f6)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-tertiary-button{background-color:transparent;color:var(--text-accent-primary,#5c8dea);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;&:focus,&:hover{background-color:var(--controls-bg-accent-alpha,#5c8dea2b)}&:active,&:focus{border-color:var(--stroke-accent-primary,#5c8dea)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-danger-button{background-color:var(--bg-red-400,#f76464);color:var(--text-primary,#f3f4f6);display:flex;flex-direction:row;align-items:center;padding:.5rem .75rem;border-radius:3px;border:1px solid transparent;font-weight:400;font-size:14px;line-height:16px;min-width:38px;min-height:38px;&:focus,&:hover{background-color:var(--bg-red-800,#ae2f2f)}&:focus{border-color:var(--stroke-hover,#f3f4f6)}&:disabled{pointer-events:none;background-color:var(--controls-bg-disable,#7f8792);color:var(--controls-disable,#333942)}}.dial-input{border-radius:3px;border-width:1px;border-style:solid;border-color:var(--stroke-primary,#333942);&:hover{border-color:var(--stroke-hover,#f3f4f6)}&:focus,&:focus-within{border-color:var(--stroke-accent-primary,#5c8dea)}}.dial-input,.dial-input-no-border{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:transparent;font-weight:400;font-size:14px;line-height:16px;width:100%;outline-width:0;&:not(:-moz-placeholder){color:var(--text-primary,#f3f4f6)}&:not(:placeholder-shown){color:var(--text-primary,#f3f4f6)}&:disabled{background-color:var(--bg-layer-3,#222932)}&:disabled:not(:-moz-placeholder){color:var(--text-secondary,#7f8792)}&:disabled,&:disabled:not(:placeholder-shown){color:var(--text-secondary,#7f8792)}}.dial-input-disable,.dial-input-readonly{background-color:var(--bg-layer-3,#222932)}.dial-input-disable:not(:-moz-placeholder){color:var(--text-secondary,#7f8792)}.dial-input-disable,.dial-input-disable:not(:placeholder-shown){color:var(--text-secondary,#7f8792)}.dial-input-error{border-color:var(--stroke-error,#f76464)}.dial-input-field{height:38px}input{-moz-appearance:textfield;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}&:focus{outline:none}}.dial-textarea{min-height:72px;resize:both;overflow:auto;white-space:normal}.dial-input-radio{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;padding:0;height:18px;width:18px;border-color:var(--stroke-hover,#f3f4f6);background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:currentColor;font:inherit;&:checked{border-color:var(--stroke-accent-primary,#5c8dea)}&:checked{&:after{height:10px;width:10px;background-color:var(--bg-accent-primary,#5c8dea);content:"";border-radius:18px}}&:focus,&:hover{border-width:1px;border-color:var(--stroke-accent-primary,#5c8dea);background-color:transparent}&:disabled{pointer-events:none}&:disabled{&:checked{border-color:var(--stroke-primary,#333942)}&:checked{&:after{background-color:var(--controls-bg-disable,#7f8792)}}}}@layer ui{*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
2
+ /*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.relative{position:relative}.z-\[52\]{z-index:52}.z-\[55\]{z-index:55}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-\[26px\]{margin-left:26px}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.h-0{height:0}.h-\[10px\]{height:10px}.h-\[120px\]{height:120px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[300px\]{height:300px}.h-\[32px\]{height:32px}.h-\[38px\]{height:38px}.h-full{height:100%}.max-h-full{max-height:100%}.min-h-4{min-height:1rem}.min-h-\[220px\]{min-height:220px}.min-h-\[72px\]{min-height:72px}.w-0{width:0}.w-2{width:.5rem}.w-80{width:20rem}.w-\[10px\]{width:10px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[250px\]{width:250px}.w-\[360px\]{width:360px}.w-\[36px\]{width:36px}.w-\[500px\]{width:500px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[180px\]{min-width:180px}.min-w-\[600px\]{min-width:600px}.min-w-\[800px\]{min-width:800px}.max-w-80{max-width:20rem}.max-w-\[1000px\]{max-width:1000px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[300px\]{max-width:300px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.grow-0{flex-grow:0}.basis-auto{flex-basis:auto}.border-collapse{border-collapse:collapse}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin-steps{animation:spin .75s steps(6) infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-\[minmax\(0\2c 100px\)_1fr\]{grid-template-columns:minmax(0,100px) 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-\[160px\]{-moz-column-gap:160px;column-gap:160px}.gap-y-10{row-gap:2.5rem}.gap-y-3{row-gap:.75rem}.gap-y-6{row-gap:1.5rem}.gap-y-\[80px\]{row-gap:80px}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-tertiary>:not([hidden])~:not([hidden]){border-color:var(--stroke-tertiary,#090d13)}.overflow-auto{overflow:auto}.overflow-hidden,.truncate{overflow:hidden}.truncate{white-space:nowrap}.overflow-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-width:1px}.border-0{border-width:0}.border-l-0{border-left-width:0}.border-r-0{border-right-width:0}.border-t-2{border-top-width:2px}.border-t-4{border-top-width:4px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-accent-primary{border-color:var(--stroke-accent-primary,#5c8dea)}.border-accent-secondary{border-color:var(--stroke-accent-secondary,#37babc)}.border-error{border-color:var(--stroke-error,#f76464)}.border-hover{border-color:var(--stroke-hover,#f3f4f6)}.border-icon-secondary{border-color:var(--icon-secondary,#7f8792)}.border-primary{border-color:var(--stroke-primary,#333942)}.border-red-900{border-color:var(--red-900,#402027)}.border-tertiary{border-color:var(--stroke-tertiary,#090d13)}.\!bg-accent-secondary{background-color:var(--bg-accent-secondary,#37babc)!important}.bg-accent-primary{background-color:var(--bg-accent-primary,#5c8dea)}.bg-accent-secondary{background-color:var(--bg-accent-secondary,#37babc)}.bg-blackout{background-color:var(--bg-blackout,#090d13b3)}.bg-controls-accent{background-color:var(--controls-bg-accent,#5c8dea)}.bg-controls-disable{background-color:var(--controls-bg-disable,#7f8792)}.bg-controls-enable-primary{background-color:var(--controls-enable-primary,#fcfcfc)}.bg-error{background-color:var(--bg-error,#402027)}.bg-info{background-color:var(--bg-info,#1c2c47)}.bg-layer-2{background-color:var(--bg-layer-2,#141a23)}.bg-layer-3{background-color:var(--bg-layer-3,#222932)}.bg-layer-4{background-color:var(--bg-layer-4,#333942)}.bg-red-400{background-color:var(--bg-red-400,#f76464)}.bg-success{background-color:var(--bg-success,#1d3841)}.bg-transparent{background-color:transparent}.bg-warning{background-color:var(--bg-warning,#3f3d25)}.stroke-primary{stroke:var(--stroke-primary,#333942)}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[6px\]{padding-left:6px;padding-right:6px}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font{font-family:var(--theme-font,var(--font-inter))}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.text-\[var\(--bg-layer-0\2c _\#000000\)\]{color:var(--bg-layer-0,#000)}.text-accent-primary{color:var(--text-accent-primary,#5c8dea)}.text-controls-disable{color:var(--controls-disable,#333942)}.text-error{color:var(--text-error,#f76464)}.text-icon-accent-primary{color:var(--icon-accent-primary,#5c8dea)}.text-icon-accent-secondary{color:var(--icon-accent-secondary,#37babc)}.text-info{color:var(--text-info,#5c8dea)}.text-primary{color:var(--text-primary,#f3f4f6)}.text-secondary{color:var(--text-secondary,#7f8792)}.text-success{color:var(--text-success,#37babc)}.text-warning{color:var(--text-warning,#f4ce46)}.text-white{color:var(--text-white,#fff)}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 0 4px 0 var(--bg-blackout,#090d13b3);--tw-shadow-colored:0 0 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-offset-0{outline-offset:0}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-sky-400{--tw-ring-opacity:1;--tw-ring-color:rgb(56 189 248/var(--tw-ring-opacity,1))}.ring-offset-0{--tw-ring-offset-width:0px}.ring-offset-1{--tw-ring-offset-width:1px}.ring-offset-2{--tw-ring-offset-width:2px}.blur{--tw-blur:blur(8px);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:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}}.before\:mr-2:before{content:var(--tw-content);margin-right:.5rem}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:h-\[18px\]:before{content:var(--tw-content);height:18px}.before\:w-\[18px\]:before{content:var(--tw-content);width:18px}.before\:rounded:before{content:var(--tw-content);border-radius:3px}.before\:border:before{content:var(--tw-content);border-width:1px}.before\:border-hover:before{content:var(--tw-content);border-color:var(--stroke-hover,#f3f4f6)}.before\:border-icon-secondary:before{content:var(--tw-content);border-color:var(--icon-secondary,#7f8792)}.before\:bg-layer-4:before{content:var(--tw-content);background-color:var(--bg-layer-4,#333942)}.before\:content-\[\"\"\]:before{--tw-content:"";content:var(--tw-content)}.hover\:text-accent-primary:hover{color:var(--text-accent-primary,#5c8dea)}.hover\:text-error:hover{color:var(--text-error,#f76464)}.hover\:text-primary:hover{color:var(--text-primary,#f3f4f6)}.hover\:opacity-90:hover{opacity:.9}.focus-visible\:outline:focus-visible{outline-style:solid}@media (min-width:640px){.sm\:inline{display:inline}}@media (min-width:768px){.md\:h-auto{height:auto}.md\:max-w-\[1200px\]{max-width:1200px}.md\:max-w-\[400px\]{max-width:400px}.md\:max-w-\[800px\]{max-width:800px}.md\:p-4{padding:1rem}}
@@ -16,27 +16,27 @@ export interface DialAlertProps {
16
16
  * @example
17
17
  * ```tsx
18
18
  * <DialAlert
19
- * variant="info"
19
+ * variant={AlertVariant.Info}
20
20
  * message="This is an info alert."
21
21
  * />
22
22
  *
23
23
  * <DialAlert
24
- * variant="success"
24
+ * variant={AlertVariant.Success}
25
25
  * message="Changes saved successfully."
26
- * onClose={(e) => console.log('closed', e)}
27
26
  * />
28
27
  *
29
28
  * <DialAlert
30
- * variant="error"
31
- * closable={false}
29
+ * variant={AlertVariant.Error}
30
+ * closable
32
31
  * message="Something went wrong."
32
+ * onClose={(e) => console.log('closed', e)}
33
33
  * />
34
34
  * ```
35
35
  *
36
36
  * @param [variant=AlertVariant.Info] - Defines the visual style and icon of the alert
37
37
  * @param message - Message text to display inside the alert
38
38
  * @param [cssClass] - Additional CSS classes applied to the alert container
39
- * @param [closable=true] - Whether the alert has a close button
39
+ * @param [closable=false] - Whether the alert has a close button
40
40
  * @param [onClose] - Callback fired when the close button is clicked
41
41
  */
42
42
  export declare const DialAlert: FC<DialAlertProps>;
@@ -2,4 +2,4 @@ import { AlertVariant } from '../../types/alert';
2
2
  import { ReactNode } from 'react';
3
3
  export declare const variantIcons: Record<AlertVariant, ReactNode>;
4
4
  export declare const alertVariantClassMap: Record<AlertVariant, string>;
5
- export declare const alertBaseClasses = "inline-flex items-center justify-between gap-2 px-3 py-2 border border-solid shadow text-sm w-auto rounded";
5
+ export declare const alertBaseClasses = "items-center justify-between gap-2 p-3 border border-solid dial-small-150 rounded flex";
@@ -1,5 +1,7 @@
1
1
  import { FC, MouseEvent, ReactNode, Ref } from 'react';
2
- export interface DialButton {
2
+ import { ButtonVariant } from '../../types/button';
3
+ export interface DialButtonProps {
4
+ variant?: ButtonVariant;
3
5
  cssClass?: string;
4
6
  disable?: boolean;
5
7
  title?: string;
@@ -24,6 +26,7 @@ export interface DialButton {
24
26
  * ```
25
27
  *
26
28
  * @param [title] - The text content of the button
29
+ * @param [variant=ButtonVariant.Primary] - Defines the visual style of the button
27
30
  * @param [cssClass] - Additional CSS classes to apply to the button
28
31
  * @param [onClick] - Click event handler for the button
29
32
  * @param [disable=false] - Whether the button should be disabled
@@ -33,4 +36,4 @@ export interface DialButton {
33
36
  * @param [ariaLabel] - Accessible label for screen readers when no title is provided
34
37
  * @param [ref] - Ref to access the button DOM element
35
38
  */
36
- export declare const DialButton: FC<DialButton>;
39
+ export declare const DialButton: FC<DialButtonProps>;
@@ -0,0 +1,2 @@
1
+ import { ButtonVariant } from '../../types/button';
2
+ export declare const variantClassMap: Record<ButtonVariant, string>;
@@ -0,0 +1,33 @@
1
+ import { FC } from 'react';
2
+ export interface DialCheckboxProps {
3
+ id: string;
4
+ label?: string;
5
+ checked: boolean;
6
+ disabled?: boolean;
7
+ indeterminate?: boolean;
8
+ ariaLabel?: string;
9
+ onChange?: (value?: boolean, id?: string) => void;
10
+ }
11
+ /**
12
+ * A Checkbox component with styling options
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <DialCheckbox
17
+ * id="checkbox"
18
+ * label="Dial Checkbox"
19
+ * checked={true}
20
+ * disabled={false}
21
+ * onChange={(value) => console.log(value)}
22
+ * />
23
+ * ```
24
+ *
25
+ * @param id - Unique identifier for the checkbox element
26
+ * @param [label] - The label text for the field
27
+ * @param [checked] - The current value of the checkbox
28
+ * @param [disabled=false] - Whether the checkbox is disabled
29
+ * @param [indeterminate=false] - indeterminate state
30
+ * @param [ariaLabel] - Accessible label for screen readers when no title is provided
31
+ * @param [onChange] - Callback function called when the checkbox value changes
32
+ */
33
+ export declare const DialCheckbox: FC<DialCheckboxProps>;
@@ -0,0 +1,26 @@
1
+ import { FC, MouseEvent } from 'react';
2
+ export interface DialCloseButtonProps {
3
+ ariaLabel?: string;
4
+ cssClass?: string;
5
+ size?: number;
6
+ onClose: (e: MouseEvent<HTMLButtonElement>) => void;
7
+ }
8
+ /**
9
+ * A Close button component with a customizable icon and accessible label.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <DialCloseButton
14
+ * ariaLabel="Close dialog"
15
+ * onClose={handleClose}
16
+ * cssClass="custom-close"
17
+ * size={32}
18
+ * />
19
+ * ```
20
+ *
21
+ * @param [ariaLabel] - Accessible label for screen readers
22
+ * @param [cssClass] - Additional CSS classes to apply to the button
23
+ * @param [size=24] - Size of the close icon
24
+ * @param onClose - Click event handler for the close button
25
+ */
26
+ export declare const DialCloseButton: FC<DialCloseButtonProps>;
@@ -0,0 +1,53 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { DialPopupProps } from '../Popup/Popup';
3
+ import { ConfirmationPopupVariant } from '../../types/confirmation-popup';
4
+ export interface DialConfirmationPopupProps extends DialPopupProps {
5
+ description?: string | ReactNode;
6
+ descriptionCssClass?: string;
7
+ confirmLabel: string;
8
+ cancelLabel?: string;
9
+ isLoading?: boolean;
10
+ disableConfirmButton?: boolean;
11
+ confirmClassName?: string;
12
+ onConfirm: () => void;
13
+ onCancel?: () => void;
14
+ children?: ReactNode;
15
+ variant?: ConfirmationPopupVariant;
16
+ }
17
+ /**
18
+ * A confirmation dialog built with DialPopup and DialButton.
19
+ *
20
+ * Provides an accessible modal with a title, optional description or custom content,
21
+ * and a footer with Cancel / Confirm actions.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <ConfirmationModal
26
+ * open
27
+ * title="Delete item?"
28
+ * description="This action cannot be undone."
29
+ * confirmLabel="Delete"
30
+ * onClose={() => setOpen(false)}
31
+ * onConfirm={handleDelete}
32
+ * />
33
+ * ```
34
+ *
35
+ * @param title - Title content for the header
36
+ * @param [description] - Secondary text (ignored when `children` set)
37
+ * @param [descriptionCssClass] - Custom CSS class for the description
38
+ * @param [open=false] - Controls visibility of the popup
39
+ * @param confirmLabel - Label for the confirm button
40
+ * @param [cancelLabel="Cancel"] - Label for the cancel button
41
+ * @param [isLoading=false] - Shows loader placeholder and hides actions
42
+ * @param [disableConfirmButton=false] - Disables the confirm button
43
+ * @param [cssClass] - Extra classes for the popup container
44
+ * @param [confirmClassName] - Extra classes merged into the confirm button
45
+ * @param onClose - Fired on close
46
+ * @param onConfirm - Fired on confirm
47
+ * @param [onCancel] - Fired on cancel (falls back to `onClose`)
48
+ * @param [children] - Custom body content
49
+ * @param [dividers=false] - Whether to render separators between sections
50
+ * @param [variant=ConfirmationPopupVariant.Info] - Visual variant for the popup
51
+ * @param [size=PopupSize.Sm] - Size of the popup
52
+ */
53
+ export declare const DialConfirmationPopup: FC<DialConfirmationPopupProps>;
@@ -0,0 +1,11 @@
1
+ import { ButtonVariant } from '../../types/button';
2
+ import { ConfirmationPopupVariant } from '../../types/confirmation-popup';
3
+ export declare const actionsBaseClasses = "flex justify-end gap-2 px-6 py-4";
4
+ export declare const descriptionBaseClasses = "text-secondary dial-small-150 px-6 py-4";
5
+ export declare const defaultCancelLabel = "Cancel";
6
+ export declare const variantConfig: Record<ConfirmationPopupVariant, {
7
+ container?: string;
8
+ confirmVariant: ButtonVariant;
9
+ confirmClass?: string;
10
+ cancelVariant: ButtonVariant;
11
+ }>;
@@ -16,8 +16,8 @@ export interface DialInputProps extends InputBaseProps {
16
16
  * <DialInput
17
17
  * elementId="search"
18
18
  * placeholder="Search..."
19
- * iconBeforeInput={<SearchIcon />}
20
- * iconAfterInput={<ClearIcon />}
19
+ * iconBefore={<SearchIcon />}
20
+ * iconAfter={<ClearIcon />}
21
21
  * onChange={(value) => console.log(value)}
22
22
  * />
23
23
  * ```
@@ -25,8 +25,8 @@ export interface DialInputProps extends InputBaseProps {
25
25
  * @param elementId - Unique identifier for the input element
26
26
  * @param [value] - The current value of the input
27
27
  * @param [onChange] - Callback function called when the input value changes
28
- * @param [iconBeforeInput] - Icon or element to display before the input
29
- * @param [iconAfterInput] - Icon or element to display after the input
28
+ * @param [iconBefore] - Icon or element to display before the input
29
+ * @param [iconAfter] - Icon or element to display after the input
30
30
  * @param [placeholder] - Placeholder text displayed when input is empty
31
31
  * @param [containerCssClass] - Additional CSS classes to apply to the container div
32
32
  * @param [cssClass] - Additional CSS classes to apply to the input element
@@ -45,8 +45,8 @@ export interface DialNumberInputFieldProps extends DialInputFieldBaseProps {
45
45
  * @param [invalid=false] - Whether the input has validation errors (applies error styling)
46
46
  * @param [errorText] - Error message text to display below the input
47
47
  * @param [defaultEmptyText="None"] - Text to display when readonly and value is empty
48
- * @param [iconBeforeInput] - Icon or element to display before the input
49
- * @param [iconAfterInput] - Icon or element to display after the input
48
+ * @param [iconBefore] - Icon or element to display before the input
49
+ * @param [iconAfter] - Icon or element to display after the input
50
50
  * @param [elementCssClass] - Additional CSS classes to apply to the input element
51
51
  * @param [elementContainerCssClass] - Additional CSS classes to apply to the input container
52
52
  * @param [containerCssClass] - Additional CSS classes to apply to the DialNumberInputField container
@@ -83,8 +83,8 @@ export interface DialTextInputFieldProps extends DialInputFieldBaseProps {
83
83
  * @param [invalid=false] - Whether the input has validation errors (applies error styling)
84
84
  * @param [errorText] - Error message text to display below the input
85
85
  * @param [defaultEmptyText="None"] - Text to display when readonly and value is empty
86
- * @param [iconBeforeInput] - Icon or element to display before the input
87
- * @param [iconAfterInput] - Icon or element to display after the input
86
+ * @param [iconBefore] - Icon or element to display before the input
87
+ * @param [iconAfter] - Icon or element to display after the input
88
88
  * @param [elementCssClass] - Additional CSS classes to apply to the input element
89
89
  * @param [elementContainerCssClass] - Additional CSS classes to apply to the input container
90
90
  * @param [containerCssClass] - Additional CSS classes to apply to the outer container
@@ -0,0 +1,32 @@
1
+ import { FC } from 'react';
2
+ export interface DialLoaderProps {
3
+ size?: number;
4
+ cssClass?: string;
5
+ iconClass?: string;
6
+ fullWidth?: boolean;
7
+ ariaLabel?: string;
8
+ }
9
+ /**
10
+ * A simple loading spinner component.
11
+ *
12
+ * Renders a spinning SVG with optional full-width container.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * // Full width (default)
17
+ * <DialLoader />
18
+ *
19
+ * // Inline (content width)
20
+ * <DialLoader fullWidth={false} />
21
+ *
22
+ * // Custom size and classes
23
+ * <DialLoader size={24} iconClass="text-accent-primary" />
24
+ * ```
25
+ *
26
+ * @param [size=18] - Icon size in px
27
+ * @param [cssClass] - Additional classes for the container
28
+ * @param [iconClass] - Additional classes for the SVG icon
29
+ * @param [fullWidth=true] - Stretch to full width/height of container
30
+ * @param [ariaLabel='Loading'] - Accessible label for screen readers
31
+ */
32
+ export declare const DialLoader: FC<DialLoaderProps>;
@@ -0,0 +1,2 @@
1
+ export declare const loaderBaseClasses = "flex items-center justify-center text-secondary";
2
+ export declare const loaderIconBaseClasses = "shrink-0 grow-0 basis-auto animate-spin-steps";
@@ -0,0 +1,22 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface DialNoDataContentProps {
3
+ icon?: ReactNode;
4
+ title: string;
5
+ description?: string;
6
+ }
7
+ /**
8
+ * A component for displaying a message and icon when there is no data to show.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <NoDataContent
13
+ * emptyDataTitle="No results found"
14
+ * icon={<CustomIcon />}
15
+ * />
16
+ * ```
17
+ *
18
+ * @param [icon] - Custom icon to display (defaults to clipboard icon)
19
+ * @param title - The message to display when no data is present
20
+ * @param [description] - The description to display when no data is present
21
+ */
22
+ export declare const DialNoDataContent: FC<DialNoDataContentProps>;
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ onClick: () => void;
4
+ }
5
+ /**
6
+ * An icon button component for hiding password input (eye-off icon).
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <DialHideIcon onClick={() => setShowPassword(false)} />
11
+ * ```
12
+ *
13
+ * @param onClick - Callback function called when the icon is clicked
14
+ */
15
+ export declare const DialHideIcon: FC<Props>;
16
+ export {};
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ onClick: () => void;
4
+ }
5
+ /**
6
+ * An icon button component for showing password input (eye icon).
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <DialShowIcon onClick={() => setShowPassword(true)} />
11
+ * ```
12
+ *
13
+ * @param onClick - Callback function called when the icon is clicked
14
+ */
15
+ export declare const DialShowIcon: FC<Props>;
16
+ export {};
@@ -0,0 +1,24 @@
1
+ import { FC } from 'react';
2
+ import { DialInputProps } from '../Input/Input';
3
+ /**
4
+ * A password input component with show/hide functionality and customizable props.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <DialPasswordInput
9
+ * id="password"
10
+ * label="Password"
11
+ * value={password}
12
+ * onChange={e => setPassword(e.target.value)}
13
+ * disabled={false}
14
+ * />
15
+ * ```
16
+ *
17
+ * @param id - Unique identifier for the input element
18
+ * @param [label] - The label text for the field
19
+ * @param [value] - The current value of the input
20
+ * @param [onChange] - Callback function called when the input value changes
21
+ * @param [disabled=false] - Whether the input is disabled
22
+ * @param [iconAfterInput] - Custom icon to display after the input (overridden by show/hide icons)
23
+ */
24
+ export declare const DialPasswordInput: FC<DialInputProps>;
@@ -0,0 +1,29 @@
1
+ import { FC } from 'react';
2
+ import { DialInputFieldBaseProps } from '../InputField/InputField';
3
+ export interface DialPasswordInputFieldProps extends DialInputFieldBaseProps {
4
+ onChange?: (value: string) => void;
5
+ }
6
+ /**
7
+ * A password input field component with label, error text, and show/hide functionality.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * <DialPasswordInputField
12
+ * elementId="password"
13
+ * fieldTitle="Password"
14
+ * value={password}
15
+ * onChange={setPassword}
16
+ * errorText={error}
17
+ * optional={false}
18
+ * />
19
+ * ```
20
+ *
21
+ * @param elementId - Unique identifier for the input element
22
+ * @param [fieldTitle] - The label text for the field
23
+ * @param [value] - The current value of the input
24
+ * @param [onChange] - Callback function called when the input value changes
25
+ * @param [errorText] - Error message to display below the input
26
+ * @param [optional=false] - Whether the field is optional
27
+ * @param [cssClass] - Custom CSS class for the input element
28
+ */
29
+ export declare const DialPasswordInputField: FC<DialPasswordInputFieldProps>;
@@ -0,0 +1,52 @@
1
+ import { FC, MouseEvent, ReactNode } from 'react';
2
+ import { PopupSize } from '../../types/popup';
3
+ export interface DialPopupProps {
4
+ open?: boolean;
5
+ title?: string | ReactNode;
6
+ portalId?: string;
7
+ cssClass?: string;
8
+ overlayClass?: string;
9
+ headingClass?: string;
10
+ dividers?: boolean;
11
+ children?: ReactNode;
12
+ footer?: ReactNode;
13
+ onClose?: (e?: MouseEvent<HTMLButtonElement> | null) => void;
14
+ size?: PopupSize;
15
+ }
16
+ /**
17
+ * An accessible modal dialog component using Floating UI.
18
+ *
19
+ * Renders in a portal with a scrim overlay, focus management, header with a title,
20
+ * content area, optional footer and a close control.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * <DialPopup
25
+ * open
26
+ * title="Title"
27
+ * size={PopupSize.Md}
28
+ * footer={
29
+ * <div className="flex justify-end gap-2">
30
+ * <button className="btn-secondary px-3 py-1 rounded">Cancel</button>
31
+ * <button className="btn-primary px-3 py-1 rounded">Confirm</button>
32
+ * </div>
33
+ * }
34
+ * onClose={() => console.log('closed')}
35
+ * >
36
+ * <div className="p-6">Dialog content goes here…</div>
37
+ * </DialPopup>
38
+ * ```
39
+ *
40
+ * @param [open=false] - Controls visibility of the popup
41
+ * @param [title] - Optional title rendered in the header
42
+ * @param [portalId] - Optional portal container id
43
+ * @param [cssClass] - Additional CSS classes applied to the popup container
44
+ * @param [overlayClass] - Additional CSS classes applied to the overlay
45
+ * @param [headingClass] - Additional CSS classes applied to the title element
46
+ * @param [dividers=true] - Whether to render separators between sections
47
+ * @param [children] - Body content
48
+ * @param [footer] - Footer area for actions
49
+ * @param [onClose] - Callback fired when the popup requests to close
50
+ * @param [size=PopupSize.Md] - Sets the max-width of the popup
51
+ */
52
+ export declare const DialPopup: FC<DialPopupProps>;
@@ -0,0 +1,6 @@
1
+ import { PopupSize } from '../../types/popup';
2
+ export declare const overlayBaseClasses = "z-[52] flex items-center justify-center bg-blackout md:p-4";
3
+ export declare const popupBaseClasses = "relative max-h-full rounded bg-layer-3 flex flex-col shadow w-full h-full md:h-auto";
4
+ export declare const popupDividerClasses = "divide-tertiary divide-y";
5
+ export declare const popupHeaderClasses = "flex flex-row justify-between py-4 px-6 items-center";
6
+ export declare const popupSizeClassMap: Record<PopupSize, string>;
@@ -0,0 +1,46 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface DialRadioButtonProps {
3
+ name: string;
4
+ value: string;
5
+ title?: string;
6
+ description?: ReactNode;
7
+ checked?: boolean;
8
+ inputId: string;
9
+ cssClass?: string;
10
+ labelCssClass?: string;
11
+ disabled?: boolean;
12
+ onChange?: (value: string) => void;
13
+ descriptionCssClass?: string;
14
+ }
15
+ /**
16
+ * A stylized, accessible radio input with optional description.
17
+ *
18
+ * Renders a native `<input type="radio" />` paired with a label. When `checked`
19
+ * and `description` are provided, a supporting text block appears under the control.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <DialRadioButton
24
+ * name="plan"
25
+ * value="pro"
26
+ * inputId="radio-pro"
27
+ * title="Pro plan"
28
+ * description="Includes all advanced features."
29
+ * checked
30
+ * onChange={(v) => console.log('changed', v)}
31
+ * />
32
+ * ```
33
+ *
34
+ * @param name - Radio group name
35
+ * @param value - Radio value emitted on change
36
+ * @param [title] - Visible label text
37
+ * @param [description] - Supporting text shown when checked
38
+ * @param [checked=false] - Controlled checked state
39
+ * @param inputId - ID associated with the label
40
+ * @param [cssClass] - Additional classes applied to the input element
41
+ * @param [labelCssClass] - Additional classes applied to the label element
42
+ * @param [disabled] - Disabled state of the control
43
+ * @param [onChange] - Callback fired with `value` when the radio is changed
44
+ * @param [descriptionCssClass] - Additional classes applied to the description block
45
+ */
46
+ export declare const DialRadioButton: FC<DialRadioButtonProps>;
@@ -0,0 +1,51 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { RadioGroupOrientation } from '../../types/radio-group';
3
+ export interface RadioButtonWithContent {
4
+ id: string;
5
+ name: string;
6
+ content?: ReactNode;
7
+ }
8
+ export interface DialRadioGroupProps {
9
+ fieldTitle?: string;
10
+ elementId: string;
11
+ radioCssClass?: string;
12
+ labelCssClass?: string;
13
+ disabled?: boolean;
14
+ radioButtons: RadioButtonWithContent[];
15
+ activeRadioButton: string;
16
+ orientation: RadioGroupOrientation;
17
+ onChange: (radioId: string) => void;
18
+ }
19
+ /**
20
+ * Groups multiple `DialRadio` options and renders custom content for the active option.
21
+ *
22
+ * Uses `DialField` as the field label and a container with `role="radiogroup"`.
23
+ * Content provided in `radioButtons[].content` is shown under the currently active radio.
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <DialRadioGroup
28
+ * fieldTitle="Delivery"
29
+ * elementId="delivery"
30
+ * orientation={RadioGroupOrientation.Column}
31
+ * activeRadioButton="courier"
32
+ * radioButtons={[
33
+ * { id: 'pickup', name: 'Pickup', content: <span>Free, ready today</span> },
34
+ * { id: 'courier', name: 'Courier', content: <span>Arrives tomorrow</span> },
35
+ * ]}
36
+ * onChange={(id) => console.log('selected', id)}
37
+ * />
38
+ * ```
39
+ *
40
+ * @param [fieldTitle] - Optional label rendered by `DialField`
41
+ * @param elementId - Name for the underlying radio group; also used for input `name`
42
+ * @param [radioCssClass] - Additional classes applied to each radio input
43
+ * @param [labelCssClass] - Additional classes applied to each radio label
44
+ * @param [disabled] - Disables all child radios when set
45
+ * @param radioButtons - Array of options with ids, labels, and optional content
46
+ * @param activeRadioButton - The id of the currently selected radio
47
+ * @param orientation - Layout direction of radios: row or column
48
+ * @param onChange - Callback fired with the selected radio id
49
+ */
50
+ export declare const DialRadioGroup: FC<DialRadioGroupProps>;
51
+ export default DialRadioGroup;
@@ -0,0 +1,5 @@
1
+ import { RadioGroupOrientation } from '../../types/radio-group';
2
+ export declare const groupBaseClasses = "flex flex-col gap-2";
3
+ export declare const optionsWrapperBaseClasses = "flex";
4
+ export declare const selectedContentClasses = "pb-1 mt-2";
5
+ export declare const orientationClassMap: Record<RadioGroupOrientation, string>;