@arpproject/recrate 0.1.23 → 0.1.25
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.
|
@@ -20,6 +20,7 @@ export interface DescriboCrateBuilderProps {
|
|
|
20
20
|
language?: string;
|
|
21
21
|
resetTabOnEntityChange?: boolean;
|
|
22
22
|
resetTabOnProfileChange?: boolean;
|
|
23
|
+
stateScopeKey?: string;
|
|
23
24
|
onReady?: () => void;
|
|
24
25
|
onError?: (errors: any) => void;
|
|
25
26
|
onWarning?: (warnings: any) => void;
|
|
@@ -14,6 +14,10 @@ interface State {
|
|
|
14
14
|
navigationState?: NavigationState;
|
|
15
15
|
[key: string]: any;
|
|
16
16
|
}
|
|
17
|
+
interface EditorStateOptions {
|
|
18
|
+
scopeKey?: string;
|
|
19
|
+
persist?: boolean;
|
|
20
|
+
}
|
|
17
21
|
/**
|
|
18
22
|
* @class
|
|
19
23
|
*
|
|
@@ -25,9 +29,16 @@ interface State {
|
|
|
25
29
|
export declare class EditorState {
|
|
26
30
|
history: State[];
|
|
27
31
|
current: number;
|
|
28
|
-
|
|
32
|
+
private readonly persistEnabled;
|
|
33
|
+
private readonly storageKey?;
|
|
34
|
+
constructor(options?: EditorStateOptions);
|
|
35
|
+
private normaliseScopeKey;
|
|
29
36
|
private hydrate;
|
|
30
37
|
private persist;
|
|
38
|
+
clearPersistedState(): void;
|
|
39
|
+
dispose(options?: {
|
|
40
|
+
clearPersistedState?: boolean;
|
|
41
|
+
}): void;
|
|
31
42
|
reset(): void;
|
|
32
43
|
/**
|
|
33
44
|
* Push a new state onto the history stack
|
|
@@ -59,6 +70,7 @@ export declare class EditorState {
|
|
|
59
70
|
*/
|
|
60
71
|
update(newState: State): void;
|
|
61
72
|
updateNavigationState(navigationState: NavigationState): void;
|
|
73
|
+
updateNavigationStateForId(id: string, navigationState: NavigationState): void;
|
|
62
74
|
getNavigationState(id?: string): NavigationState | undefined;
|
|
63
75
|
prune(validIds: Set<string>): void;
|
|
64
76
|
/**
|
|
@@ -5,8 +5,10 @@ interface Store {
|
|
|
5
5
|
editorState: EditorState;
|
|
6
6
|
setConfiguration: (config: Record<string, any>) => void;
|
|
7
7
|
}
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const createStateStore: (stateScopeKey?: string) => import('zustand').StoreApi<Store>;
|
|
9
|
+
export declare const StateStoreProvider: ({ children, stateScopeKey, }: {
|
|
9
10
|
children: ReactNode;
|
|
11
|
+
stateScopeKey?: string;
|
|
10
12
|
}) => React.FunctionComponentElement<React.ProviderProps<import('zustand').StoreApi<Store> | null>>;
|
|
11
13
|
export declare const useStateStore: () => Store;
|
|
12
14
|
export {};
|
package/dist/recrate.css
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
.el-tabs__item{height:unset}.el-select-dropdown__wrap{max-height:500px!important}.el-select-group__title{font-size:14px!important}.scrollbar{overflow:overlay}.scrollbar::-webkit-scrollbar{background-color:#0000;height:16px;width:16px;z-index:999999}.scrollbar::-webkit-scrollbar-track{background-color:#0000}.scrollbar::-webkit-scrollbar-thumb{background-color:#0000;border:0 solid #fff;border-radius:16px}.scrollbar::-webkit-scrollbar-button{display:none}.scrollbar:hover::-webkit-scrollbar-thumb{background-color:#a0a0a5;border:4px solid #fff}.scrollbar::-webkit-scrollbar-thumb:hover{background-color:#a0a0a5;border:4px solid #f4f4f4}.cm-editor{font-size:12px;height:auto;max-height:none}.describo-tab-icon{align-items:center;display:flex;font-size:14px;font-weight:600;height:100%;justify-content:center;width:100%}.describo-add-only-tabs .ant-tabs-nav,.describo-add-only-tabs .ant-tabs-nav-wrap{height:100%}.describo-add-only-tabs .ant-tabs-nav-list{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center}.describo-add-only-tabs .ant-tabs-tab{justify-content:center}.describo-tabs-vertical-center-add .ant-tabs-nav,.describo-tabs-vertical-center-add .ant-tabs-nav-wrap{height:100%}.describo-tabs-vertical-center-add .ant-tabs-nav-list{height:100%;position:relative}.describo-tabs-vertical-center-add .ant-tabs-tab-add-button{align-items:center;display:flex;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.recrate,.recrate .recrate-ant{display:flex;flex-direction:column;height:100vh;min-height:100vh}.describo-editor-scroll,.recrate .ant-tabs-left .ant-tabs-nav,.recrate .ant-tabs-right .ant-tabs-nav{height:100%}.recrate .ant-tabs-bottom .ant-tabs-nav-wrap,.recrate .ant-tabs-top .ant-tabs-nav-wrap{overflow-x:auto}
|
|
2
|
-
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer theme, base, components, utilities;@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% 0.062 18.334);--color-red-500:oklch(63.7% 0.237 25.331);--color-red-600:oklch(57.7% 0.245 27.325);--color-red-700:oklch(50.5% 0.213 27.518);--color-green-100:oklch(96.2% 0.044 156.743);--color-green-200:oklch(92.5% 0.084 155.995);--color-green-600:oklch(62.7% 0.194 149.214);--color-cyan-200:oklch(91.7% 0.08 205.041);--color-sky-100:oklch(95.1% 0.026 236.824);--color-sky-500:oklch(68.5% 0.169 237.323);--color-blue-100:oklch(93.2% 0.032 255.585);--color-blue-200:oklch(88.2% 0.059 254.128);--color-blue-300:oklch(80.9% 0.105 251.813);--color-blue-400:oklch(70.7% 0.165 254.624);--color-blue-500:oklch(62.3% 0.214 259.815);--color-blue-600:oklch(54.6% 0.245 262.881);--color-blue-700:oklch(48.8% 0.243 264.376);--color-indigo-200:oklch(87% 0.065 274.039);--color-purple-200:oklch(90.2% 0.063 306.703);--color-slate-200:oklch(92.9% 0.013 255.508);--color-slate-300:oklch(86.9% 0.022 252.894);--color-slate-700:oklch(37.2% 0.044 257.287);--color-gray-50:oklch(98.5% 0.002 247.839);--color-gray-200:oklch(92.8% 0.006 264.531);--color-gray-300:oklch(87.2% 0.01 258.338);--color-gray-400:oklch(70.7% 0.022 261.325);--color-gray-500:oklch(55.1% 0.027 264.364);--color-gray-600:oklch(44.6% 0.03 256.802);--color-gray-700:oklch(37.3% 0.034 259.733);--color-gray-800:oklch(27.8% 0.033 256.848);--color-black:#000;--color-white:#fff;--spacing:0.25rem;--text-xs:0.75rem;--text-xs--line-height:1.33333;--text-sm:0.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-light:300;--font-weight-medium:500;--font-weight-bold:700;--radius-lg:0.5rem;--animate-pulse:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4,0,0.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){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:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:initial}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{background-color:initial;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,#0000)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.float-right{float:right}.container{width:100%;@media (width >= 40rem){max-width:40rem}@media (width >= 48rem){max-width:48rem}@media (width >= 64rem){max-width:64rem}@media (width >= 80rem){max-width:80rem}@media (width >= 96rem){max-width:96rem}}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-4{margin:calc(var(--spacing)*4)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-2{margin-left:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.h-1{height:calc(var(--spacing)*1)}.h-3{height:calc(var(--spacing)*3)}.h-8{height:calc(var(--spacing)*8)}.h-\[520px\]{height:520px}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-1\/3{width:33.33333%}.w-2\/3{width:66.66667%}.w-2\/6{width:33.33333%}.w-3{width:calc(var(--spacing)*3)}.w-4\/6{width:66.66667%}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-\[600px\]{width:600px}.w-full{width:100%}.w-screen{width:100vw}.max-w-\[715px\]{max-width:715px}.min-w-32{min-width:calc(var(--spacing)*32)}.flex-1{flex:1}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-between{place-content:space-between}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.space-y-1{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*1*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*1*var(--tw-space-y-reverse))}}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}}.space-y-3{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*3*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*3*var(--tw-space-y-reverse))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*4*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*4*var(--tw-space-y-reverse))}}.gap-x-1{column-gap:calc(var(--spacing)*1)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.space-x-1{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}}.space-x-2{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*2*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*2*var(--tw-space-x-reverse))}}.space-x-4{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}}.gap-y-2{row-gap:calc(var(--spacing)*2)}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-bottom-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse))}}.divide-gray-300{:where(&>:not(:last-child)){border-color:var(--color-gray-300)}}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-black\/20{border-color:color-mix(in srgb,#000 20%,#0000);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-black) 20%,#0000)}}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-700{border-color:var(--color-gray-700)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-700{border-color:var(--color-slate-700)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-indigo-200{background-color:var(--color-indigo-200)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-red-200{background-color:var(--color-red-200)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-700{background-color:var(--color-slate-700)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-1{padding-right:calc(var(--spacing)*1)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-1{padding-left:calc(var(--spacing)*1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-balance{text-wrap:balance}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.text-black{color:var(--color-black)}.text-blue-600{color:var(--color-blue-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-50{opacity:50%}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-1000{--tw-duration:1000ms;transition-duration:1s}.group-hover\:opacity-100{&:is(:where(.group):hover *){@media (hover:hover){opacity:100%}}}.hover\:scale-105{&:hover{@media (hover:hover){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:rounded{&:hover{@media (hover:hover){border-radius:.25rem}}}.hover\:rounded-r-none{&:hover{@media (hover:hover){border-bottom-right-radius:0;border-top-right-radius:0}}}.hover\:bg-blue-100{&:hover{@media (hover:hover){background-color:var(--color-blue-100)}}}.hover\:bg-blue-300{&:hover{@media (hover:hover){background-color:var(--color-blue-300)}}}.hover\:bg-blue-700{&:hover{@media (hover:hover){background-color:var(--color-blue-700)}}}.hover\:bg-cyan-200{&:hover{@media (hover:hover){background-color:var(--color-cyan-200)}}}.hover\:bg-green-200{&:hover{@media (hover:hover){background-color:var(--color-green-200)}}}.hover\:bg-red-700{&:hover{@media (hover:hover){background-color:var(--color-red-700)}}}.hover\:bg-sky-100{&:hover{@media (hover:hover){background-color:var(--color-sky-100)}}}.hover\:text-black{&:hover{@media (hover:hover){color:var(--color-black)}}}.focus\:border-2{&:focus{border-style:var(--tw-border-style);border-width:2px}}.focus\:border-green-600{&:focus{border-color:var(--color-green-600)}}.focus\:outline-none{&:focus{--tw-outline-style:none;outline-style:none}}.focus-visible\:ring-2{&:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:ring-sky-500{&:focus-visible{--tw-ring-color:var(--color-sky-500)}}.focus-visible\:outline-none{&:focus-visible{--tw-outline-style:none;outline-style:none}}.active\:bg-blue-400{&:active{background-color:var(--color-blue-400)}}.xl\:w-1\/5{@media (width >= 80rem){width:20%}}.xl\:w-4\/5{@media (width >= 80rem){width:80%}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}
|
|
2
|
+
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer theme, base, components, utilities;@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% 0.062 18.334);--color-red-500:oklch(63.7% 0.237 25.331);--color-red-600:oklch(57.7% 0.245 27.325);--color-red-700:oklch(50.5% 0.213 27.518);--color-green-100:oklch(96.2% 0.044 156.743);--color-green-200:oklch(92.5% 0.084 155.995);--color-green-600:oklch(62.7% 0.194 149.214);--color-cyan-200:oklch(91.7% 0.08 205.041);--color-sky-100:oklch(95.1% 0.026 236.824);--color-sky-500:oklch(68.5% 0.169 237.323);--color-blue-100:oklch(93.2% 0.032 255.585);--color-blue-200:oklch(88.2% 0.059 254.128);--color-blue-300:oklch(80.9% 0.105 251.813);--color-blue-400:oklch(70.7% 0.165 254.624);--color-blue-500:oklch(62.3% 0.214 259.815);--color-blue-600:oklch(54.6% 0.245 262.881);--color-blue-700:oklch(48.8% 0.243 264.376);--color-indigo-200:oklch(87% 0.065 274.039);--color-purple-200:oklch(90.2% 0.063 306.703);--color-slate-200:oklch(92.9% 0.013 255.508);--color-slate-300:oklch(86.9% 0.022 252.894);--color-slate-700:oklch(37.2% 0.044 257.287);--color-gray-50:oklch(98.5% 0.002 247.839);--color-gray-200:oklch(92.8% 0.006 264.531);--color-gray-300:oklch(87.2% 0.01 258.338);--color-gray-400:oklch(70.7% 0.022 261.325);--color-gray-500:oklch(55.1% 0.027 264.364);--color-gray-600:oklch(44.6% 0.03 256.802);--color-gray-700:oklch(37.3% 0.034 259.733);--color-gray-800:oklch(27.8% 0.033 256.848);--color-black:#000;--color-white:#fff;--spacing:0.25rem;--text-xs:0.75rem;--text-xs--line-height:1.33333;--text-sm:0.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-light:300;--font-weight-medium:500;--font-weight-bold:700;--radius-lg:0.5rem;--animate-pulse:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;--default-transition-duration:150ms;--default-transition-timing-function:cubic-bezier(0.4,0,0.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,::file-selector-button,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){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:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:initial}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}::file-selector-button,button,input,optgroup,select,textarea{background-color:initial;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::placeholder{color:currentcolor;@supports (color:color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,#0000)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}::file-selector-button,button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.isolate{isolation:isolate}.z-50{z-index:50}.float-right{float:right}.container{width:100%;@media (width >= 40rem){max-width:40rem}@media (width >= 48rem){max-width:48rem}@media (width >= 64rem){max-width:64rem}@media (width >= 80rem){max-width:80rem}@media (width >= 96rem){max-width:96rem}}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-4{margin:calc(var(--spacing)*4)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-2{margin-left:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.h-1{height:calc(var(--spacing)*1)}.h-3{height:calc(var(--spacing)*3)}.h-8{height:calc(var(--spacing)*8)}.h-\[520px\]{height:520px}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-1\/3{width:33.33333%}.w-2\/3{width:66.66667%}.w-2\/6{width:33.33333%}.w-3{width:calc(var(--spacing)*3)}.w-4\/6{width:66.66667%}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-\[600px\]{width:600px}.w-full{width:100%}.w-screen{width:100vw}.max-w-\[715px\]{max-width:715px}.min-w-32{min-width:calc(var(--spacing)*32)}.flex-1{flex:1}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-between{place-content:space-between}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.space-y-1{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*1*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*1*var(--tw-space-y-reverse))}}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}}.space-y-3{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*3*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*3*var(--tw-space-y-reverse))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*4*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*4*var(--tw-space-y-reverse))}}.gap-x-1{column-gap:calc(var(--spacing)*1)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.space-x-1{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}}.space-x-2{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*2*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*2*var(--tw-space-x-reverse))}}.space-x-4{:where(&>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}}.gap-y-2{row-gap:calc(var(--spacing)*2)}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-bottom-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse))}}.divide-gray-300{:where(&>:not(:last-child)){border-color:var(--color-gray-300)}}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-solid{--tw-border-style:solid;border-style:solid}.border-black{border-color:var(--color-black)}.border-black\/20{border-color:color-mix(in srgb,#000 20%,#0000);@supports (color:color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-black) 20%,#0000)}}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-700{border-color:var(--color-gray-700)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-700{border-color:var(--color-slate-700)}.bg-blue-200{background-color:var(--color-blue-200)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-indigo-200{background-color:var(--color-indigo-200)}.bg-purple-200{background-color:var(--color-purple-200)}.bg-red-200{background-color:var(--color-red-200)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-700{background-color:var(--color-slate-700)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-1{padding-right:calc(var(--spacing)*1)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-1{padding-left:calc(var(--spacing)*1)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-balance{text-wrap:balance}.text-nowrap{text-wrap:nowrap}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-pre-wrap{white-space:pre-wrap}.text-black{color:var(--color-black)}.text-blue-600{color:var(--color-blue-600)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-600{color:var(--color-green-600)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-50{opacity:50%}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-transform{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-1000{--tw-duration:1000ms;transition-duration:1s}.group-hover\:opacity-100{&:is(:where(.group):hover *){@media (hover:hover){opacity:100%}}}.hover\:scale-105{&:hover{@media (hover:hover){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:rounded{&:hover{@media (hover:hover){border-radius:.25rem}}}.hover\:rounded-r-none{&:hover{@media (hover:hover){border-bottom-right-radius:0;border-top-right-radius:0}}}.hover\:bg-blue-100{&:hover{@media (hover:hover){background-color:var(--color-blue-100)}}}.hover\:bg-blue-300{&:hover{@media (hover:hover){background-color:var(--color-blue-300)}}}.hover\:bg-blue-700{&:hover{@media (hover:hover){background-color:var(--color-blue-700)}}}.hover\:bg-cyan-200{&:hover{@media (hover:hover){background-color:var(--color-cyan-200)}}}.hover\:bg-green-200{&:hover{@media (hover:hover){background-color:var(--color-green-200)}}}.hover\:bg-red-700{&:hover{@media (hover:hover){background-color:var(--color-red-700)}}}.hover\:bg-sky-100{&:hover{@media (hover:hover){background-color:var(--color-sky-100)}}}.hover\:text-black{&:hover{@media (hover:hover){color:var(--color-black)}}}.focus\:border-2{&:focus{border-style:var(--tw-border-style);border-width:2px}}.focus\:border-green-600{&:focus{border-color:var(--color-green-600)}}.focus\:outline-none{&:focus{--tw-outline-style:none;outline-style:none}}.focus-visible\:ring-2{&:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:ring-sky-500{&:focus-visible{--tw-ring-color:var(--color-sky-500)}}.focus-visible\:outline-none{&:focus-visible{--tw-outline-style:none;outline-style:none}}.active\:bg-blue-400{&:active{background-color:var(--color-blue-400)}}.xl\:w-1\/5{@media (width >= 80rem){width:20%}}.xl\:w-4\/5{@media (width >= 80rem){width:80%}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}
|
|
3
3
|
.recrate{all:revert-layer}
|
package/dist/recrate.es.js
CHANGED
|
@@ -67349,17 +67349,23 @@ function useStore(api2, selector = identity) {
|
|
|
67349
67349
|
React__default.useDebugValue(slice2);
|
|
67350
67350
|
return slice2;
|
|
67351
67351
|
}
|
|
67352
|
-
const
|
|
67352
|
+
const STORAGE_KEY_PREFIX = "recrate.editor-state.v1";
|
|
67353
67353
|
let EditorState$1 = class EditorState {
|
|
67354
|
-
constructor() {
|
|
67354
|
+
constructor(options = {}) {
|
|
67355
|
+
this.persistEnabled = options.persist !== false;
|
|
67356
|
+
this.storageKey = this.persistEnabled ? `${STORAGE_KEY_PREFIX}:${this.normaliseScopeKey(options.scopeKey)}` : void 0;
|
|
67355
67357
|
const hydrated = this.hydrate();
|
|
67356
67358
|
this.history = (hydrated == null ? void 0 : hydrated.history) ?? [];
|
|
67357
67359
|
this.current = (hydrated == null ? void 0 : hydrated.current) ?? 0;
|
|
67358
67360
|
}
|
|
67361
|
+
normaliseScopeKey(scopeKey) {
|
|
67362
|
+
const trimmed = typeof scopeKey === "string" ? scopeKey.trim() : "";
|
|
67363
|
+
return trimmed || "default";
|
|
67364
|
+
}
|
|
67359
67365
|
hydrate() {
|
|
67360
|
-
if (typeof window === "undefined") return null;
|
|
67366
|
+
if (typeof window === "undefined" || !this.storageKey) return null;
|
|
67361
67367
|
try {
|
|
67362
|
-
const raw = window.sessionStorage.getItem(
|
|
67368
|
+
const raw = window.sessionStorage.getItem(this.storageKey);
|
|
67363
67369
|
if (!raw) return null;
|
|
67364
67370
|
const data = JSON.parse(raw);
|
|
67365
67371
|
if (!Array.isArray(data == null ? void 0 : data.history)) return null;
|
|
@@ -67372,12 +67378,24 @@ let EditorState$1 = class EditorState {
|
|
|
67372
67378
|
}
|
|
67373
67379
|
}
|
|
67374
67380
|
persist() {
|
|
67375
|
-
if (typeof window === "undefined") return;
|
|
67381
|
+
if (typeof window === "undefined" || !this.storageKey) return;
|
|
67376
67382
|
try {
|
|
67377
|
-
window.sessionStorage.setItem(
|
|
67383
|
+
window.sessionStorage.setItem(this.storageKey, JSON.stringify({ history: this.history, current: this.current }));
|
|
67378
67384
|
} catch {
|
|
67379
67385
|
}
|
|
67380
67386
|
}
|
|
67387
|
+
clearPersistedState() {
|
|
67388
|
+
if (typeof window === "undefined" || !this.storageKey) return;
|
|
67389
|
+
try {
|
|
67390
|
+
window.sessionStorage.removeItem(this.storageKey);
|
|
67391
|
+
} catch {
|
|
67392
|
+
}
|
|
67393
|
+
}
|
|
67394
|
+
dispose(options = {}) {
|
|
67395
|
+
if (options.clearPersistedState) {
|
|
67396
|
+
this.clearPersistedState();
|
|
67397
|
+
}
|
|
67398
|
+
}
|
|
67381
67399
|
reset() {
|
|
67382
67400
|
this.history = [];
|
|
67383
67401
|
this.current = 0;
|
|
@@ -67459,6 +67477,31 @@ let EditorState$1 = class EditorState {
|
|
|
67459
67477
|
}
|
|
67460
67478
|
});
|
|
67461
67479
|
}
|
|
67480
|
+
updateNavigationStateForId(id2, navigationState) {
|
|
67481
|
+
var _a2, _b;
|
|
67482
|
+
if (!id2) return;
|
|
67483
|
+
for (let i = this.history.length - 1; i >= 0; i -= 1) {
|
|
67484
|
+
const entry = this.history[i];
|
|
67485
|
+
if ((entry == null ? void 0 : entry.id) !== id2) continue;
|
|
67486
|
+
this.history[i] = {
|
|
67487
|
+
...entry,
|
|
67488
|
+
navigationState: {
|
|
67489
|
+
...entry.navigationState ?? {},
|
|
67490
|
+
...navigationState,
|
|
67491
|
+
tabStates: {
|
|
67492
|
+
...((_a2 = entry.navigationState) == null ? void 0 : _a2.tabStates) ?? {},
|
|
67493
|
+
...navigationState.tabStates ?? {}
|
|
67494
|
+
},
|
|
67495
|
+
uiState: {
|
|
67496
|
+
...((_b = entry.navigationState) == null ? void 0 : _b.uiState) ?? {},
|
|
67497
|
+
...navigationState.uiState ?? {}
|
|
67498
|
+
}
|
|
67499
|
+
}
|
|
67500
|
+
};
|
|
67501
|
+
this.persist();
|
|
67502
|
+
return;
|
|
67503
|
+
}
|
|
67504
|
+
}
|
|
67462
67505
|
getNavigationState(id2) {
|
|
67463
67506
|
var _a2;
|
|
67464
67507
|
if (!id2) {
|
|
@@ -67503,21 +67546,26 @@ let EditorState$1 = class EditorState {
|
|
|
67503
67546
|
this.persist();
|
|
67504
67547
|
}
|
|
67505
67548
|
};
|
|
67506
|
-
const createStateStore = () => createStore((set2) => ({
|
|
67549
|
+
const createStateStore = (stateScopeKey) => createStore((set2) => ({
|
|
67507
67550
|
configuration: {},
|
|
67508
|
-
editorState: new EditorState$1(),
|
|
67551
|
+
editorState: new EditorState$1({ scopeKey: stateScopeKey }),
|
|
67509
67552
|
setConfiguration: (config2) => set2({ configuration: config2 })
|
|
67510
67553
|
}));
|
|
67511
|
-
const defaultStore = createStateStore();
|
|
67554
|
+
const defaultStore = createStateStore("default");
|
|
67512
67555
|
const StateStoreContext = createContext(null);
|
|
67513
|
-
const StateStoreProvider = ({
|
|
67514
|
-
|
|
67515
|
-
|
|
67516
|
-
|
|
67517
|
-
|
|
67556
|
+
const StateStoreProvider = ({
|
|
67557
|
+
children,
|
|
67558
|
+
stateScopeKey
|
|
67559
|
+
}) => {
|
|
67560
|
+
const store = useMemo$1(() => createStateStore(stateScopeKey), [stateScopeKey]);
|
|
67561
|
+
useEffect(() => {
|
|
67562
|
+
return () => {
|
|
67563
|
+
store.getState().editorState.dispose();
|
|
67564
|
+
};
|
|
67565
|
+
}, [store]);
|
|
67518
67566
|
return React__default.createElement(
|
|
67519
67567
|
StateStoreContext.Provider,
|
|
67520
|
-
{ value:
|
|
67568
|
+
{ value: store },
|
|
67521
67569
|
children
|
|
67522
67570
|
);
|
|
67523
67571
|
};
|
|
@@ -110632,16 +110680,25 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110632
110680
|
const editorPanelRef = useRef(null);
|
|
110633
110681
|
const navigationRestoreReadyRef = useRef(false);
|
|
110634
110682
|
const pendingRestoredTabRef = useRef(null);
|
|
110635
|
-
const
|
|
110683
|
+
const restoreInProgressRef = useRef(false);
|
|
110684
|
+
const debugScroll = (...args) => console.log("[recrate-scroll-debug]", ...args);
|
|
110636
110685
|
const getVisibleContextMarkers = (selector, dataAttribute) => {
|
|
110637
110686
|
const source = activeContentRef.current;
|
|
110638
110687
|
if (!source) return [];
|
|
110639
110688
|
return Array.from(source.querySelectorAll(selector)).map((node2) => node2.getAttribute(dataAttribute)).filter((value) => Boolean(value));
|
|
110640
110689
|
};
|
|
110641
110690
|
const captureViewContext = (tabName = activeTab, explicitScrollTop) => {
|
|
110642
|
-
var _a3, _b2, _c2, _d2, _e3;
|
|
110691
|
+
var _a3, _b2, _c2, _d2, _e3, _f2, _g2, _h2;
|
|
110643
110692
|
const entityId = contextEntity == null ? void 0 : contextEntity["@id"];
|
|
110644
|
-
if (!entityId
|
|
110693
|
+
if (!entityId) return;
|
|
110694
|
+
if (restoreInProgressRef.current && typeof explicitScrollTop !== "number") {
|
|
110695
|
+
debugScroll("capture.skipped-during-restore", {
|
|
110696
|
+
entityId,
|
|
110697
|
+
tabName,
|
|
110698
|
+
latestId: (_a3 = state.editorState.latest()) == null ? void 0 : _a3.id
|
|
110699
|
+
});
|
|
110700
|
+
return;
|
|
110701
|
+
}
|
|
110645
110702
|
const previous = state.editorState.getNavigationState(entityId) ?? {};
|
|
110646
110703
|
const scrollTop = typeof explicitScrollTop === "number" ? explicitScrollTop : ((_b2 = activeContentRef.current) == null ? void 0 : _b2.scrollTop) ?? ((_d2 = (_c2 = previous.tabStates) == null ? void 0 : _c2[tabName]) == null ? void 0 : _d2.scrollTop) ?? 0;
|
|
110647
110704
|
const nextTabState = {
|
|
@@ -110649,13 +110706,20 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110649
110706
|
expandedSections: getVisibleContextMarkers('[aria-expanded="true"],[data-expanded="true"]', "data-section-id"),
|
|
110650
110707
|
selectedItems: getVisibleContextMarkers('[aria-selected="true"],[data-selected="true"]', "data-item-id")
|
|
110651
110708
|
};
|
|
110652
|
-
|
|
110709
|
+
debugScroll("capture", {
|
|
110653
110710
|
entityId,
|
|
110654
110711
|
tabName,
|
|
110712
|
+
latestId: (_e3 = state.editorState.latest()) == null ? void 0 : _e3.id,
|
|
110713
|
+
explicitScrollTop,
|
|
110655
110714
|
scrollTop,
|
|
110656
|
-
|
|
110657
|
-
|
|
110658
|
-
|
|
110715
|
+
previousScrollTop: ((_g2 = (_f2 = previous.tabStates) == null ? void 0 : _f2[tabName]) == null ? void 0 : _g2.scrollTop) ?? null,
|
|
110716
|
+
viewport: activeContentRef.current ? {
|
|
110717
|
+
clientHeight: activeContentRef.current.clientHeight,
|
|
110718
|
+
scrollHeight: activeContentRef.current.scrollHeight,
|
|
110719
|
+
currentScrollTop: activeContentRef.current.scrollTop
|
|
110720
|
+
} : null
|
|
110721
|
+
});
|
|
110722
|
+
const navigationState = {
|
|
110659
110723
|
activeTab: tabName,
|
|
110660
110724
|
tabStates: { [tabName]: nextTabState },
|
|
110661
110725
|
uiState: {
|
|
@@ -110665,7 +110729,12 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110665
110729
|
iconView,
|
|
110666
110730
|
tabPaneWidth
|
|
110667
110731
|
}
|
|
110668
|
-
}
|
|
110732
|
+
};
|
|
110733
|
+
if (((_h2 = state.editorState.latest()) == null ? void 0 : _h2.id) === entityId) {
|
|
110734
|
+
state.editorState.updateNavigationState(navigationState);
|
|
110735
|
+
} else {
|
|
110736
|
+
state.editorState.updateNavigationStateForId(entityId, navigationState);
|
|
110737
|
+
}
|
|
110669
110738
|
};
|
|
110670
110739
|
const computeScrollViewportHeight = useMemo$1(() => debounce(() => {
|
|
110671
110740
|
var _a3, _b2;
|
|
@@ -110722,12 +110791,6 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110722
110791
|
}));
|
|
110723
110792
|
useEffect(() => {
|
|
110724
110793
|
navigationRestoreReadyRef.current = false;
|
|
110725
|
-
debugNav("entity.effect.start", {
|
|
110726
|
-
incomingEntityId: entity == null ? void 0 : entity["@id"],
|
|
110727
|
-
previousContextEntityId: contextEntity == null ? void 0 : contextEntity["@id"],
|
|
110728
|
-
activeTab,
|
|
110729
|
-
latest: state.editorState.latest()
|
|
110730
|
-
});
|
|
110731
110794
|
if ((contextEntity == null ? void 0 : contextEntity["@id"]) && (entity == null ? void 0 : entity["@id"]) && contextEntity["@id"] !== entity["@id"]) {
|
|
110732
110795
|
captureViewContext(activeTab);
|
|
110733
110796
|
}
|
|
@@ -110759,14 +110822,14 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110759
110822
|
const tabNames = layout.tabs.map((tab) => tab.name);
|
|
110760
110823
|
const fallbackTab = tabNames.includes("about") ? "about" : tabNames[0] ?? "about";
|
|
110761
110824
|
const restoredTab = layout.renderTabs && (navState == null ? void 0 : navState.activeTab) && tabNames.includes(navState.activeTab) ? navState.activeTab : fallbackTab;
|
|
110762
|
-
|
|
110825
|
+
debugScroll("init", {
|
|
110763
110826
|
entityId: entity2["@id"],
|
|
110764
|
-
latestEntry,
|
|
110827
|
+
latestId: latestEntry == null ? void 0 : latestEntry.id,
|
|
110765
110828
|
isCurrentHistoryEntity,
|
|
110766
|
-
|
|
110829
|
+
renderTabs: layout.renderTabs,
|
|
110767
110830
|
tabNames,
|
|
110768
110831
|
restoredTab,
|
|
110769
|
-
|
|
110832
|
+
navState
|
|
110770
110833
|
});
|
|
110771
110834
|
pendingRestoredTabRef.current = restoredTab;
|
|
110772
110835
|
setActiveTab(restoredTab);
|
|
@@ -110782,21 +110845,16 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110782
110845
|
state.editorState.deleteFromState({ property: "tab" });
|
|
110783
110846
|
}
|
|
110784
110847
|
}
|
|
110785
|
-
debugNav("init.deferReadyUntilTabCommit", {
|
|
110786
|
-
entityId: entity2["@id"],
|
|
110787
|
-
restoredTab
|
|
110788
|
-
});
|
|
110789
110848
|
};
|
|
110790
110849
|
const refresh = () => {
|
|
110791
110850
|
const entityObj = crateManager.getEntity({ id: entity["@id"], link: false, materialise: false });
|
|
110792
110851
|
init2({ entity: entityObj });
|
|
110793
110852
|
};
|
|
110794
110853
|
const handleLoadEntityWithContext = (params) => {
|
|
110795
|
-
|
|
110854
|
+
debugScroll("navigate", {
|
|
110796
110855
|
fromEntityId: contextEntity == null ? void 0 : contextEntity["@id"],
|
|
110797
110856
|
activeTab,
|
|
110798
|
-
params
|
|
110799
|
-
latest: state.editorState.latest()
|
|
110857
|
+
params
|
|
110800
110858
|
});
|
|
110801
110859
|
captureViewContext(activeTab);
|
|
110802
110860
|
onLoadEntity(params);
|
|
@@ -110806,10 +110864,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110806
110864
|
const activeEntityId = contextEntity == null ? void 0 : contextEntity["@id"];
|
|
110807
110865
|
const latestId = (_a3 = state.editorState.latest()) == null ? void 0 : _a3.id;
|
|
110808
110866
|
if (!activeEntityId || latestId !== activeEntityId) {
|
|
110809
|
-
debugNav("saveTabToState.skip", { tabName, activeEntityId, latestId });
|
|
110810
110867
|
return;
|
|
110811
110868
|
}
|
|
110812
|
-
debugNav("saveTabToState.apply", { tabName, activeEntityId });
|
|
110813
110869
|
state.editorState.update({ id: activeEntityId, tab: tabName });
|
|
110814
110870
|
state.editorState.updateNavigationState({ activeTab: tabName });
|
|
110815
110871
|
};
|
|
@@ -110825,39 +110881,57 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110825
110881
|
const viewport = activeContentRef.current;
|
|
110826
110882
|
if (!viewport) return;
|
|
110827
110883
|
const restoreTarget = ((_c2 = (_b2 = (_a3 = state.editorState.getNavigationState(contextEntity["@id"])) == null ? void 0 : _a3.tabStates) == null ? void 0 : _b2[activeTab]) == null ? void 0 : _c2.scrollTop) ?? 0;
|
|
110828
|
-
|
|
110884
|
+
debugScroll("restore.start", {
|
|
110829
110885
|
entityId: contextEntity["@id"],
|
|
110830
110886
|
activeTab,
|
|
110831
110887
|
restoreTarget,
|
|
110832
|
-
|
|
110888
|
+
viewport: {
|
|
110889
|
+
clientHeight: viewport.clientHeight,
|
|
110890
|
+
scrollHeight: viewport.scrollHeight,
|
|
110891
|
+
scrollTop: viewport.scrollTop
|
|
110892
|
+
}
|
|
110833
110893
|
});
|
|
110834
110894
|
let cancelled = false;
|
|
110835
110895
|
let rafId = 0;
|
|
110836
110896
|
let timerId = 0;
|
|
110837
110897
|
let attempts = 0;
|
|
110838
|
-
const maxAttempts =
|
|
110898
|
+
const maxAttempts = 40;
|
|
110899
|
+
const previousInlineScrollBehavior = viewport.style.scrollBehavior;
|
|
110900
|
+
restoreInProgressRef.current = true;
|
|
110901
|
+
viewport.style.scrollBehavior = "auto";
|
|
110839
110902
|
const attemptRestore = () => {
|
|
110840
110903
|
if (cancelled) return;
|
|
110841
110904
|
attempts += 1;
|
|
110842
110905
|
const maxScrollable = Math.max(0, viewport.scrollHeight - viewport.clientHeight);
|
|
110843
110906
|
const target = Math.min(restoreTarget, maxScrollable);
|
|
110844
|
-
viewport.
|
|
110845
|
-
|
|
110907
|
+
viewport.scrollTo({ top: target, behavior: "auto" });
|
|
110908
|
+
const contentReady = restoreTarget <= maxScrollable || restoreTarget === 0;
|
|
110909
|
+
const done = contentReady && Math.abs(viewport.scrollTop - target) <= 1;
|
|
110910
|
+
debugScroll("restore.attempt", {
|
|
110846
110911
|
entityId: contextEntity["@id"],
|
|
110847
110912
|
activeTab,
|
|
110848
|
-
|
|
110913
|
+
attempts,
|
|
110849
110914
|
restoreTarget,
|
|
110850
110915
|
maxScrollable,
|
|
110851
|
-
|
|
110916
|
+
target,
|
|
110917
|
+
actualScrollTop: viewport.scrollTop,
|
|
110918
|
+
clientHeight: viewport.clientHeight,
|
|
110919
|
+
scrollHeight: viewport.scrollHeight,
|
|
110920
|
+
contentReady,
|
|
110921
|
+
done
|
|
110852
110922
|
});
|
|
110853
|
-
const done = Math.abs(viewport.scrollTop - target) <= 1;
|
|
110854
110923
|
if (done || attempts >= maxAttempts) {
|
|
110855
|
-
|
|
110924
|
+
restoreInProgressRef.current = false;
|
|
110925
|
+
viewport.style.scrollBehavior = previousInlineScrollBehavior;
|
|
110926
|
+
debugScroll("restore.stop", {
|
|
110856
110927
|
entityId: contextEntity["@id"],
|
|
110857
110928
|
activeTab,
|
|
110858
110929
|
attempts,
|
|
110859
110930
|
restoreTarget,
|
|
110860
|
-
|
|
110931
|
+
finalScrollTop: viewport.scrollTop,
|
|
110932
|
+
maxScrollable,
|
|
110933
|
+
contentReady,
|
|
110934
|
+
done
|
|
110861
110935
|
});
|
|
110862
110936
|
return;
|
|
110863
110937
|
}
|
|
@@ -110870,6 +110944,8 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110870
110944
|
viewport.addEventListener("scroll", handleScroll, { passive: true });
|
|
110871
110945
|
return () => {
|
|
110872
110946
|
cancelled = true;
|
|
110947
|
+
restoreInProgressRef.current = false;
|
|
110948
|
+
viewport.style.scrollBehavior = previousInlineScrollBehavior;
|
|
110873
110949
|
if (navigationRestoreReadyRef.current) {
|
|
110874
110950
|
captureViewContext(activeTab, viewport.scrollTop);
|
|
110875
110951
|
}
|
|
@@ -110882,21 +110958,18 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
110882
110958
|
const pendingTab = pendingRestoredTabRef.current;
|
|
110883
110959
|
if (!(contextEntity == null ? void 0 : contextEntity["@id"])) return;
|
|
110884
110960
|
if (pendingTab) {
|
|
110961
|
+
debugScroll("restore.pending-tab", {
|
|
110962
|
+
entityId: contextEntity["@id"],
|
|
110963
|
+
pendingTab,
|
|
110964
|
+
activeTab
|
|
110965
|
+
});
|
|
110885
110966
|
if (activeTab !== pendingTab) {
|
|
110886
|
-
debugNav("restore.waitingForCommittedTab", {
|
|
110887
|
-
entityId: contextEntity["@id"],
|
|
110888
|
-
pendingTab,
|
|
110889
|
-
activeTab
|
|
110890
|
-
});
|
|
110891
110967
|
return;
|
|
110892
110968
|
}
|
|
110893
110969
|
navigationRestoreReadyRef.current = true;
|
|
110970
|
+
restoreInProgressRef.current = true;
|
|
110894
110971
|
pendingRestoredTabRef.current = null;
|
|
110895
110972
|
setScrollRestoreNonce((prev2) => prev2 + 1);
|
|
110896
|
-
debugNav("restore.tabCommitted", {
|
|
110897
|
-
entityId: contextEntity["@id"],
|
|
110898
|
-
activeTab
|
|
110899
|
-
});
|
|
110900
110973
|
return;
|
|
110901
110974
|
}
|
|
110902
110975
|
if (!navigationRestoreReadyRef.current) return;
|
|
@@ -111221,7 +111294,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
111221
111294
|
),
|
|
111222
111295
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute right-0 top-0 bottom-0 w-1 bg-slate-300 opacity-0 group-hover:opacity-100" })
|
|
111223
111296
|
] }) }),
|
|
111224
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: "flex-1 overflow-y-auto scroll-smooth min-h-0 p-3", children: [
|
|
111297
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: "describo-editor-scroll flex-1 overflow-y-auto scroll-smooth min-h-0 p-3", children: [
|
|
111225
111298
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row space-x-2 my-2 p-2", children: [
|
|
111226
111299
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111227
111300
|
"div",
|
|
@@ -111309,7 +111382,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
111309
111382
|
tabBarStyle: { width: "100%" }
|
|
111310
111383
|
}
|
|
111311
111384
|
) }),
|
|
111312
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: "h-full overflow-y-auto scroll-smooth min-h-0 p-3", children: [
|
|
111385
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: "describo-editor-scroll h-full overflow-y-auto scroll-smooth min-h-0 p-3", children: [
|
|
111313
111386
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-row space-x-2 my-2 p-2", children: [
|
|
111314
111387
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111315
111388
|
"div",
|
|
@@ -111391,7 +111464,7 @@ const RenderEntity = forwardRef((props, ref) => {
|
|
|
111391
111464
|
),
|
|
111392
111465
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute right-0 top-0 bottom-0 w-1 bg-slate-300 opacity-0 group-hover:opacity-100" })
|
|
111393
111466
|
] }) }),
|
|
111394
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: "h-full overflow-y-auto scroll-smooth min-h-0 p-3", children: [
|
|
111467
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Ve.Pane, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: activeContentRef, className: "describo-editor-scroll h-full overflow-y-auto scroll-smooth min-h-0 p-3", children: [
|
|
111395
111468
|
!((_m = state.configuration) == null ? void 0 : _m.readonly) && ((_n = tabs.find((t22) => t22.name === activeTab)) == null ? void 0 : _n.missingRequiredData) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-red-600 float-right mb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
111396
111469
|
"button",
|
|
111397
111470
|
{
|
|
@@ -119821,7 +119894,7 @@ var EmotionCacheContext = /* @__PURE__ */ React.createContext(
|
|
|
119821
119894
|
}) : null
|
|
119822
119895
|
);
|
|
119823
119896
|
var CacheProvider = EmotionCacheContext.Provider;
|
|
119824
|
-
const version = "0.1.
|
|
119897
|
+
const version = "0.1.25";
|
|
119825
119898
|
const pkg = {
|
|
119826
119899
|
version
|
|
119827
119900
|
};
|
|
@@ -119830,7 +119903,8 @@ const ProfileManagerContext = React__default.createContext(null);
|
|
|
119830
119903
|
const CrateManagerContext = React__default.createContext(null);
|
|
119831
119904
|
const LookupsContext = React__default.createContext(null);
|
|
119832
119905
|
function DescriboCrateBuilder(props) {
|
|
119833
|
-
|
|
119906
|
+
const { stateScopeKey } = props;
|
|
119907
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(StateStoreProvider, { stateScopeKey, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DescriboCrateBuilderInner, { ...props }) });
|
|
119834
119908
|
}
|
|
119835
119909
|
function DescriboCrateBuilderInner(props) {
|
|
119836
119910
|
const {
|
|
@@ -119853,6 +119927,7 @@ function DescriboCrateBuilderInner(props) {
|
|
|
119853
119927
|
language: language2 = propertyDefinitions.language.default,
|
|
119854
119928
|
resetTabOnEntityChange = false,
|
|
119855
119929
|
resetTabOnProfileChange = false,
|
|
119930
|
+
stateScopeKey,
|
|
119856
119931
|
onReady,
|
|
119857
119932
|
onError,
|
|
119858
119933
|
onWarning,
|
package/dist/types.d.ts
CHANGED