@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.
- package/dist/dial-ui-kit.cjs.js +1 -1
- package/dist/dial-ui-kit.es.js +896 -310
- package/dist/index.css +2 -2
- package/dist/src/components/Alert/Alert.d.ts +6 -6
- package/dist/src/components/Alert/constants.d.ts +1 -1
- package/dist/src/components/Button/Button.d.ts +5 -2
- package/dist/src/components/Button/constants.d.ts +2 -0
- package/dist/src/components/Checkbox/Checkbox.d.ts +33 -0
- package/dist/src/components/CloseButton/CloseButton.d.ts +26 -0
- package/dist/src/components/ConfirmationPopup/ConfirmationPopup.d.ts +53 -0
- package/dist/src/components/ConfirmationPopup/constants.d.ts +11 -0
- package/dist/src/components/Input/Input.d.ts +4 -4
- package/dist/src/components/InputField/InputField.d.ts +4 -4
- package/dist/src/components/Loader/Loader.d.ts +32 -0
- package/dist/src/components/Loader/constants.d.ts +2 -0
- package/dist/src/components/NoDataContent/NoDataContent.d.ts +22 -0
- package/dist/src/components/PasswordInput/Icons/HideIcon.d.ts +16 -0
- package/dist/src/components/PasswordInput/Icons/ShowIcon.d.ts +16 -0
- package/dist/src/components/PasswordInput/PasswordInput.d.ts +24 -0
- package/dist/src/components/PasswordInput/PasswordInputField.d.ts +29 -0
- package/dist/src/components/Popup/Popup.d.ts +52 -0
- package/dist/src/components/Popup/constants.d.ts +6 -0
- package/dist/src/components/RadioButton/RadioButton.d.ts +46 -0
- package/dist/src/components/RadioGroup/RadioGroup.d.ts +51 -0
- package/dist/src/components/RadioGroup/constants.d.ts +5 -0
- package/dist/src/components/Search/Search.d.ts +42 -0
- package/dist/src/components/Search/constants.d.ts +14 -0
- package/dist/src/components/Steps/Step.d.ts +9 -0
- package/dist/src/components/Steps/Steps.d.ts +24 -0
- package/dist/src/components/Steps/tests/Steps.test.d.ts +1 -0
- package/dist/src/components/Steps/utils.d.ts +3 -0
- package/dist/src/components/Switch/Switch.d.ts +1 -1
- package/dist/src/components/TextAreaField/TextAreaField.d.ts +2 -2
- package/dist/src/constants/icon.d.ts +5 -0
- package/dist/src/index.d.ts +19 -1
- package/dist/src/models/field-control-props.d.ts +2 -2
- package/dist/src/models/step.d.ts +9 -0
- package/dist/src/types/button.d.ts +6 -0
- package/dist/src/types/confirmation-popup.d.ts +4 -0
- package/dist/src/types/popup.d.ts +5 -0
- package/dist/src/types/radio-group.d.ts +4 -0
- package/dist/src/types/search.d.ts +4 -0
- 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%;
|
|
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=
|
|
19
|
+
* variant={AlertVariant.Info}
|
|
20
20
|
* message="This is an info alert."
|
|
21
21
|
* />
|
|
22
22
|
*
|
|
23
23
|
* <DialAlert
|
|
24
|
-
* variant=
|
|
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=
|
|
31
|
-
* closable
|
|
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=
|
|
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 = "
|
|
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
|
-
|
|
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<
|
|
39
|
+
export declare const DialButton: FC<DialButtonProps>;
|
|
@@ -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
|
-
*
|
|
20
|
-
*
|
|
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 [
|
|
29
|
-
* @param [
|
|
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 [
|
|
49
|
-
* @param [
|
|
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 [
|
|
87
|
-
* @param [
|
|
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,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>;
|