@chronowl/widget 1.0.0
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/LICENSE +21 -0
- package/dist/ChronOwlWidget.d.ts +22 -0
- package/dist/components/atoms/Badge.d.ts +10 -0
- package/dist/components/atoms/Button.d.ts +10 -0
- package/dist/components/atoms/Card.d.ts +9 -0
- package/dist/components/atoms/Divider.d.ts +9 -0
- package/dist/components/atoms/Icon.d.ts +10 -0
- package/dist/components/atoms/Input.d.ts +10 -0
- package/dist/components/atoms/Label.d.ts +9 -0
- package/dist/components/atoms/Spinner.d.ts +9 -0
- package/dist/components/atoms/Typography.d.ts +10 -0
- package/dist/components/atoms/index.d.ts +9 -0
- package/dist/components/hooks/useAvailability.d.ts +11 -0
- package/dist/components/hooks/useBooking.d.ts +12 -0
- package/dist/components/hooks/useForm.d.ts +19 -0
- package/dist/components/hooks/useServices.d.ts +10 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/molecules/AvailabilitySlot.d.ts +9 -0
- package/dist/components/molecules/ButtonGroup.d.ts +9 -0
- package/dist/components/molecules/ConfirmationBadge.d.ts +9 -0
- package/dist/components/molecules/DateSelector.d.ts +10 -0
- package/dist/components/molecules/EmptyState.d.ts +9 -0
- package/dist/components/molecules/FormGroup.d.ts +10 -0
- package/dist/components/molecules/InputWithIcon.d.ts +9 -0
- package/dist/components/molecules/LoadingState.d.ts +9 -0
- package/dist/components/molecules/ServiceCard.d.ts +10 -0
- package/dist/components/molecules/TimeSelector.d.ts +9 -0
- package/dist/components/molecules/index.d.ts +10 -0
- package/dist/components/organisms/AvailabilityGrid.d.ts +9 -0
- package/dist/components/organisms/BookingForm.d.ts +10 -0
- package/dist/components/organisms/Calendar.d.ts +10 -0
- package/dist/components/organisms/ConfirmationModal.d.ts +10 -0
- package/dist/components/organisms/ErrorModal.d.ts +9 -0
- package/dist/components/organisms/Footer.d.ts +9 -0
- package/dist/components/organisms/Header.d.ts +10 -0
- package/dist/components/organisms/ServiceList.d.ts +9 -0
- package/dist/components/organisms/Stepper.d.ts +10 -0
- package/dist/components/organisms/TimeSlotSelector.d.ts +10 -0
- package/dist/components/organisms/index.d.ts +10 -0
- package/dist/components/pages/BookingPage.d.ts +17 -0
- package/dist/components/pages/ConfirmationPage.d.ts +16 -0
- package/dist/components/pages/ErrorPage.d.ts +14 -0
- package/dist/components/pages/index.d.ts +3 -0
- package/dist/components/templates/BookingPageTemplate.d.ts +11 -0
- package/dist/components/templates/CenteredLayout.d.ts +9 -0
- package/dist/components/templates/MainLayout.d.ts +11 -0
- package/dist/components/templates/index.d.ts +3 -0
- package/dist/constants/api.d.ts +14 -0
- package/dist/constants/design.d.ts +56 -0
- package/dist/favicon.svg +21 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +2053 -0
- package/dist/style.css +1 -0
- package/dist/tokens/borders.d.ts +14 -0
- package/dist/tokens/colors.d.ts +56 -0
- package/dist/tokens/elevation.d.ts +15 -0
- package/dist/tokens/index.d.ts +12 -0
- package/dist/tokens/motion.d.ts +38 -0
- package/dist/tokens/spacing.d.ts +28 -0
- package/dist/tokens/typography.d.ts +107 -0
- package/dist/types/api.d.ts +43 -0
- package/dist/types/booking.d.ts +50 -0
- package/dist/types/components.d.ts +242 -0
- package/dist/utils/api.d.ts +10 -0
- package/dist/utils/helpers.d.ts +3 -0
- package/dist/utils/validators.d.ts +6 -0
- package/package.json +55 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root,.chronowl-light{--co-primary: #2C3E50;--co-on-primary: #FFFFFF;--co-primary-container: #E8F4F8;--co-on-primary-container: #2C3E50;--co-secondary: #E8F4F8;--co-on-secondary: #2C3E50;--co-secondary-container: #D1E8F0;--co-on-secondary-container: #1A252F;--co-tertiary: #1A252F;--co-on-tertiary: #FFFFFF;--co-tertiary-container: #34495E;--co-on-tertiary-container: #E8F4F8;--co-neutral: #7F8C8D;--co-on-neutral: #FFFFFF;--co-neutral-variant: #BDC3C7;--co-on-neutral-variant: #2C3E50;--co-surface: #FFFFFF;--co-on-surface: #2C3E50;--co-surface-variant: #F0F3F5;--co-on-surface-variant: #7F8C8D;--co-surface-dim: #E0E3E5;--co-surface-bright: #FFFFFF;--co-surface-container-lowest: #FFFFFF;--co-surface-container-low: #F8F9FA;--co-surface-container: #F0F3F5;--co-surface-container-high: #E8EBEE;--co-surface-container-highest: #E0E3E5;--co-outline: #BDC3C7;--co-outline-variant: #E0E3E5;--co-error: #C0392B;--co-on-error: #FFFFFF;--co-error-container: #FADBD8;--co-on-error-container: #78281F;--co-warning: #F39C12;--co-on-warning: #FFFFFF;--co-warning-container: #FEF5E7;--co-on-warning-container: #7E5109;--co-success: #27AE60;--co-on-success: #FFFFFF;--co-success-container: #D5F5E3;--co-on-success-container: #1E8449;--co-inverse-surface: #2C3E50;--co-inverse-on-surface: #FFFFFF;--co-inverse-primary: #A3C4D4;--co-scrim: #000000;--co-shadow: #000000;--co-font-family: "Inter", "Roboto", system-ui, sans-serif;--co-elevation-0: none;--co-elevation-1: 0 1px 3px rgba(44, 62, 80, .12);--co-elevation-2: 0 3px 6px rgba(44, 62, 80, .16);--co-elevation-3: 0 6px 10px rgba(44, 62, 80, .2);--co-elevation-4: 0 8px 16px rgba(44, 62, 80, .24);--co-elevation-5: 0 12px 28px rgba(44, 62, 80, .3);--co-space-0: 0px;--co-space-1: 4px;--co-space-2: 8px;--co-space-3: 12px;--co-space-4: 16px;--co-space-5: 24px;--co-space-6: 32px;--co-space-7: 40px;--co-space-8: 48px;--co-corner-xs: 4px;--co-corner-sm: 8px;--co-corner-md: 12px;--co-corner-lg: 16px;--co-corner-xl: 28px;--co-corner-full: 999px;--co-duration-short-1: 50ms;--co-duration-short-2: .1s;--co-duration-medium-1: .2s;--co-duration-medium-2: .3s;--co-duration-long-1: .4s;--co-duration-long-2: .5s;--co-easing-standard: cubic-bezier(.2, 0, 0, 1);--co-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--co-easing-decelerate: cubic-bezier(.05, .7, .1, 1);--co-easing-accelerate: cubic-bezier(.3, 0, .8, .15)}.chronowl-dark{--co-primary: #A3C4D4;--co-on-primary: #1A252F;--co-primary-container: #2C3E50;--co-on-primary-container: #E8F4F8;--co-secondary: #34495E;--co-on-secondary: #E8F4F8;--co-secondary-container: #1A252F;--co-on-secondary-container: #D1E8F0;--co-tertiary: #E8F4F8;--co-on-tertiary: #1A252F;--co-neutral: #95A5A6;--co-on-neutral: #1A252F;--co-neutral-variant: #5D6D7E;--co-on-neutral-variant: #E8F4F8;--co-surface: #1A252F;--co-on-surface: #E8F4F8;--co-surface-variant: #2C3E50;--co-on-surface-variant: #95A5A6;--co-surface-dim: #141C23;--co-surface-bright: #34495E;--co-surface-container-lowest: #0F161B;--co-surface-container-low: #1A252F;--co-surface-container: #212F3C;--co-surface-container-high: #2C3E50;--co-surface-container-highest: #34495E;--co-outline: #5D6D7E;--co-outline-variant: #34495E;--co-error: #E74C3C;--co-on-error: #FFFFFF;--co-error-container: #78281F;--co-on-error-container: #FADBD8;--co-warning: #F5B041;--co-on-warning: #1A252F;--co-warning-container: #7E5109;--co-on-warning-container: #FEF5E7;--co-success: #2ECC71;--co-on-success: #1A252F;--co-success-container: #1E8449;--co-on-success-container: #D5F5E3;--co-inverse-surface: #E8F4F8;--co-inverse-on-surface: #1A252F;--co-inverse-primary: #2C3E50;--co-elevation-1: 0 1px 3px rgba(0, 0, 0, .3);--co-elevation-2: 0 3px 6px rgba(0, 0, 0, .4);--co-elevation-3: 0 6px 10px rgba(0, 0, 0, .45);--co-elevation-4: 0 8px 16px rgba(0, 0, 0, .5);--co-elevation-5: 0 12px 28px rgba(0, 0, 0, .6)}*,:before,:after{--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: rgb(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: rgb(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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Roboto,system-ui,sans-serif;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,samp,pre{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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{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}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.chronowl-root{font-family:var(--co-font-family);color:var(--co-on-surface);background-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.chronowl-root *,.chronowl-root *:before,.chronowl-root *:after{box-sizing:border-box}.chronowl-root :focus-visible{outline:2px solid var(--co-primary);outline-offset:2px}.chronowl-root{scroll-behavior:smooth}.chronowl-root ::-webkit-scrollbar{width:4px}.chronowl-root ::-webkit-scrollbar-track{background:transparent}.chronowl-root ::-webkit-scrollbar-thumb{background-color:var(--co-neutral-variant);border-radius:var(--co-corner-full)}.container{width:100%}@media (min-width: 320px){.container{max-width:320px}}@media (min-width: 480px){.container{max-width:480px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1200px){.container{max-width:1200px}}@media (min-width: 1536px){.container{max-width:1536px}}.chronowl-widget{container-name:chronowl}@keyframes chronowl-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes chronowl-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes chronowl-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes chronowl-pulse{0%,to{opacity:1}50%{opacity:.6}}.chronowl-root dialog::backdrop{background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chronowl-root dialog[open]{animation:chronowl-scale-in var(--co-duration-medium-2) var(--co-easing-decelerate) both}@container chronowl (max-width: 360px){.chronowl-widget{font-size:14px}}@container chronowl (min-width: 480px){.chronowl-widget{font-size:16px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.left-11{left:2.75rem}.left-3{left:.75rem}.left-4{left:1rem}.right-3{right:.75rem}.top-1\/2{top:50%}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.max-h-\[90vh\]{max-height:90vh}.min-h-\[36px\]{min-height:36px}.min-h-\[400px\]{min-height:400px}.min-h-\[44px\]{min-height:44px}.min-h-\[56px\]{min-height:56px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-20{width:5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[90vw\]{width:90vw}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[36px\]{min-width:36px}.min-w-\[44px\]{min-width:44px}.max-w-\[320px\]{max-width:320px}.max-w-\[480px\]{max-width:480px}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.origin-left{transform-origin:left}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(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 * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:999px}.rounded-md{border-radius:12px}.rounded-sm{border-radius:8px}.rounded-xl{border-radius:28px}.rounded-xs{border-radius:4px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-current{border-color:currentColor}.border-error{--tw-border-opacity: 1;border-color:rgb(192 57 43 / var(--tw-border-opacity, 1))}.border-neutral-variant{--tw-border-opacity: 1;border-color:rgb(189 195 199 / var(--tw-border-opacity, 1))}.border-neutral-variant\/30{border-color:#bdc3c74d}.border-neutral-variant\/40{border-color:#bdc3c766}.border-primary{--tw-border-opacity: 1;border-color:rgb(44 62 80 / var(--tw-border-opacity, 1))}.border-success{--tw-border-opacity: 1;border-color:rgb(39 174 96 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-warning{--tw-border-opacity: 1;border-color:rgb(243 156 18 / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.bg-error{--tw-bg-opacity: 1;background-color:rgb(192 57 43 / var(--tw-bg-opacity, 1))}.bg-error-container{--tw-bg-opacity: 1;background-color:rgb(250 219 216 / var(--tw-bg-opacity, 1))}.bg-neutral-variant{--tw-bg-opacity: 1;background-color:rgb(189 195 199 / var(--tw-bg-opacity, 1))}.bg-neutral-variant\/40{background-color:#bdc3c766}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(44 62 80 / var(--tw-bg-opacity, 1))}.bg-primary-container,.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.bg-secondary-container{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.bg-success{--tw-bg-opacity: 1;background-color:rgb(39 174 96 / var(--tw-bg-opacity, 1))}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-surface-variant{--tw-bg-opacity: 1;background-color:rgb(240 243 245 / var(--tw-bg-opacity, 1))}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(243 156 18 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.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-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-11{padding-left:2.75rem}.pr-11{padding-right:2.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Inter,Roboto,system-ui,sans-serif}.text-body-lg{font-size:16px;line-height:24px;letter-spacing:.15px;font-weight:400}.text-body-md{font-size:14px;line-height:20px;letter-spacing:.25px;font-weight:400}.text-body-sm{font-size:12px;line-height:16px;letter-spacing:.4px;font-weight:400}.text-display-lg{font-size:57px;line-height:64px;letter-spacing:-.25px;font-weight:700}.text-display-md{font-size:45px;line-height:52px;letter-spacing:0px;font-weight:700}.text-display-sm{font-size:36px;line-height:44px;letter-spacing:0px;font-weight:700}.text-headline-lg{font-size:32px;line-height:40px;letter-spacing:0px;font-weight:700}.text-headline-md{font-size:28px;line-height:36px;letter-spacing:0px;font-weight:700}.text-headline-sm{font-size:24px;line-height:32px;letter-spacing:0px;font-weight:700}.text-label-lg{font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:700}.text-label-md{font-size:12px;line-height:16px;letter-spacing:.5px;font-weight:700}.text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.text-title-lg{font-size:22px;line-height:28px;letter-spacing:0px;font-weight:700}.text-title-md{font-size:18px;line-height:24px;letter-spacing:.15px;font-weight:700}.text-title-sm{font-size:14px;line-height:20px;letter-spacing:.1px;font-weight:700}.font-bold{font-weight:700}.text-error{--tw-text-opacity: 1;color:rgb(192 57 43 / var(--tw-text-opacity, 1))}.text-error-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-error-on-container{--tw-text-opacity: 1;color:rgb(120 40 31 / var(--tw-text-opacity, 1))}.text-neutral{--tw-text-opacity: 1;color:rgb(127 140 141 / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-primary-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-primary-on-container{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-primary-on-container\/70{color:#2c3e50b3}.text-secondary-on{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-secondary-on-container{--tw-text-opacity: 1;color:rgb(26 37 47 / var(--tw-text-opacity, 1))}.text-success{--tw-text-opacity: 1;color:rgb(39 174 96 / var(--tw-text-opacity, 1))}.text-success-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-surface-on{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.text-surface-on-variant{--tw-text-opacity: 1;color:rgb(127 140 141 / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(243 156 18 / var(--tw-text-opacity, 1))}.text-warning-on{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.placeholder-transparent::-moz-placeholder{color:transparent}.placeholder-transparent::placeholder{color:transparent}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-0{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-1{--tw-shadow: 0 1px 3px rgba(44, 62, 80, .12);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-2{--tw-shadow: 0 3px 6px rgba(44, 62, 80, .16);--tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-3{--tw-shadow: 0 6px 10px rgba(44, 62, 80, .2);--tw-shadow-colored: 0 6px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-4{--tw-shadow: 0 8px 16px rgba(44, 62, 80, .24);--tw-shadow-colored: 0 8px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-elevation-5{--tw-shadow: 0 12px 28px rgba(44, 62, 80, .3);--tw-shadow-colored: 0 12px 28px 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}.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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary{--tw-ring-opacity: 1;--tw-ring-color: rgb(44 62 80 / var(--tw-ring-opacity, 1))}.ring-primary\/30{--tw-ring-color: rgb(44 62 80 / .3)}.ring-offset-2{--tw-ring-offset-width: 2px}.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-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-medium-1{transition-duration:.2s}.duration-short-2{transition-duration:.1s}.ease-standard{transition-timing-function:cubic-bezier(.2,0,0,1)}.chronowl-root ::-moz-selection{background-color:var(--co-primary-container);color:var(--co-on-primary-container)}.chronowl-root ::selection{background-color:var(--co-primary-container);color:var(--co-on-primary-container)}.backdrop\:backdrop-blur-sm::backdrop{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.hover\:border-primary\/20:hover{border-color:#2c3e5033}.hover\:border-primary\/30:hover{border-color:#2c3e504d}.hover\:bg-error-container:hover{--tw-bg-opacity: 1;background-color:rgb(250 219 216 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-container:hover{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-800:hover{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(232 244 248 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary-container:hover{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-surface-variant:hover{--tw-bg-opacity: 1;background-color:rgb(240 243 245 / var(--tw-bg-opacity, 1))}.hover\:bg-tertiary:hover{--tw-bg-opacity: 1;background-color:rgb(26 37 47 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.hover\:text-primary-on-container:hover{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.hover\:shadow-elevation-2:hover{--tw-shadow: 0 3px 6px rgba(44, 62, 80, .16);--tw-shadow-colored: 0 3px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-error:focus{--tw-border-opacity: 1;border-color:rgb(192 57 43 / var(--tw-border-opacity, 1))}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(44 62 80 / var(--tw-border-opacity, 1))}.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\:ring-error:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(192 57 43 / var(--tw-ring-opacity, 1))}.focus\:ring-primary:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(44 62 80 / var(--tw-ring-opacity, 1))}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary:focus-visible{outline-color:#2c3e50}.active\:bg-green-800:active{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity, 1))}.active\:bg-red-900:active{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.active\:bg-secondary-container:active{--tw-bg-opacity: 1;background-color:rgb(209 232 240 / var(--tw-bg-opacity, 1))}.active\:bg-tertiary:active{--tw-bg-opacity: 1;background-color:rgb(26 37 47 / var(--tw-bg-opacity, 1))}.active\:bg-yellow-700:active{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.peer:focus~.peer-focus\:top-0{top:0}.peer:focus~.peer-focus\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:focus~.peer-focus\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:focus~.peer-focus\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:focus~.peer-focus\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:focus~.peer-focus\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.peer:focus~.peer-focus\:text-error{--tw-text-opacity: 1;color:rgb(192 57 43 / var(--tw-text-opacity, 1))}.peer:focus~.peer-focus\:text-primary{--tw-text-opacity: 1;color:rgb(44 62 80 / var(--tw-text-opacity, 1))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:top-0{top:0}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:top-0{top:0}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:px-1{padding-left:.25rem;padding-right:.25rem}.peer:not(:-moz-placeholder)~.peer-\[\:not\(\:-moz-placeholder\)\]\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}.peer:not(:placeholder-shown)~.peer-\[\:not\(\:placeholder-shown\)\]\:text-label-sm{font-size:11px;line-height:16px;letter-spacing:.5px;font-weight:700}@media (min-width: 480px){.sm\:inline{display:inline}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.\[\&\>\*\]\:flex-1>*{flex:1 1 0%}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChronOwl Border Radius Tokens - Basado en Google Stitch corner system
|
|
3
|
+
*
|
|
4
|
+
* Shape system con 6 niveles de redondeo.
|
|
5
|
+
*/
|
|
6
|
+
export declare const corners: {
|
|
7
|
+
readonly extraSmall: "4px";
|
|
8
|
+
readonly small: "8px";
|
|
9
|
+
readonly medium: "12px";
|
|
10
|
+
readonly large: "16px";
|
|
11
|
+
readonly extraLarge: "28px";
|
|
12
|
+
readonly full: "999px";
|
|
13
|
+
};
|
|
14
|
+
export type CornerToken = keyof typeof corners;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChronOwl Color Tokens - Basado en Google Stitch / Material Design 3
|
|
3
|
+
*
|
|
4
|
+
* Sistema de colores siguiendo Material You color system.
|
|
5
|
+
* Cada color tiene su variante "on-" para texto sobre ese color,
|
|
6
|
+
* y variantes "container" para superficies con menor énfasis.
|
|
7
|
+
*/
|
|
8
|
+
export declare const colors: {
|
|
9
|
+
readonly primary: "#2C3E50";
|
|
10
|
+
readonly onPrimary: "#FFFFFF";
|
|
11
|
+
readonly primaryContainer: "#E8F4F8";
|
|
12
|
+
readonly onPrimaryContainer: "#2C3E50";
|
|
13
|
+
readonly secondary: "#E8F4F8";
|
|
14
|
+
readonly onSecondary: "#2C3E50";
|
|
15
|
+
readonly secondaryContainer: "#D1E8F0";
|
|
16
|
+
readonly onSecondaryContainer: "#1A252F";
|
|
17
|
+
readonly tertiary: "#1A252F";
|
|
18
|
+
readonly onTertiary: "#FFFFFF";
|
|
19
|
+
readonly tertiaryContainer: "#34495E";
|
|
20
|
+
readonly onTertiaryContainer: "#E8F4F8";
|
|
21
|
+
readonly neutral: "#7F8C8D";
|
|
22
|
+
readonly onNeutral: "#FFFFFF";
|
|
23
|
+
readonly neutralVariant: "#BDC3C7";
|
|
24
|
+
readonly onNeutralVariant: "#2C3E50";
|
|
25
|
+
readonly surface: "#FFFFFF";
|
|
26
|
+
readonly onSurface: "#2C3E50";
|
|
27
|
+
readonly surfaceVariant: "#F0F3F5";
|
|
28
|
+
readonly onSurfaceVariant: "#7F8C8D";
|
|
29
|
+
readonly surfaceDim: "#E0E3E5";
|
|
30
|
+
readonly surfaceBright: "#FFFFFF";
|
|
31
|
+
readonly surfaceContainerLowest: "#FFFFFF";
|
|
32
|
+
readonly surfaceContainerLow: "#F8F9FA";
|
|
33
|
+
readonly surfaceContainer: "#F0F3F5";
|
|
34
|
+
readonly surfaceContainerHigh: "#E8EBEE";
|
|
35
|
+
readonly surfaceContainerHighest: "#E0E3E5";
|
|
36
|
+
readonly outline: "#BDC3C7";
|
|
37
|
+
readonly outlineVariant: "#E0E3E5";
|
|
38
|
+
readonly error: "#C0392B";
|
|
39
|
+
readonly onError: "#FFFFFF";
|
|
40
|
+
readonly errorContainer: "#FADBD8";
|
|
41
|
+
readonly onErrorContainer: "#78281F";
|
|
42
|
+
readonly warning: "#F39C12";
|
|
43
|
+
readonly onWarning: "#FFFFFF";
|
|
44
|
+
readonly warningContainer: "#FEF5E7";
|
|
45
|
+
readonly onWarningContainer: "#7E5109";
|
|
46
|
+
readonly success: "#27AE60";
|
|
47
|
+
readonly onSuccess: "#FFFFFF";
|
|
48
|
+
readonly successContainer: "#D5F5E3";
|
|
49
|
+
readonly onSuccessContainer: "#1E8449";
|
|
50
|
+
readonly inverseSurface: "#2C3E50";
|
|
51
|
+
readonly inverseOnSurface: "#FFFFFF";
|
|
52
|
+
readonly inversePrimary: "#A3C4D4";
|
|
53
|
+
readonly scrim: "#000000";
|
|
54
|
+
readonly shadow: "#000000";
|
|
55
|
+
};
|
|
56
|
+
export type ColorToken = keyof typeof colors;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChronOwl Elevation Tokens - Basado en Google Stitch shadow system
|
|
3
|
+
*
|
|
4
|
+
* 6 niveles de elevación (0-5) usando el color primario
|
|
5
|
+
* como base para las sombras, dando cohesión visual.
|
|
6
|
+
*/
|
|
7
|
+
export declare const elevation: {
|
|
8
|
+
readonly level0: "none";
|
|
9
|
+
readonly level1: "0 1px 3px rgba(44, 62, 80, 0.12)";
|
|
10
|
+
readonly level2: "0 3px 6px rgba(44, 62, 80, 0.16)";
|
|
11
|
+
readonly level3: "0 6px 10px rgba(44, 62, 80, 0.2)";
|
|
12
|
+
readonly level4: "0 8px 16px rgba(44, 62, 80, 0.24)";
|
|
13
|
+
readonly level5: "0 12px 28px rgba(44, 62, 80, 0.3)";
|
|
14
|
+
};
|
|
15
|
+
export type ElevationToken = keyof typeof elevation;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { colors } from './colors';
|
|
2
|
+
export type { ColorToken } from './colors';
|
|
3
|
+
export { typescale, fontFamily } from './typography';
|
|
4
|
+
export type { TypeStyle, TypescaleToken } from './typography';
|
|
5
|
+
export { spacing, spacingValues } from './spacing';
|
|
6
|
+
export type { SpacingToken } from './spacing';
|
|
7
|
+
export { elevation } from './elevation';
|
|
8
|
+
export type { ElevationToken } from './elevation';
|
|
9
|
+
export { motion, duration, easing } from './motion';
|
|
10
|
+
export type { DurationToken, EasingToken } from './motion';
|
|
11
|
+
export { corners } from './borders';
|
|
12
|
+
export type { CornerToken } from './borders';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChronOwl Motion Tokens - Basado en Google Stitch motion guidelines
|
|
3
|
+
*
|
|
4
|
+
* Duraciones y easings para transiciones y animaciones.
|
|
5
|
+
* Sigue Material Design 3 motion principles.
|
|
6
|
+
*/
|
|
7
|
+
export declare const duration: {
|
|
8
|
+
readonly short1: "50ms";
|
|
9
|
+
readonly short2: "100ms";
|
|
10
|
+
readonly medium1: "200ms";
|
|
11
|
+
readonly medium2: "300ms";
|
|
12
|
+
readonly long1: "400ms";
|
|
13
|
+
readonly long2: "500ms";
|
|
14
|
+
};
|
|
15
|
+
export declare const easing: {
|
|
16
|
+
readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
|
|
17
|
+
readonly emphasized: "cubic-bezier(0.2, 0, 0, 1)";
|
|
18
|
+
readonly decelerate: "cubic-bezier(0.05, 0.7, 0.1, 1)";
|
|
19
|
+
readonly accelerate: "cubic-bezier(0.3, 0, 0.8, 0.15)";
|
|
20
|
+
};
|
|
21
|
+
export declare const motion: {
|
|
22
|
+
readonly duration: {
|
|
23
|
+
readonly short1: "50ms";
|
|
24
|
+
readonly short2: "100ms";
|
|
25
|
+
readonly medium1: "200ms";
|
|
26
|
+
readonly medium2: "300ms";
|
|
27
|
+
readonly long1: "400ms";
|
|
28
|
+
readonly long2: "500ms";
|
|
29
|
+
};
|
|
30
|
+
readonly easing: {
|
|
31
|
+
readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
|
|
32
|
+
readonly emphasized: "cubic-bezier(0.2, 0, 0, 1)";
|
|
33
|
+
readonly decelerate: "cubic-bezier(0.05, 0.7, 0.1, 1)";
|
|
34
|
+
readonly accelerate: "cubic-bezier(0.3, 0, 0.8, 0.15)";
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export type DurationToken = keyof typeof duration;
|
|
38
|
+
export type EasingToken = keyof typeof easing;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChronOwl Spacing Tokens - Basado en Google Stitch spacing scale
|
|
3
|
+
*
|
|
4
|
+
* Escala de 4px base multiplicativa.
|
|
5
|
+
*/
|
|
6
|
+
export declare const spacing: {
|
|
7
|
+
readonly size0: "0px";
|
|
8
|
+
readonly size1: "4px";
|
|
9
|
+
readonly size2: "8px";
|
|
10
|
+
readonly size3: "12px";
|
|
11
|
+
readonly size4: "16px";
|
|
12
|
+
readonly size5: "24px";
|
|
13
|
+
readonly size6: "32px";
|
|
14
|
+
readonly size7: "40px";
|
|
15
|
+
readonly size8: "48px";
|
|
16
|
+
};
|
|
17
|
+
export declare const spacingValues: {
|
|
18
|
+
readonly size0: 0;
|
|
19
|
+
readonly size1: 4;
|
|
20
|
+
readonly size2: 8;
|
|
21
|
+
readonly size3: 12;
|
|
22
|
+
readonly size4: 16;
|
|
23
|
+
readonly size5: 24;
|
|
24
|
+
readonly size6: 32;
|
|
25
|
+
readonly size7: 40;
|
|
26
|
+
readonly size8: 48;
|
|
27
|
+
};
|
|
28
|
+
export type SpacingToken = keyof typeof spacing;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChronOwl Typography Tokens - Basado en Google Stitch Typescale
|
|
3
|
+
*
|
|
4
|
+
* Material Design 3 type scale con 5 roles:
|
|
5
|
+
* Display, Headline, Title, Body, Label
|
|
6
|
+
* Cada uno en 3 tamaños: Large, Medium, Small
|
|
7
|
+
*/
|
|
8
|
+
export interface TypeStyle {
|
|
9
|
+
fontSize: string;
|
|
10
|
+
lineHeight: string;
|
|
11
|
+
fontWeight: number;
|
|
12
|
+
letterSpacing: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const typescale: {
|
|
15
|
+
readonly displayLarge: {
|
|
16
|
+
readonly fontSize: "57px";
|
|
17
|
+
readonly lineHeight: "64px";
|
|
18
|
+
readonly fontWeight: 700;
|
|
19
|
+
readonly letterSpacing: "-0.25px";
|
|
20
|
+
};
|
|
21
|
+
readonly displayMedium: {
|
|
22
|
+
readonly fontSize: "45px";
|
|
23
|
+
readonly lineHeight: "52px";
|
|
24
|
+
readonly fontWeight: 700;
|
|
25
|
+
readonly letterSpacing: "0px";
|
|
26
|
+
};
|
|
27
|
+
readonly displaySmall: {
|
|
28
|
+
readonly fontSize: "36px";
|
|
29
|
+
readonly lineHeight: "44px";
|
|
30
|
+
readonly fontWeight: 700;
|
|
31
|
+
readonly letterSpacing: "0px";
|
|
32
|
+
};
|
|
33
|
+
readonly headlineLarge: {
|
|
34
|
+
readonly fontSize: "32px";
|
|
35
|
+
readonly lineHeight: "40px";
|
|
36
|
+
readonly fontWeight: 700;
|
|
37
|
+
readonly letterSpacing: "0px";
|
|
38
|
+
};
|
|
39
|
+
readonly headlineMedium: {
|
|
40
|
+
readonly fontSize: "28px";
|
|
41
|
+
readonly lineHeight: "36px";
|
|
42
|
+
readonly fontWeight: 700;
|
|
43
|
+
readonly letterSpacing: "0px";
|
|
44
|
+
};
|
|
45
|
+
readonly headlineSmall: {
|
|
46
|
+
readonly fontSize: "24px";
|
|
47
|
+
readonly lineHeight: "32px";
|
|
48
|
+
readonly fontWeight: 700;
|
|
49
|
+
readonly letterSpacing: "0px";
|
|
50
|
+
};
|
|
51
|
+
readonly titleLarge: {
|
|
52
|
+
readonly fontSize: "22px";
|
|
53
|
+
readonly lineHeight: "28px";
|
|
54
|
+
readonly fontWeight: 700;
|
|
55
|
+
readonly letterSpacing: "0px";
|
|
56
|
+
};
|
|
57
|
+
readonly titleMedium: {
|
|
58
|
+
readonly fontSize: "18px";
|
|
59
|
+
readonly lineHeight: "24px";
|
|
60
|
+
readonly fontWeight: 700;
|
|
61
|
+
readonly letterSpacing: "0.15px";
|
|
62
|
+
};
|
|
63
|
+
readonly titleSmall: {
|
|
64
|
+
readonly fontSize: "14px";
|
|
65
|
+
readonly lineHeight: "20px";
|
|
66
|
+
readonly fontWeight: 700;
|
|
67
|
+
readonly letterSpacing: "0.1px";
|
|
68
|
+
};
|
|
69
|
+
readonly bodyLarge: {
|
|
70
|
+
readonly fontSize: "16px";
|
|
71
|
+
readonly lineHeight: "24px";
|
|
72
|
+
readonly fontWeight: 400;
|
|
73
|
+
readonly letterSpacing: "0.15px";
|
|
74
|
+
};
|
|
75
|
+
readonly bodyMedium: {
|
|
76
|
+
readonly fontSize: "14px";
|
|
77
|
+
readonly lineHeight: "20px";
|
|
78
|
+
readonly fontWeight: 400;
|
|
79
|
+
readonly letterSpacing: "0.25px";
|
|
80
|
+
};
|
|
81
|
+
readonly bodySmall: {
|
|
82
|
+
readonly fontSize: "12px";
|
|
83
|
+
readonly lineHeight: "16px";
|
|
84
|
+
readonly fontWeight: 400;
|
|
85
|
+
readonly letterSpacing: "0.4px";
|
|
86
|
+
};
|
|
87
|
+
readonly labelLarge: {
|
|
88
|
+
readonly fontSize: "14px";
|
|
89
|
+
readonly lineHeight: "20px";
|
|
90
|
+
readonly fontWeight: 700;
|
|
91
|
+
readonly letterSpacing: "0.1px";
|
|
92
|
+
};
|
|
93
|
+
readonly labelMedium: {
|
|
94
|
+
readonly fontSize: "12px";
|
|
95
|
+
readonly lineHeight: "16px";
|
|
96
|
+
readonly fontWeight: 700;
|
|
97
|
+
readonly letterSpacing: "0.5px";
|
|
98
|
+
};
|
|
99
|
+
readonly labelSmall: {
|
|
100
|
+
readonly fontSize: "11px";
|
|
101
|
+
readonly lineHeight: "16px";
|
|
102
|
+
readonly fontWeight: 700;
|
|
103
|
+
readonly letterSpacing: "0.5px";
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
export declare const fontFamily = "'Inter', 'Roboto', system-ui, sans-serif";
|
|
107
|
+
export type TypescaleToken = keyof typeof typescale;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos para la comunicación con el backend ChronOwl API.
|
|
3
|
+
*/
|
|
4
|
+
export interface ApiResponse<T> {
|
|
5
|
+
success: boolean;
|
|
6
|
+
data?: T;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ApiConfig {
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
saasId: string;
|
|
12
|
+
apiKey?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FetchSlotsParams {
|
|
15
|
+
saasId: string;
|
|
16
|
+
serviceId: string;
|
|
17
|
+
date: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CreateBookingParams {
|
|
20
|
+
saasId: string;
|
|
21
|
+
serviceId: string;
|
|
22
|
+
date: string;
|
|
23
|
+
startTime: string;
|
|
24
|
+
endTime: string;
|
|
25
|
+
clientName: string;
|
|
26
|
+
clientEmail: string;
|
|
27
|
+
clientPhone: string;
|
|
28
|
+
notes?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface BookingResponse {
|
|
31
|
+
id: string;
|
|
32
|
+
saasId: string;
|
|
33
|
+
serviceId: string;
|
|
34
|
+
date: string;
|
|
35
|
+
startTime: string;
|
|
36
|
+
endTime: string;
|
|
37
|
+
clientName: string;
|
|
38
|
+
clientEmail: string;
|
|
39
|
+
clientPhone: string;
|
|
40
|
+
notes?: string;
|
|
41
|
+
status: 'pending' | 'confirmed' | 'cancelled' | 'completed';
|
|
42
|
+
createdAt: string;
|
|
43
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos especificos del dominio de reservas ChronOwl.
|
|
3
|
+
*
|
|
4
|
+
* Complementa components.ts (props UI) y api.ts (comunicacion HTTP).
|
|
5
|
+
* Aqui van los tipos de negocio: estados, transiciones, reglas.
|
|
6
|
+
*/
|
|
7
|
+
export type BookingStatus = 'pending' | 'confirmed' | 'cancelled' | 'completed';
|
|
8
|
+
export interface BookingSummary {
|
|
9
|
+
serviceId: string;
|
|
10
|
+
serviceName: string;
|
|
11
|
+
date: string;
|
|
12
|
+
startTime: string;
|
|
13
|
+
endTime: string;
|
|
14
|
+
duration: number;
|
|
15
|
+
price: number;
|
|
16
|
+
currency: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ClientInfo {
|
|
19
|
+
name: string;
|
|
20
|
+
email: string;
|
|
21
|
+
phone: string;
|
|
22
|
+
notes?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface BookingRecord {
|
|
25
|
+
id: string;
|
|
26
|
+
saasId: string;
|
|
27
|
+
summary: BookingSummary;
|
|
28
|
+
client: ClientInfo;
|
|
29
|
+
status: BookingStatus;
|
|
30
|
+
createdAt: string;
|
|
31
|
+
updatedAt?: string;
|
|
32
|
+
cancelledAt?: string;
|
|
33
|
+
cancellationReason?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface AvailabilityRule {
|
|
36
|
+
dayOfWeek: number;
|
|
37
|
+
startTime: string;
|
|
38
|
+
endTime: string;
|
|
39
|
+
slotDuration: number;
|
|
40
|
+
active: boolean;
|
|
41
|
+
}
|
|
42
|
+
export interface DayAvailability {
|
|
43
|
+
date: string;
|
|
44
|
+
slots: {
|
|
45
|
+
id: string;
|
|
46
|
+
startTime: string;
|
|
47
|
+
endTime: string;
|
|
48
|
+
available: boolean;
|
|
49
|
+
}[];
|
|
50
|
+
}
|