@epam/ai-dial-ui-kit 0.3.0-rc.5 → 0.3.0-rc.51

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 (59) hide show
  1. package/dist/dial-ui-kit.cjs.js +2 -1
  2. package/dist/dial-ui-kit.es.js +7557 -1195
  3. package/dist/index.css +2 -2
  4. package/dist/src/components/Breadcrumb/Breadcrumb.d.ts +41 -0
  5. package/dist/src/components/Breadcrumb/BreadcrumbItem.d.ts +13 -0
  6. package/dist/src/components/Breadcrumb/constants.d.ts +9 -0
  7. package/dist/src/components/Checkbox/Checkbox.d.ts +3 -1
  8. package/dist/src/components/ConfirmationPopup/ConfirmationPopup.d.ts +2 -2
  9. package/dist/src/components/ConfirmationPopup/constants.d.ts +1 -0
  10. package/dist/src/components/DraggableItem/DraggableItem.d.ts +31 -0
  11. package/dist/src/components/DraggableItem/constants.d.ts +3 -0
  12. package/dist/src/components/Dropdown/Dropdown.d.ts +8 -0
  13. package/dist/src/components/EllipsisTooltip/EllipsisTooltip.d.ts +31 -0
  14. package/dist/src/components/EllipsisTooltip/constants.d.ts +1 -0
  15. package/dist/src/components/Field/Field.d.ts +4 -2
  16. package/dist/src/components/FileIcon/FileIcon.d.ts +31 -0
  17. package/dist/src/components/FileIcon/constants.d.ts +9 -0
  18. package/dist/src/components/FileName/FileName.d.ts +20 -0
  19. package/dist/src/components/FolderName/FolderName.d.ts +20 -0
  20. package/dist/src/components/FormItem/FormItem.d.ts +77 -0
  21. package/dist/src/components/FormItem/constants.d.ts +3 -0
  22. package/dist/src/components/FormPopup/FormPopup.d.ts +44 -0
  23. package/dist/src/components/FormPopup/constants.d.ts +3 -0
  24. package/dist/src/components/Icon/Icon.d.ts +1 -0
  25. package/dist/src/components/Input/Input.d.ts +7 -2
  26. package/dist/src/components/InputField/InputField.d.ts +3 -3
  27. package/dist/src/components/InputPopup/InputPopup.d.ts +3 -3
  28. package/dist/src/components/JsonEditor/JsonEditor.d.ts +2 -2
  29. package/dist/src/components/LoadFileArea/EmptyFileArea.d.ts +52 -0
  30. package/dist/src/components/LoadFileArea/FilledInput.d.ts +30 -0
  31. package/dist/src/components/LoadFileArea/LoadFileArea.d.ts +46 -0
  32. package/dist/src/components/LoadFileArea/LoadFileAreaField.d.ts +51 -0
  33. package/dist/src/components/PasswordInput/PasswordInputField.d.ts +1 -1
  34. package/dist/src/components/RadioGroup/RadioGroup.d.ts +19 -4
  35. package/dist/src/components/RadioGroupPopupField/RadioGroupPopupField.d.ts +2 -1
  36. package/dist/src/components/RemoveButton/RemoveButton.d.ts +24 -0
  37. package/dist/src/components/Select/MultiSelectTags.d.ts +8 -0
  38. package/dist/src/components/Select/Select.d.ts +61 -0
  39. package/dist/src/components/Select/constants.d.ts +8 -0
  40. package/dist/src/components/SelectField/SelectField.d.ts +35 -0
  41. package/dist/src/components/SharedEntityIndicator/SharedEntityIndicator.d.ts +25 -0
  42. package/dist/src/components/Tab/Tab.d.ts +35 -0
  43. package/dist/src/components/Tabs/Tabs.d.ts +46 -0
  44. package/dist/src/components/Tabs/constants.d.ts +1 -0
  45. package/dist/src/components/Tag/Tag.d.ts +6 -2
  46. package/dist/src/components/TextAreaField/TextAreaField.d.ts +4 -2
  47. package/dist/src/components/Textarea/Textarea.d.ts +4 -0
  48. package/dist/src/components/Tooltip/TooltipContext.d.ts +4 -4
  49. package/dist/src/hooks/use-is-tablet-screen.d.ts +15 -0
  50. package/dist/src/index.d.ts +24 -0
  51. package/dist/src/models/breadcrumb.d.ts +9 -0
  52. package/dist/src/models/field-control-props.d.ts +1 -0
  53. package/dist/src/models/select.d.ts +7 -0
  54. package/dist/src/models/tab.d.ts +4 -0
  55. package/dist/src/types/form-item.d.ts +4 -0
  56. package/dist/src/types/tab.d.ts +4 -0
  57. package/dist/src/utils/merge-classes.d.ts +3 -0
  58. package/dist/src/utils/mobile.d.ts +14 -0
  59. package/package.json +15 -10
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-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)}}}}div .dial-sm-popup{max-width:100%}@media (min-width:768px){div .dial-sm-popup{max-width:400px}}div .dial-md-popup{max-width:100%}@media (min-width:768px){div .dial-md-popup{max-width:800px}}div .dial-lg-popup{max-width:100%}@media (min-width:768px){div .dial-lg-popup{max-width:1200px}}div .dial-popup{position:relative;display:flex;height:100%;max-height:100%;width:100%;flex-direction:column;border-radius:3px;background-color:var(--bg-layer-3,#222932);--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)}@media (min-width:768px){div .dial-popup{height:auto}}@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}::-webkit-scrollbar-corner,::-webkit-scrollbar-track,::-webkit-scrollbar-track:hover,:not(:hover)::-webkit-scrollbar-thumb{background-color:transparent}::-webkit-scrollbar-thumb{cursor:pointer;border-radius:3px;background-color:var(--bg-layer-4,#333942)}::-webkit-scrollbar{height:4px;width:4px}*{scrollbar-width:thin;scrollbar-color:transparent transparent}:hover{scrollbar-color:var(--bg-layer-4,#333942) transparent}.divide-y>:empty~:not([hidden]){border-top:none;border-bottom: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}.collapse{visibility:collapse}.relative{position:relative}.z-\[52\]{z-index:52}.z-\[53\]{z-index:53}.z-\[55\]{z-index:55}.my-1{margin-top:.25rem}.mb-1,.my-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}.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-\[10px\]{height:10px}.h-\[120px\]{height:120px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[32px\]{height:32px}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[4px\]{height:4px}.h-auto{height:auto}.h-full{height:100%}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-4{min-height:1rem}.min-h-\[220px\]{min-height:220px}.min-h-\[38px\]{min-height:38px}.min-h-\[72px\]{min-height:72px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-2{width:.5rem}.w-72{width:18rem}.w-80{width:20rem}.w-\[10px\]{width:10px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[250px\]{width:250px}.w-\[320px\]{width:320px}.w-\[360px\]{width:360px}.w-\[36px\]{width:36px}.w-\[400px\]{width:400px}.w-\[450px\]{width:450px}.w-\[4px\]{width:4px}.w-\[500px\]{width:500px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-\[100px\]{min-width:100px}.min-w-\[180px\]{min-width:180px}.min-w-\[400px\]{min-width:400px}.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-\[200px\]{max-width:200px}.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}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin-steps{animation:spin .75s steps(8) infinite}.\!cursor-not-allowed{cursor:not-allowed!important}.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}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.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-5{gap:1.25rem}.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-1{row-gap:.25rem}.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)}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.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{border-top-width:1px}.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-none{border-style:none}.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-0{background-color:var(--bg-layer-0,#000)}.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-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[6px\]{padding:6px}.px-0{padding-left:0;padding-right:0}.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-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.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-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tracking-wider{letter-spacing:.05em}.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}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 0 4px 0 var(--bg-blackout,#090d13b3);--tw-shadow-colored:0 0 4px 0 var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.\[writing-mode\:tb-rl\]{writing-mode:tb-rl}}.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\:bg-accent-primary-alpha:hover{background-color:var(--bg-accent-primary-alpha,#5c8dea2b)}.hover\:text-accent-primary:hover{color:var(--text-accent-primary,#5c8dea)}.hover\:text-error:hover{color:var(--text-error,#f76464)}.hover\:text-icon-accent-primary:hover{color:var(--icon-accent-primary,#5c8dea)}.hover\:text-primary:hover{color:var(--text-primary,#f3f4f6)}.hover\:opacity-90:hover{opacity:.9}.focus-visible\:border-none:focus-visible{border-style:none}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}@media (min-width:640px){.sm\:inline{display:inline}}@media (min-width:768px){.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}}
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)}}}}div .dial-sm-popup{max-width:100%}@media (min-width:768px){div .dial-sm-popup{max-width:400px}}div .dial-md-popup{max-width:100%}@media (min-width:768px){div .dial-md-popup{max-width:800px}}div .dial-lg-popup{max-width:100%}@media (min-width:768px){div .dial-lg-popup{max-width:1200px}}div .dial-popup{position:relative;display:flex;height:100%;max-height:100%;width:100%;flex-direction:column;border-radius:3px;background-color:var(--bg-layer-3,#222932);--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)}@media (min-width:768px){div .dial-popup{height:auto}}div .dial-danger-popup{border-top-width:4px;border-color:var(--stroke-error,#f76464)}@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}::-webkit-scrollbar-corner,::-webkit-scrollbar-track,::-webkit-scrollbar-track:hover,:not(:hover)::-webkit-scrollbar-thumb{background-color:transparent}::-webkit-scrollbar-thumb{cursor:pointer;border-radius:3px;background-color:var(--bg-layer-4,#333942)}::-webkit-scrollbar{height:4px;width:4px}*{scrollbar-width:thin;scrollbar-color:transparent transparent}:hover{scrollbar-color:var(--bg-layer-4,#333942) transparent}.divide-y>:empty~:not([hidden]){border-top:none;border-bottom: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}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-bottom-0\.5{bottom:-.125rem}.-left-0\.5{left:-.125rem}.z-\[52\]{z-index:52}.z-\[53\]{z-index:53}.z-\[55\]{z-index:55}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.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-block{display:inline-block}.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-11{height:2.75rem}.h-12{height:3rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-\[10px\]{height:10px}.h-\[120px\]{height:120px}.h-\[18px\]{height:18px}.h-\[200px\]{height:200px}.h-\[22px\]{height:22px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[32px\]{height:32px}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[4px\]{height:4px}.h-\[500px\]{height:500px}.h-auto{height:auto}.h-full{height:100%}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-4{min-height:1rem}.min-h-\[220px\]{min-height:220px}.min-h-\[38px\]{min-height:38px}.min-h-\[42px\]{min-height:42px}.min-h-\[48px\]{min-height:48px}.min-h-\[72px\]{min-height:72px}.min-h-screen{min-height:100vh}.w-0{width:0}.w-12{width:3rem}.w-2{width:.5rem}.w-32{width:8rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-96{width:24rem}.w-\[10px\]{width:10px}.w-\[160px\]{width:160px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[250px\]{width:250px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[320px\]{width:320px}.w-\[360px\]{width:360px}.w-\[36px\]{width:36px}.w-\[400px\]{width:400px}.w-\[420px\]{width:420px}.w-\[450px\]{width:450px}.w-\[480px\]{width:480px}.w-\[4px\]{width:4px}.w-\[500px\]{width:500px}.w-\[520px\]{width:520px}.w-\[600px\]{width:600px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-\[100px\]{min-width:100px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[400px\]{min-width:400px}.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-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-\[80px\]{max-width:80px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-none{flex:none}.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}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin-steps{animation:spin .75s steps(8) infinite}.\!cursor-not-allowed{cursor:not-allowed!important}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.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}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.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-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.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-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-\[160px\]{-moz-column-gap:160px;column-gap:160px}.gap-y-1{row-gap:.25rem}.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))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.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)}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:3px}.rounded-\[8px\]{border-radius:8px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.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-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2,.border-b-\[2px\]{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.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-none{border-style:none}.border-\[\#F4CE46\]{--tw-border-opacity:1;border-color:rgb(244 206 70/var(--tw-border-opacity,1))}.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-secondary{border-color:var(--stroke-secondary,#222932)}.border-tertiary{border-color:var(--stroke-tertiary,#090d13)}.border-transparent{border-color:transparent}.border-b-accent-primary{border-bottom-color:var(--stroke-accent-primary,#5c8dea)}.border-l-accent-primary{border-left-color:var(--stroke-accent-primary,#5c8dea)}.\!bg-accent-secondary{background-color:var(--bg-accent-secondary,#37babc)!important}.bg-accent-primary{background-color:var(--bg-accent-primary,#5c8dea)}.bg-accent-primary-alpha{background-color:var(--bg-accent-primary-alpha,#5c8dea2b)}.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-0{background-color:var(--bg-layer-0,#000)}.bg-layer-1{background-color:var(--bg-layer-1,#090d13)}.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-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[6px\]{padding:6px}.px-0{padding-left:0;padding-right:0}.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-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[6px\]{padding-left:6px;padding-right:6px}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-\[6px\]{padding-bottom:6px}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font{font-family:var(--theme-font,var(--font-inter))}.text-base{font-size:1rem;line-height:1.5rem}.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-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-4{line-height:1rem}.leading-none{line-height:1}.tracking-wider{letter-spacing:.05em}.\!text-error{color:var(--text-error,#f76464)!important}.text-\[var\(--bg-layer-0\2c _\#000000\)\]{color:var(--bg-layer-0,#000)}.text-accent-primary{color:var(--text-accent-primary,#5c8dea)}.text-accent-secondary{color:var(--text-accent-secondary,#37babc)}.text-accent-tertiary{color:var(--text-accent-tertiary,#a972ff)}.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-icon-secondary{color:var(--icon-secondary,#7f8792)}.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)}.underline{text-decoration-line:underline}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 0 4px 0 var(--bg-blackout,#090d13b3);--tw-shadow-colored:0 0 4px 0 var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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-1{--tw-ring-offset-width:1px}.ring-offset-2{--tw-ring-offset-width:2px}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.\[writing-mode\:tb-rl\]{writing-mode:tb-rl}}.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\:border-hover:hover{border-color:var(--stroke-hover,#f3f4f6)}.hover\:bg-accent-primary-alpha:hover{background-color:var(--bg-accent-primary-alpha,#5c8dea2b)}.hover\:text-accent-primary:hover{color:var(--text-accent-primary,#5c8dea)}.hover\:text-accent-tertiary:hover{color:var(--text-accent-tertiary,#a972ff)}.hover\:text-error:hover{color:var(--text-error,#f76464)}.hover\:text-icon-accent-primary:hover{color:var(--icon-accent-primary,#5c8dea)}.hover\:text-primary:hover{color:var(--text-primary,#f3f4f6)}.hover\:opacity-90:hover{opacity:.9}.focus\:bg-accent-primary-alpha:focus{background-color:var(--bg-accent-primary-alpha,#5c8dea2b)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:border-none:focus-visible{border-style:none}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:max-w-\[1200px\]{max-width:1200px}.md\:max-w-\[400px\]{max-width:400px}.md\:max-w-\[800px\]{max-width:800px}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-4{padding:1rem}}@media (min-width:1024px){.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
@@ -0,0 +1,41 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { DialBreadcrumbPathItem } from '../../models/breadcrumb';
3
+ export interface DialBreadcrumbProps {
4
+ pathItems?: DialBreadcrumbPathItem[];
5
+ separator?: ReactNode;
6
+ ariaLabel?: string;
7
+ cssClass?: string;
8
+ children?: ReactNode;
9
+ titleCssClass?: string;
10
+ }
11
+ /**
12
+ * Breadcrumb navigation component with horizontal scroll on overflow.
13
+ *
14
+ * Use either the `pathItems` prop or compose with `<DialBreadcrumbItem/>` as children.
15
+ * The last item is treated as the current page.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <DialBreadcrumb
20
+ * pathItems={[
21
+ * { title: 'Home', href: '/' },
22
+ * { title: 'Section', href: '/section' },
23
+ * { title: 'Current Page' },
24
+ * ]}
25
+ * />
26
+ *
27
+ * <DialBreadcrumb>
28
+ * <DialBreadcrumbItem title="Home" href="/" />
29
+ * <DialBreadcrumbItem title="Section" href="/section" />
30
+ * <DialBreadcrumbItem title="Current Page" />
31
+ * </DialBreadcrumb>
32
+ * ```
33
+ *
34
+ * @param pathItems - Array of breadcrumb pathItems (see `DialBreadcrumbItem`).
35
+ * @param separator - Custom separator node (default: right chevron icon).
36
+ * @param ariaLabel - Aria label for the `<nav>` element (default: "Breadcrumb").
37
+ * @param cssClass - Additional CSS classes for the `<nav>` container.
38
+ * @param children - Alternatively, compose with `<DialBreadcrumbItem/>` as children.
39
+ * @param titleCssClass - Additional CSS classes applied to each item when using `pathItems` prop.
40
+ */
41
+ export declare const DialBreadcrumb: FC<DialBreadcrumbProps>;
@@ -0,0 +1,13 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface DialBreadcrumbItemProps {
3
+ title: ReactNode;
4
+ href?: string;
5
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
6
+ disabled?: boolean;
7
+ iconBefore?: ReactNode;
8
+ cssClass?: string;
9
+ titleCssClass?: string;
10
+ isLast?: boolean;
11
+ separator?: ReactNode;
12
+ }
13
+ export declare const DialBreadcrumbItem: FC<DialBreadcrumbItemProps>;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const breadcrumbBaseClasses = "w-full overflow-x-auto";
3
+ export declare const breadcrumbListClasses = "flex flex-nowrap items-center gap-2 min-w-0 px-0 py-0 whitespace-nowrap";
4
+ export declare const breadcrumbItemBaseClasses = "flex items-center gap-2 min-w-0 shrink-0 dial-small";
5
+ export declare const breadcrumbLinkBaseClasses = "inline-flex items-center gap-1 min-w-0 transition-colors";
6
+ export declare const breadcrumbLinkInteractiveClasses = "text-secondary hover:text-accent-primary";
7
+ export declare const breadcrumbCurrentClasses = "text-primary cursor-default";
8
+ export declare const breadcrumbSeparatorClasses = "flex-none inline-flex items-center leading-none text-icon-secondary";
9
+ export declare const defaultSeparator: ReactNode;
@@ -1,12 +1,13 @@
1
1
  import { FC } from 'react';
2
2
  export interface DialCheckboxProps {
3
3
  id: string;
4
- label?: string;
4
+ label?: string | React.ReactNode;
5
5
  checked: boolean;
6
6
  disabled?: boolean;
7
7
  indeterminate?: boolean;
8
8
  ariaLabel?: string;
9
9
  onChange?: (value?: boolean, id?: string) => void;
10
+ cssClass?: string;
10
11
  }
11
12
  /**
12
13
  * A Checkbox component with styling options
@@ -29,5 +30,6 @@ export interface DialCheckboxProps {
29
30
  * @param [indeterminate=false] - indeterminate state
30
31
  * @param [ariaLabel] - Accessible label for screen readers when no title is provided
31
32
  * @param [onChange] - Callback function called when the checkbox value changes
33
+ * @param [cssClass] - Additional CSS classes to apply to the checkbox wrapper
32
34
  */
33
35
  export declare const DialCheckbox: FC<DialCheckboxProps>;
@@ -4,7 +4,7 @@ import { ConfirmationPopupVariant } from '../../types/confirmation-popup';
4
4
  export interface DialConfirmationPopupProps extends DialPopupProps {
5
5
  description?: string | ReactNode;
6
6
  descriptionCssClass?: string;
7
- confirmLabel: string;
7
+ confirmLabel?: string;
8
8
  cancelLabel?: string;
9
9
  isLoading?: boolean;
10
10
  disableConfirmButton?: boolean;
@@ -36,7 +36,7 @@ export interface DialConfirmationPopupProps extends DialPopupProps {
36
36
  * @param [description] - Secondary text (ignored when `children` set)
37
37
  * @param [descriptionCssClass] - Custom CSS class for the description
38
38
  * @param [open=false] - Controls visibility of the popup
39
- * @param confirmLabel - Label for the confirm button
39
+ * @param [confirmLabel="Ok"] - Label for the confirm button
40
40
  * @param [cancelLabel="Cancel"] - Label for the cancel button
41
41
  * @param [isLoading=false] - Shows loader placeholder and hides actions
42
42
  * @param [disableConfirmButton=false] - Disables the confirm button
@@ -3,6 +3,7 @@ import { ConfirmationPopupVariant } from '../../types/confirmation-popup';
3
3
  export declare const actionsBaseClasses = "flex justify-end gap-2 px-6 py-4";
4
4
  export declare const descriptionBaseClasses = "text-secondary dial-small-150 px-6 py-4";
5
5
  export declare const defaultCancelLabel = "Cancel";
6
+ export declare const defaultConfirmLabel = "Ok";
6
7
  export declare const variantConfig: Record<ConfirmationPopupVariant, {
7
8
  container?: string;
8
9
  confirmVariant: ButtonVariant;
@@ -0,0 +1,31 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface DialDraggableItemProps {
3
+ id: string;
4
+ children: ReactNode;
5
+ cssClass?: string;
6
+ findItem?: (field: string) => number;
7
+ moveItem?: (field: string, atIndex: number) => void;
8
+ handleAriaLabel?: string;
9
+ }
10
+ /**
11
+ * A lightweight wrapper that makes its children sortable via drag-and-drop.
12
+ *
13
+ * Renders a row with a grab handle (left) and the provided content (right).
14
+ * Integrates with `react-dnd` using a simple "column" drag type and delegates
15
+ * reordering logic to the provided `findItem` and `moveItem` callbacks.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <DialDraggableItem id="a" findItem={find} moveItem={move}>
20
+ * <span>Item A</span>
21
+ * </DialDraggableItem>
22
+ * ```
23
+ *
24
+ * @param id - Unique identifier of the draggable item
25
+ * @param children - Content rendered within the draggable row
26
+ * @param [cssClass] - Additional CSS classes applied to the root container
27
+ * @param [findItem] - Function to resolve an item's current index by id
28
+ * @param [moveItem] - Function to move an item (by id) to a target index
29
+ * @param [handleAriaLabel='Drag item'] - Accessible label for the handle
30
+ */
31
+ export declare const DialDraggableItem: FC<DialDraggableItemProps>;
@@ -0,0 +1,3 @@
1
+ export declare const DRAG_TYPE = "column";
2
+ export declare const containerBaseClasses = "flex items-center";
3
+ export declare const handleBaseClasses = "mr-3 cursor-move text-secondary";
@@ -8,6 +8,8 @@ export interface DropdownMenuProps {
8
8
  key: string;
9
9
  domEvent: MouseEvent;
10
10
  }) => void;
11
+ header?: ReactNode | (() => ReactNode);
12
+ footer?: ReactNode | (() => ReactNode);
11
13
  }
12
14
  export interface DialDropdownProps {
13
15
  children: ReactNode;
@@ -15,6 +17,7 @@ export interface DialDropdownProps {
15
17
  renderOverlay?: () => ReactNode;
16
18
  trigger?: DropdownTrigger[];
17
19
  placement?: Placement;
20
+ allowedPlacements?: Placement[];
18
21
  disabled?: boolean;
19
22
  open?: boolean;
20
23
  defaultOpen?: boolean;
@@ -25,6 +28,8 @@ export interface DialDropdownProps {
25
28
  listClassName?: string;
26
29
  outsidePressIgnoreRef?: RefObject<HTMLElement | null>;
27
30
  outsideClosable?: boolean;
31
+ anchorToMouse?: boolean;
32
+ matchReferenceWidth?: boolean;
28
33
  }
29
34
  /**
30
35
  *
@@ -56,6 +61,7 @@ export interface DialDropdownProps {
56
61
  * @param [renderOverlay] - Render function for fully custom overlay content (ignored when `menu` is provided)
57
62
  * @param [trigger=[DropdownTrigger.Click]] - Interactions that open the menu
58
63
  * @param [placement] - Floating UI placement string; when omitted, auto placement is used
64
+ * @param [allowedPlacements] - Restricts the allowed placements
59
65
  * @param [disabled=false] - Disables interaction and prevents opening
60
66
  * @param [open] - Controlled open state (when provided, `defaultOpen` is ignored)
61
67
  * @param [defaultOpen=false] - Initial open state in uncontrolled mode
@@ -66,5 +72,7 @@ export interface DialDropdownProps {
66
72
  * @param [listClassName] - Additional CSS classes applied to the floating overlay
67
73
  * @param [outsidePressIgnoreRef] - Ref to an element that should not trigger outside press behavior
68
74
  * @param [outsideClosable=true] - Whether clicks outside the overlay should close it
75
+ * @param [anchorToMouse=false] - Whether to anchor the dropdown to the mouse position
76
+ * @param [matchReferenceWidth=false] - Whether to match the reference element's width
69
77
  */
70
78
  export declare const DialDropdown: FC<DialDropdownProps>;
@@ -0,0 +1,31 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { DialTooltipContainerOptions } from '../Tooltip/TooltipContext';
3
+ export interface DialEllipsisTooltipProps extends DialTooltipContainerOptions {
4
+ text: string | ReactNode;
5
+ cssClass?: string;
6
+ contentClassName?: string;
7
+ hideTooltip?: boolean;
8
+ }
9
+ /**
10
+ * Single-line text with CSS ellipsis that shows a tooltip **only when actually truncated**.
11
+ * If the text fits, tooltip content is empty and the popup stays hidden.
12
+ *
13
+ * Important: width must be finite for truncation.
14
+ * Consumers can override via `cssClass`.
15
+ *
16
+ * a11y: when truncated, the full text is exposed via `aria-label` on the reference node.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <DialEllipsisTooltip text="Very long message that will be truncated" />
21
+ * <DialEllipsisTooltip text={<span className="font-medium">Custom node</span>} cssClass="max-w-[160px]" />
22
+ * <DialEllipsisTooltip text="Tooltip disabled even if truncated" hideTooltip />
23
+ * ```
24
+ *
25
+ * @param text The text or node to display (truncated with ellipsis if too long).
26
+ * @param cssClass Optional additional CSS classes for the text container (e.g. to set width).
27
+ * @param contentClassName Optional additional CSS classes for the tooltip content.
28
+ * @param hideTooltip If true, disables the tooltip even if text is truncated.
29
+ * @param tooltipProps Additional props to pass to the underlying DialTooltipContainer.
30
+ */
31
+ export declare const DialEllipsisTooltip: FC<DialEllipsisTooltipProps>;
@@ -0,0 +1 @@
1
+ export declare const tooltipContentBaseClasses = "text-primary";
@@ -1,10 +1,11 @@
1
- import { FC } from 'react';
1
+ import { FC, ReactNode } from 'react';
2
2
  export interface DialFieldLabelProps {
3
- fieldTitle?: string;
3
+ fieldTitle?: string | ReactNode;
4
4
  htmlFor: string;
5
5
  optional?: boolean;
6
6
  optionalText?: string;
7
7
  cssClass?: string;
8
+ description?: string;
8
9
  }
9
10
  /**
10
11
  * A field label component
@@ -20,5 +21,6 @@ export interface DialFieldLabelProps {
20
21
  * @param [optional=false] - Whether the field is optional (displays "(Optional)" text if optionalText is not provided)
21
22
  * @param [optionalText="(Optional)"] - Custom text for optional indicator
22
23
  * @param [cssClass] - Additional CSS classes to apply to the label element
24
+ * @param [description] - Additional description text, displayed below the label.
23
25
  */
24
26
  export declare const DialFieldLabel: FC<DialFieldLabelProps>;
@@ -0,0 +1,31 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export interface DialFileIconProps {
3
+ extension: string;
4
+ size?: number;
5
+ stroke?: number;
6
+ cssClass?: string;
7
+ decorative?: boolean;
8
+ label?: string;
9
+ indicator?: ReactNode;
10
+ }
11
+ /**
12
+ * Renders a file-type icon based on a file extension.
13
+ *
14
+ * Uses DialIcon to provide consistent icon wrapper styling.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <DialFileIcon extension=".pdf" />
19
+ * <DialFileIcon extension="tsx" size={28} stroke={1.25} />
20
+ * <DialFileIcon extension="unknown" decorative /> // decorative, hidden from AT
21
+ * ```
22
+ *
23
+ * @param extension - File extension string (with or without leading dot)
24
+ * @param [size=baseIconProps.size] - Icon pixel size
25
+ * @param [stroke=baseIconProps.stroke] - Tabler icon stroke width
26
+ * @param [cssClass] - Additional classes on the container
27
+ * @param [decorative=false] - Whether the icon should be hidden from assistive technologies
28
+ * @param [label] - Accessible label when not decorative; defaults to "<EXT> file icon"
29
+ * @param [indicator] - Optional indicator element to display alongside the icon
30
+ */
31
+ export declare const DialFileIcon: FC<DialFileIconProps>;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export type ExtensionKey = '.bmp' | '.cpp' | '.c' | '.cs' | '.css' | '.csv' | '.doc' | '.docx' | '.html' | '.ini' | '.jpg' | '.js' | '.json' | '.jsx' | '.md' | '.pdf' | '.php' | '.png' | '.ppt' | '.py' | '.rs' | '.sql' | '.svg' | '.ts' | '.tsx' | '.txt' | '.vue' | '.xls' | '.xml' | '.zip';
3
+ export interface BaseFileIconOpts {
4
+ size?: number;
5
+ stroke?: number;
6
+ className?: string;
7
+ }
8
+ export declare const fileIconFactories: Record<string, (opts: BaseFileIconOpts) => ReactNode>;
9
+ export declare const supportedExtensions: ExtensionKey[];
@@ -0,0 +1,20 @@
1
+ import { FC } from 'react';
2
+ export interface DialFileNameProps {
3
+ name: string;
4
+ cssClass?: string;
5
+ shared?: boolean;
6
+ }
7
+ /**
8
+ * Component to display a file name with a file icon and shared indicator.
9
+ * Handles long names with ellipsis and tooltip.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <DialFileName name="Document.pdf" />
14
+ * ```
15
+ *
16
+ * @param name - Full file name with or without extension
17
+ * @param cssClass - Additional CSS classes for the root container
18
+ * @param shared - Whether the file is shared
19
+ */
20
+ export declare const DialFileName: FC<DialFileNameProps>;
@@ -0,0 +1,20 @@
1
+ import { FC } from 'react';
2
+ export interface DialFolderNameProps {
3
+ name: string;
4
+ cssClass?: string;
5
+ shared?: boolean;
6
+ }
7
+ /**
8
+ * Component to display a folder name with a folder icon and shared indicator.
9
+ * Handles long names with ellipsis and tooltip.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <DialFolderName name="Organization" />
14
+ * ```
15
+ *
16
+ * @param name - Folder name
17
+ * @param cssClass - Additional CSS classes for the root container
18
+ * @param shared - Whether the folder is shared
19
+ */
20
+ export declare const DialFolderName: FC<DialFolderNameProps>;
@@ -0,0 +1,77 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { FormItemOrientation } from '../../types/form-item';
3
+ export interface DialFormItemProps {
4
+ elementId: string;
5
+ label?: string | ReactNode;
6
+ optional?: boolean;
7
+ optionalText?: string;
8
+ description?: string;
9
+ error?: string | ReactNode | boolean;
10
+ orientation?: FormItemOrientation;
11
+ labelVisuallyHidden?: boolean;
12
+ cssClass?: string;
13
+ childrenCssClass?: string;
14
+ labelCssClass?: string;
15
+ errorCssClass?: string;
16
+ children: ReactNode;
17
+ captionDescription?: string;
18
+ readonly?: boolean;
19
+ value?: ReactNode | string;
20
+ defaultEmptyText?: string;
21
+ }
22
+ /**
23
+ * A layout wrapper for form controls with label, helper text and error message.
24
+ *
25
+ * Uses `DialFieldLabel` for the label and `DialErrorText` for consistent error styling.
26
+ * Wires accessibility with:
27
+ * - `role="group"`
28
+ * - `aria-labelledby` (when label is present)
29
+ * - `aria-describedby` (description and/or error ids)
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * <DialFormItem elementId="transport" label="Transport" cssClass="w-[320px]">
34
+ * <DialSelect
35
+ * elementId="transport"
36
+ * value={transport}
37
+ * options={transportOptions}
38
+ * onChange={(val) => setTransport(val as ToolsetTransport)}
39
+ * />
40
+ * </DialFormItem>
41
+ *
42
+ * // With description and error
43
+ * <DialFormItem
44
+ * elementId="email"
45
+ * label="Email Address"
46
+ * description="We'll never share your email."
47
+ * error="Please enter a valid email address."
48
+ * >
49
+ * <DialInput
50
+ * elementId="email"
51
+ * type="email"
52
+ * value={email}
53
+ * onChange={(val) => setEmail(val as string)}
54
+ * placeholder="name@company.com"
55
+ * />
56
+ * </DialFormItem>
57
+ * ```
58
+ *
59
+ * @param elementId - Unique identifier for the form control element (used for accessibility)
60
+ * @param [label] - The label text or ReactNode to display above the form control
61
+ * @param [optional=false] - Whether the field is optional (displays "(Optional)" indicator)
62
+ * @param [optionalText="(Optional)"] - Custom text for optional indicator
63
+ * @param [description] - Additional description text, displayed below the label.
64
+ * @param [error] - Error message text or ReactNode to display below the form control (replaces description when present)
65
+ * @param [orientation='vertical'] - Layout orientation, either 'vertical' (label above control) or 'horizontal' (label to the left)
66
+ * @param [labelVisuallyHidden=false] - Whether to visually hide the label (still accessible to screen readers)
67
+ * @param [cssClass] - Additional CSS classes to apply to the container div
68
+ * @param [childrenCssClass] - Additional CSS classes to apply to the children container div
69
+ * @param [labelCssClass] - Additional CSS classes to apply to the label element
70
+ * @param [errorCssClass] - Additional CSS classes to apply to the error message element
71
+ * @param [captionDescription] - Additional caption description text, displayed below the form control.
72
+ * @param [readonly=false] - Whether the form control is read-only (displays value as text, no input element)
73
+ * @param [value] - The current value of the form control
74
+ * @param [defaultEmptyText="None"] - Text to display when readonly and value is empty
75
+ * @param children - The form control element(s) to render inside the DialFormItem
76
+ */
77
+ export declare const DialFormItem: FC<DialFormItemProps>;
@@ -0,0 +1,3 @@
1
+ import { FormItemOrientation } from '../../types/form-item';
2
+ export declare const containerBaseClasses = "w-full flex";
3
+ export declare const orientationClassMap: Record<FormItemOrientation, string>;
@@ -0,0 +1,44 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { DialPopupProps } from '../Popup/Popup';
3
+ export interface DialFormPopupProps extends DialPopupProps {
4
+ submitLabel?: string;
5
+ cancelLabel?: string;
6
+ isLoading?: boolean;
7
+ disableSubmitButton?: boolean;
8
+ submitClassName?: string;
9
+ onSubmit: () => void;
10
+ onCancel?: () => void;
11
+ children?: ReactNode;
12
+ }
13
+ /**
14
+ * A form-oriented popup dialog.
15
+ *
16
+ * Provides an accessible popup with a title, custom body,
17
+ * and a footer with "Cancel" and "Submit" actions.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <DialFormPopup
22
+ * open
23
+ * title="Create Model"
24
+ * onClose={() => setOpen(false)}
25
+ * onSubmit={handleSubmit}
26
+ * />
27
+ * ```
28
+ *
29
+ * @param title - Title content for the header
30
+ * @param [open=false] - Controls visibility of the popup
31
+ * @param [submitLabel="Submit"] - Label for the primary action button
32
+ * @param [cancelLabel="Cancel"] - Label for the cancel button
33
+ * @param [isLoading=false] - Shows loader placeholder and hides actions
34
+ * @param [disableSubmitButton=false] - Disables the submit button
35
+ * @param [cssClass] - Extra classes for the popup container
36
+ * @param [submitClassName] - Extra classes merged into the submit button
37
+ * @param onClose - Fired on close
38
+ * @param onSubmit - Fired on submit
39
+ * @param [onCancel] - Fired on cancel (falls back to `onClose`)
40
+ * @param [children] - Custom body content
41
+ * @param [dividers=true] - Whether to render separators between sections
42
+ * @param [size=PopupSize.Md] - Size of the popup
43
+ */
44
+ export declare const DialFormPopup: FC<DialFormPopupProps>;
@@ -0,0 +1,3 @@
1
+ export declare const defaultSubmitLabel = "Create";
2
+ export declare const defaultCancelLabel = "Cancel";
3
+ export declare const actionsBaseClasses = "flex items-center justify-end gap-2 px-6 py-3";
@@ -2,6 +2,7 @@ import { FC, ReactNode } from 'react';
2
2
  export interface DialIconProps {
3
3
  icon?: ReactNode;
4
4
  className?: string;
5
+ label?: string;
5
6
  }
6
7
  /**
7
8
  * A wrapper component for rendering icons with consistent styling
@@ -1,12 +1,14 @@
1
- import { FC } from 'react';
1
+ import { FC, FocusEvent } from 'react';
2
2
  import { InputBaseProps } from '../../models/field-control-props';
3
3
  export interface DialInputProps extends InputBaseProps {
4
4
  type?: string;
5
5
  containerCssClass?: string;
6
6
  cssClass?: string;
7
7
  hideBorder?: boolean;
8
+ tooltipText?: string;
8
9
  tooltipTriggerClassName?: string;
9
- onChange?: (value: string) => void;
10
+ onChange?: (value?: string) => void;
11
+ onBlur?: (event: FocusEvent<HTMLInputElement, Element>) => void;
10
12
  }
11
13
  /**
12
14
  * A flexible input component with icon support and various styling options
@@ -24,7 +26,9 @@ export interface DialInputProps extends InputBaseProps {
24
26
  *
25
27
  * @param elementId - Unique identifier for the input element
26
28
  * @param [value] - The current value of the input
29
+ * @param [defaultValue] - The initial value of the input
27
30
  * @param [onChange] - Callback function called when the input value changes
31
+ * @param [onBlur] - Callback function called when the input blurs
28
32
  * @param [iconBefore] - Icon or element to display before the input
29
33
  * @param [iconAfter] - Icon or element to display after the input
30
34
  * @param [placeholder] - Placeholder text displayed when input is empty
@@ -40,6 +44,7 @@ export interface DialInputProps extends InputBaseProps {
40
44
  * @param [prefix] - Text to display inside the input on the left
41
45
  * @param [suffix] - Text to display inside the input on the right
42
46
  * @param [textBeforeInput] - Text to display before the input in a separate field
47
+ * @param [tooltipText] - The text to display inside the tooltip. If empty, the tooltip will display the value prop.
43
48
  * @param [tooltipTriggerClassName] - Additional CSS classes to apply to the tooltip
44
49
  * @param [textAfterInput] - Text to display after the input in a separate field
45
50
  */