1import { 2 Dynamic_default, 3 Paper_default, 4 ZometoolInstructions, 5 alpha, 6 capitalize, 7 capitalize_default, 8 clsx_m_default, 9 composeClasses, 10 createComponentFactory_default, 11 createStyle_default, 12 createStyled_default, 13 createUnarySpacing, 14 darken, 15 deepmerge, 16 deepmerge2, 17 generateUtilityClass, 18 generateUtilityClasses, 19 getThemeValue_default, 20 handleBreakpoints, 21 inspectChildren, 22 instructionsCSS, 23 isComponentObject, 24 lighten, 25 redefine, 26 resolveBreakpointValues, 27 skipProps, 28 skipRootProps, 29 styled_default, 30 systemPropNames, 31 useTheme_default 32} from "./chunk-OZSYDWV2.js"; 33import { 34 DesignViewer, 35 ImageCaptureProvider, 36 SceneIndexingProvider, 37 SceneProvider, 38 urlViewerCSS, 39 useImageCapture, 40 useSceneIndexing 41} from "./chunk-PBSMYCQH.js"; 42import { 43 getUserRepos 44} from "./chunk-RIUXEPIU.js"; 45import { 46 REVISION 47} from "./chunk-YWNSTGG6.js"; 48import { 49 CameraProvider, 50 copyOfCamera, 51 createMutable, 52 createStore, 53 saveTextFile, 54 saveTextFileAs, 55 unwrap, 56 useCamera, 57 useViewer, 58 useWorkerClient 59} from "./chunk-737R77QV.js"; 60import { 61 $DEVCOMP, 62 Dynamic, 63 For, 64 Match, 65 Portal, 66 SVGElements, 67 Show, 68 Switch, 69 addEventListener, 70 batch, 71 children, 72 className, 73 createComponent, 74 createComputed, 75 createContext, 76 createEffect, 77 createMemo, 78 createRenderEffect, 79 createSignal, 80 createUniqueId, 81 delegateEvents, 82 getNextElement, 83 insert, 84 isServer, 85 mapArray, 86 memo, 87 mergeProps, 88 on, 89 onCleanup, 90 onMount, 91 setAttribute, 92 sharedConfig, 93 splitProps, 94 spread, 95 ssrElement, 96 style, 97 template, 98 untrack, 99 use, 100 useContext, 101 voidFn 102} from "./chunk-47C2ISC4.js"; 103import { 104 doControllerAction, 105 endPreviewStrut, 106 fetchDesign, 107 importMeshFile, 108 movePreviewStrut, 109 newDesign, 110 openDesignFile, 111 requestControllerProperty, 112 scalePreviewStrut, 113 setControllerProperty, 114 startPreviewStrut 115} from "./chunk-J3RXXGCJ.js"; 116
vendor: 505 bytes, lines 117-145
117// node_modules/@suid/material/Typography/typographyClasses.js 118function getTypographyUtilityClass(slot) { 119 return generateUtilityClass("MuiTypography", slot); 120} 121var typographyClasses = generateUtilityClasses("MuiTypography", [ 122 "root", 123 "h1", 124 "h2", 125 "h3", 126 "h4", 127 "h5", 128 "h6", 129 "subtitle1", 130 "subtitle2", 131 "body1", 132 "body2", 133 "inherit", 134 "button", 135 "caption", 136 "overline", 137 "alignLeft", 138 "alignRight", 139 "alignCenter", 140 "alignJustify", 141 "noWrap", 142 "gutterBottom", 143 "paragraph" 144]); 145
vendor: 629 bytes, lines 146-171
146// node_modules/@suid/system/styleFunctionSx/extendSxProp.jsx 147function splitSxProps(props) { 148 const [systemProps2, sxProps, otherProps] = splitProps(props, systemPropNames, ["sx"]); 149 const sx = () => { 150 const sx2 = sxProps.sx; 151 if (sx2) { 152 if (Array.isArray(sx2)) { 153 return [systemProps2, ...sx2]; 154 } else { 155 return mergeProps(systemProps2, sx2); 156 } 157 } else { 158 return systemProps2; 159 } 160 }; 161 return [sx, otherProps]; 162} 163function extendSxProp(props) { 164 const [sx, otherProps] = splitSxProps(props); 165 return mergeProps(otherProps, { 166 get sx() { 167 return sx(); 168 } 169 }); 170} 171
vendor: 3,585 bytes, lines 172-291
172// node_modules/@suid/material/Typography/Typography.jsx 173var $ = createComponentFactory_default()({ 174 name: "MuiTypography", 175 selfPropNames: ["align", "children", "classes", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"], 176 utilityClass: getTypographyUtilityClass, 177 slotClasses: (ownerState) => ({ 178 root: ["root", ownerState.variant, ownerState.align !== "inherit" && `align${capitalize_default(ownerState.align)}`, ownerState.gutterBottom && "gutterBottom", ownerState.noWrap && "noWrap", ownerState.paragraph && "paragraph"] 179 }) 180}); 181var TypographyRoot = styled_default("span", { 182 name: "MuiTypography", 183 slot: "Root", 184 overridesResolver: (props, styles3) => { 185 const { 186 ownerState 187 } = props; 188 return [styles3.root, ownerState.variant && styles3[ownerState.variant], ownerState.align !== "inherit" && styles3[`align${capitalize_default(ownerState.align)}`], ownerState.noWrap && styles3.noWrap, ownerState.gutterBottom && styles3.gutterBottom, ownerState.paragraph && styles3.paragraph]; 189 } 190})(({ 191 theme, 192 ownerState 193}) => ({ 194 margin: 0, 195 color: ownerState.color, 196 ...ownerState.variant && theme.typography[ownerState.variant], 197 ...ownerState.align !== "inherit" && { 198 textAlign: ownerState.align 199 }, 200 ...ownerState.noWrap && { 201 overflow: "hidden", 202 textOverflow: "ellipsis", 203 whiteSpace: "nowrap" 204 }, 205 ...ownerState.gutterBottom && { 206 marginBottom: "0.35em" 207 }, 208 ...ownerState.paragraph && { 209 marginBottom: 16 210 } 211})); 212var defaultVariantMapping = { 213 h1: "h1", 214 h2: "h2", 215 h3: "h3", 216 h4: "h4", 217 h5: "h5", 218 h6: "h6", 219 subtitle1: "h6", 220 subtitle2: "h6", 221 body1: "p", 222 body2: "p", 223 inherit: "p" 224}; 225var colorTransformations = { 226 primary: "primary.main", 227 textPrimary: "text.primary", 228 secondary: "secondary.main", 229 textSecondary: "text.secondary", 230 error: "error.main" 231}; 232var transformDeprecatedColors = (color) => { 233 return colorTransformations[color] || color; 234}; 235var Typography = $.defineComponent(function Typography2(inProps) { 236 const theme = useTheme_default(); 237 const themeProps = theme.components?.[$.name]?.defaultProps; 238 const color = () => ( 239 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion 240 transformDeprecatedColors(inProps.color ?? themeProps?.color) 241 ); 242 const [sx, props] = splitSxProps(mergeProps({ 243 align: "inherit", 244 variant: "body1", 245 variantMapping: defaultVariantMapping 246 }, themeProps, inProps, { 247 get color() { 248 return color(); 249 } 250 })); 251 const [, other] = splitProps(props, ["align", "class", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]); 252 const ownerState = { 253 get classes() { 254 return props.classes; 255 }, 256 get align() { 257 return props.align; 258 }, 259 get color() { 260 return color(); 261 }, 262 get gutterBottom() { 263 return props.gutterBottom || false; 264 }, 265 get noWrap() { 266 return props.noWrap || false; 267 }, 268 get paragraph() { 269 return props.paragraph || false; 270 }, 271 get variant() { 272 return props.variant; 273 } 274 }; 275 const Component = () => props.component || (props.paragraph ? "p" : props.variantMapping[props.variant] || defaultVariantMapping[props.variant]) || "span"; 276 const classes = $.useClasses(ownerState); 277 return createComponent(TypographyRoot, mergeProps({ 278 get as() { 279 return Component(); 280 }, 281 get sx() { 282 return sx(); 283 }, 284 ownerState, 285 get ["class"]() { 286 return clsx_m_default(classes.root, props.class); 287 } 288 }, other)); 289}); 290var Typography_default = Typography; 291
vendor: 335 bytes, lines 292-305
292// node_modules/@suid/material/Link/linkClasses.js 293function getLinkUtilityClass(slot) { 294 return generateUtilityClass("MuiLink", slot); 295} 296var linkClasses = generateUtilityClasses("MuiLink", [ 297 "root", 298 "underlineNone", 299 "underlineHover", 300 "underlineAlways", 301 "button", 302 "focusVisible" 303]); 304var linkClasses_default = linkClasses; 305
vendor: 2,539 bytes, lines 306-406
306// node_modules/@suid/material/node_modules/@suid/utils/useIsFocusVisible.js 307var hadKeyboardEvent = true; 308var hadFocusVisibleRecently = false; 309var hadFocusVisibleRecentlyTimeout; 310var inputTypesWhitelist = { 311 text: true, 312 search: true, 313 url: true, 314 tel: true, 315 email: true, 316 password: true, 317 number: true, 318 date: true, 319 month: true, 320 week: true, 321 time: true, 322 datetime: true, 323 "datetime-local": true 324}; 325function focusTriggersKeyboardModality(node) { 326 const { type, tagName } = node; 327 if (tagName === "INPUT" && inputTypesWhitelist[type] && !node.readOnly) { 328 return true; 329 } 330 if (tagName === "TEXTAREA" && !node.readOnly) { 331 return true; 332 } 333 if (node.isContentEditable) { 334 return true; 335 } 336 return false; 337} 338function handleKeyDown(event) { 339 if (event.metaKey || event.altKey || event.ctrlKey) { 340 return; 341 } 342 hadKeyboardEvent = true; 343} 344function handlePointerDown() { 345 hadKeyboardEvent = false; 346} 347function handleVisibilityChange() { 348 if (this.visibilityState === "hidden") { 349 if (hadFocusVisibleRecently) { 350 hadKeyboardEvent = true; 351 } 352 } 353} 354function prepare(doc) { 355 doc.addEventListener("keydown", handleKeyDown, true); 356 doc.addEventListener("mousedown", handlePointerDown, true); 357 doc.addEventListener("pointerdown", handlePointerDown, true); 358 doc.addEventListener("touchstart", handlePointerDown, true); 359 doc.addEventListener("visibilitychange", handleVisibilityChange, true); 360} 361function isFocusVisible(event) { 362 const { target } = event; 363 try { 364 return target.matches(":focus-visible"); 365 } catch (error) { 366 } 367 return hadKeyboardEvent || focusTriggersKeyboardModality(target); 368} 369function useIsFocusVisible() { 370 const ref = (node) => { 371 if (node != null) { 372 prepare(node.ownerDocument); 373 } 374 }; 375 const [isFocusVisibleRef, setFocusVisibleRef] = createSignal(false); 376 function handleBlurVisible() { 377 if (isFocusVisibleRef()) { 378 hadFocusVisibleRecently = true; 379 window.clearTimeout(hadFocusVisibleRecentlyTimeout); 380 hadFocusVisibleRecentlyTimeout = window.setTimeout(() => { 381 hadFocusVisibleRecently = false; 382 }, 100); 383 setFocusVisibleRef(false); 384 return true; 385 } 386 return false; 387 } 388 function handleFocusVisible(event) { 389 if (isFocusVisible(event)) { 390 setFocusVisibleRef(true); 391 return true; 392 } 393 return false; 394 } 395 return { 396 isFocusVisibleRef: { 397 get current() { 398 return isFocusVisibleRef(); 399 } 400 }, 401 onFocus: handleFocusVisible, 402 onBlur: handleBlurVisible, 403 ref 404 }; 405} 406
vendor: 3,906 bytes, lines 407-547
407// node_modules/@suid/material/Link/Link.jsx 408var $2 = createComponentFactory_default()({ 409 name: "MuiLink", 410 autoCallUseClasses: false, 411 selfPropNames: ["TypographyClasses", "children", "classes", "color", "underline", "variant"], 412 propDefaults: ({ 413 set 414 }) => set({ 415 color: "primary", 416 component: "a", 417 underline: "always", 418 variant: "inherit" 419 }), 420 utilityClass: getLinkUtilityClass, 421 slotClasses: (ownerState) => ({ 422 root: ["root", `underline${capitalize_default(ownerState.underline)}`, ownerState.component === "button" && "button", ownerState.focusVisible && "focusVisible"] 423 }) 424}); 425var colorTransformations2 = { 426 primary: "primary.main", 427 textPrimary: "text.primary", 428 secondary: "secondary.main", 429 textSecondary: "text.secondary", 430 error: "error.main" 431}; 432var transformDeprecatedColors2 = (color) => { 433 return colorTransformations2[color] || color; 434}; 435var LinkRoot = styled_default(Typography_default, { 436 name: "MuiLink", 437 slot: "Root", 438 overridesResolver: (props, styles3) => { 439 const { 440 ownerState 441 } = props; 442 return [styles3.root, styles3[`underline${capitalize_default(ownerState.underline)}`], ownerState.component === "button" && styles3.button]; 443 } 444})(({ 445 theme, 446 ownerState 447}) => { 448 const color = getThemeValue_default(theme, "palette", transformDeprecatedColors2(ownerState.color)) || ownerState.color; 449 return { 450 ...ownerState.underline === "none" && { 451 textDecoration: "none" 452 }, 453 ...ownerState.underline === "hover" && { 454 textDecoration: "none", 455 "&:hover": { 456 textDecoration: "underline" 457 } 458 }, 459 ...ownerState.underline === "always" && { 460 textDecoration: "underline", 461 textDecorationColor: color !== "inherit" ? alpha(color, 0.4) : void 0, 462 "&:hover": { 463 textDecorationColor: "inherit" 464 } 465 }, 466 // Same reset as ButtonBase.root 467 ...ownerState.component === "button" && { 468 position: "relative", 469 WebkitTapHighlightColor: "transparent", 470 backgroundColor: "transparent", 471 // We disable the focus ring for mouse, touch and keyboard users. 472 outline: 0, 473 border: 0, 474 margin: 0, 475 borderRadius: 0, 476 padding: 0, 477 cursor: "pointer", 478 userSelect: "none", 479 verticalAlign: "middle", 480 MozAppearance: "none", 481 WebkitAppearance: "none", 482 "&::-moz-focus-inner": { 483 borderStyle: "none" 484 // Remove Firefox dotted outline. 485 }, 486 [`&.${linkClasses_default.focusVisible}`]: { 487 outline: "auto" 488 } 489 } 490 }; 491}); 492var Link = $2.component(function Link2({ 493 allProps, 494 otherProps, 495 props 496}) { 497 const visible = useIsFocusVisible(); 498 const [focusVisible, setFocusVisible] = createSignal(false); 499 const ownerState = mergeProps(allProps, { 500 get focusVisible() { 501 return focusVisible(); 502 } 503 }); 504 const classes = $2.useClasses(ownerState); 505 return createComponent(LinkRoot, mergeProps({ 506 get ["class"]() { 507 return clsx_m_default(classes.root, otherProps.class); 508 }, 509 get classes() { 510 return props.TypographyClasses; 511 }, 512 get color() { 513 return props.color; 514 }, 515 onBlur: (event) => { 516 visible.onBlur(event); 517 if (visible.isFocusVisibleRef.current === false) { 518 setFocusVisible(false); 519 } 520 if (typeof otherProps.onBlur === "function") { 521 otherProps.onBlur(event); 522 } 523 }, 524 onFocus: (event) => { 525 visible.onFocus(event); 526 if (visible.isFocusVisibleRef.current === true) { 527 setFocusVisible(true); 528 } 529 if (typeof otherProps.onFocus === "function") { 530 otherProps.onFocus(event); 531 } 532 }, 533 ownerState: allProps, 534 get variant() { 535 return props.variant; 536 } 537 }, otherProps, { 538 get component() { 539 return otherProps.component; 540 }, 541 get children() { 542 return props.children; 543 } 544 })); 545}); 546var Link_default = Link; 547
vendor: 477 bytes, lines 548-569
548// node_modules/@suid/material/Divider/dividerClasses.js 549function getDividerUtilityClass(slot) { 550 return generateUtilityClass("MuiDivider", slot); 551} 552var dividerClasses = generateUtilityClasses("MuiDivider", [ 553 "root", 554 "absolute", 555 "fullWidth", 556 "inset", 557 "middle", 558 "flexItem", 559 "light", 560 "vertical", 561 "withChildren", 562 "withChildrenVertical", 563 "textAlignRight", 564 "textAlignLeft", 565 "wrapper", 566 "wrapperVertical" 567]); 568var dividerClasses_default = dividerClasses; 569
vendor: 5,431 bytes, lines 570-756
570// node_modules/@suid/material/Divider/Divider.jsx 571var $3 = createComponentFactory_default()({ 572 name: "MuiDivider", 573 selfPropNames: ["absolute", "children", "classes", "flexItem", "light", "orientation", "textAlign", "variant"], 574 propDefaults: ({ 575 set, 576 inProps 577 }) => set({ 578 absolute: false, 579 get component() { 580 return inProps.children ? "div" : "hr"; 581 }, 582 flexItem: false, 583 light: false, 584 orientation: "horizontal", 585 get role() { 586 return inProps.component !== "hr" ? "separator" : void 0; 587 }, 588 textAlign: "center", 589 variant: "fullWidth" 590 }), 591 utilityClass: getDividerUtilityClass, 592 slotClasses: (o) => ({ 593 root: ["root", o.absolute && "absolute", o.variant, o.light && "light", o.orientation === "vertical" && "vertical", o.flexItem && "flexItem", !!o.children && "withChildren", !!o.children && o.orientation === "vertical" && "withChildrenVertical", o.textAlign === "right" && o.orientation !== "vertical" && "textAlignRight", o.textAlign === "left" && o.orientation !== "vertical" && "textAlignLeft"], 594 wrapper: ["wrapper", o.orientation === "vertical" && "wrapperVertical"] 595 }) 596}); 597var DividerRoot = styled_default("div", { 598 name: "MuiDivider", 599 slot: "Root", 600 overridesResolver: (props, styles3) => { 601 const { 602 ownerState 603 } = props; 604 return [styles3.root, ownerState.absolute && styles3.absolute, styles3[ownerState.variant], ownerState.light && styles3.light, ownerState.orientation === "vertical" && styles3.vertical, ownerState.flexItem && styles3.flexItem, ownerState.children && styles3.withChildren, ownerState.children && ownerState.orientation === "vertical" && styles3.withChildrenVertical, ownerState.textAlign === "right" && ownerState.orientation !== "vertical" && styles3.textAlignRight, ownerState.textAlign === "left" && ownerState.orientation !== "vertical" && styles3.textAlignLeft]; 605 } 606})(({ 607 theme, 608 ownerState 609}) => ({ 610 margin: 0, 611 flexShrink: 0, 612 borderWidth: 0, 613 borderStyle: "solid", 614 borderColor: theme.palette.divider, 615 borderBottomWidth: "thin", 616 ...ownerState.absolute && { 617 position: "absolute", 618 bottom: 0, 619 left: 0, 620 width: "100%" 621 }, 622 ...ownerState.light && { 623 borderColor: alpha(theme.palette.divider, 0.08) 624 }, 625 ...ownerState.variant === "inset" && { 626 marginLeft: 72 627 }, 628 ...ownerState.variant === "middle" && ownerState.orientation === "horizontal" && { 629 marginLeft: theme.spacing(2), 630 marginRight: theme.spacing(2) 631 }, 632 ...ownerState.variant === "middle" && ownerState.orientation === "vertical" && { 633 marginTop: theme.spacing(1), 634 marginBottom: theme.spacing(1) 635 }, 636 ...ownerState.orientation === "vertical" && { 637 height: "100%", 638 borderBottomWidth: 0, 639 borderRightWidth: "thin" 640 }, 641 ...ownerState.flexItem && { 642 alignSelf: "stretch", 643 height: "auto" 644 } 645}), ({ 646 theme, 647 ownerState 648}) => ({ 649 ...ownerState.children && { 650 display: "flex", 651 whiteSpace: "nowrap", 652 textAlign: "center", 653 border: 0, 654 "&::before, &::after": { 655 position: "relative", 656 width: "100%", 657 borderTop: `thin solid ${theme.palette.divider}`, 658 top: "50%", 659 content: '""', 660 transform: "translateY(50%)" 661 } 662 } 663}), ({ 664 theme, 665 ownerState 666}) => ({ 667 ...ownerState.children && ownerState.orientation === "vertical" && { 668 flexDirection: "column", 669 "&::before, &::after": { 670 height: "100%", 671 top: "0%", 672 left: "50%", 673 borderTop: 0, 674 borderLeft: `thin solid ${theme.palette.divider}`, 675 transform: "translateX(0%)" 676 } 677 } 678}), ({ 679 ownerState 680}) => ({ 681 ...ownerState.textAlign === "right" && ownerState.orientation !== "vertical" && { 682 "&::before": { 683 width: "90%" 684 }, 685 "&::after": { 686 width: "10%" 687 } 688 }, 689 ...ownerState.textAlign === "left" && ownerState.orientation !== "vertical" && { 690 "&::before": { 691 width: "10%" 692 }, 693 "&::after": { 694 width: "90%" 695 } 696 } 697})); 698var DividerWrapper = styled_default("span", { 699 name: "MuiDivider", 700 slot: "Wrapper", 701 overridesResolver: (props, styles3) => { 702 const { 703 ownerState 704 } = props; 705 return [styles3.wrapper, ownerState.orientation === "vertical" && styles3.wrapperVertical]; 706 } 707})(({ 708 theme, 709 ownerState 710}) => ({ 711 display: "inline-block", 712 paddingLeft: `calc(${theme.spacing(1)} * 1.2)`, 713 paddingRight: `calc(${theme.spacing(1)} * 1.2)`, 714 ...ownerState.orientation === "vertical" && { 715 paddingTop: `calc(${theme.spacing(1)} * 1.2)`, 716 paddingBottom: `calc(${theme.spacing(1)} * 1.2)` 717 } 718})); 719var Divider = $3.component(function Divider2({ 720 allProps, 721 otherProps, 722 classes 723}) { 724 const $DividerRoot = redefine(DividerRoot, "div", "hr"); 725 return createComponent($DividerRoot, mergeProps({ 726 get role() { 727 return allProps.role; 728 }, 729 get as() { 730 return otherProps.component; 731 } 732 }, otherProps, { 733 ownerState: allProps, 734 get ["class"]() { 735 return clsx_m_default(classes.root, allProps.class); 736 }, 737 get children() { 738 return createComponent(Show, { 739 get when() { 740 return allProps.children; 741 }, 742 children: (children2) => createComponent(DividerWrapper, { 743 get ["class"]() { 744 return classes.wrapper; 745 }, 746 ownerState: allProps, 747 get children() { 748 return children2(); 749 } 750 }) 751 }); 752 } 753 })); 754}); 755var Divider_default = Divider; 756
vendor: 515 bytes, lines 757-767
757// node_modules/@suid/material/transitions/utils.js 758var reflow = (node) => node.scrollTop; 759function getTransitionProps(props, options) { 760 const { timeout, easing: easing2, style: style2 = {} } = props; 761 return { 762 duration: style2.transitionDuration ?? (typeof timeout === "number" ? timeout : typeof timeout === "string" ? 0 : timeout[options.mode] || 0), 763 easing: style2.transitionTimingFunction ?? (typeof easing2 === "object" ? easing2[options.mode] : easing2), 764 delay: style2.transitionDelay 765 }; 766} 767
vendor: 2,807 bytes, lines 768-878
768// node_modules/@suid/base/Transition/Transition.jsx 769function resolveTransitionTimeout(timeout) { 770 if (typeof timeout === "number") { 771 return { 772 exit: timeout, 773 enter: timeout, 774 appear: timeout 775 }; 776 } else { 777 return { 778 exit: timeout?.exit || 0, 779 enter: timeout?.enter || 0, 780 appear: timeout?.appear ?? timeout?.enter ?? 0 781 }; 782 } 783} 784function Transition(inProps) { 785 const props = mergeProps({ 786 in: false, 787 mountOnEnter: false, 788 unmountOnExit: false, 789 appear: false, 790 enter: true, 791 exit: true 792 }, inProps); 793 const timeouts = createMemo(() => resolveTransitionTimeout(props.timeout)); 794 let initialStatus; 795 if (props.in) { 796 if (props.appear) { 797 initialStatus = "exited"; 798 } else { 799 initialStatus = "entered"; 800 } 801 } else { 802 if (props.unmountOnExit || props.mountOnEnter) { 803 initialStatus = "unmounted"; 804 } else { 805 initialStatus = "exited"; 806 } 807 } 808 const [status, setStatus] = createSignal(initialStatus); 809 let enteredTimeout; 810 let exitedTimeout; 811 let inTimeout; 812 let firstStatusChange = true; 813 function onTransitionEnd(ms, cb) { 814 const next = () => setTimeout(cb, ms); 815 let timeout; 816 let stopped = false; 817 const stop = () => { 818 stopped = true; 819 timeout && clearTimeout(timeout); 820 }; 821 if (props.addEndListener) { 822 props.addEndListener(() => { 823 if (!stopped) timeout = next(); 824 }); 825 } else { 826 timeout = next(); 827 } 828 return stop; 829 } 830 const result = createMemo(on(() => [status()], () => { 831 const v = status(); 832 const result2 = v !== "unmounted" ? props.children(v) : void 0; 833 if (firstStatusChange) { 834 firstStatusChange = false; 835 return result2; 836 } 837 if (v === "entering") { 838 props.onEntering?.(); 839 if (exitedTimeout) { 840 exitedTimeout(); 841 exitedTimeout = void 0; 842 } 843 enteredTimeout = onTransitionEnd(timeouts().enter, () => setStatus("entered")); 844 } else if (v === "entered") { 845 props.onEntered?.(); 846 } else if (v === "exiting") { 847 props.onExiting?.(); 848 if (enteredTimeout) { 849 enteredTimeout(); 850 enteredTimeout = void 0; 851 } 852 exitedTimeout = onTransitionEnd(timeouts().exit, () => setStatus("exited")); 853 } else if (v === "exited") { 854 props.onExited?.(); 855 } 856 return result2; 857 })); 858 createEffect((firstTime) => { 859 if (props.in) { 860 untrack(() => props.onEnter?.()); 861 setStatus("entering"); 862 } else { 863 if (!firstTime) { 864 untrack(() => props.onExit?.()); 865 setStatus("exiting"); 866 } 867 } 868 return false; 869 }, true); 870 onCleanup(() => { 871 enteredTimeout?.(); 872 exitedTimeout?.(); 873 inTimeout && clearTimeout(inTimeout); 874 }); 875 return result(); 876} 877var Transition_default = Transition; 878
vendor: 101 bytes, lines 879-881
879// node_modules/@suid/base/Transition/TransitionContext.js 880var TransitionContext = createContext(); 881
vendor: 407 bytes, lines 882-898
882// node_modules/@suid/system/createRef.js 883function createRef(input) { 884 const cb = (e) => { 885 cb.ref = cb.current = e; 886 if (typeof input === "function") { 887 const inputResult = input(); 888 if (typeof inputResult === "function") { 889 inputResult(e); 890 } 891 } else if (typeof input?.ref === "function") { 892 input.ref(e); 893 } 894 }; 895 return cb; 896} 897var createRef_default = createRef; 898
vendor: 171 bytes, lines 899-904
899// node_modules/@suid/system/createElementRef.js 900function createElementRef(props) { 901 return createRef_default(props); 902} 903var createElementRef_default = createElementRef; 904
vendor: 2,377 bytes, lines 905-993
905// node_modules/@suid/material/Fade/Fade.jsx 906var $4 = createComponentFactory_default()({ 907 name: "MuiFader", 908 selfPropNames: ["appear", "children", "easing", "in", "timeout"], 909 propDefaults: ({ 910 set 911 }) => { 912 const theme = useTheme_default(); 913 return set({ 914 appear: true, 915 get timeout() { 916 return { 917 enter: theme.transitions.duration.enteringScreen, 918 exit: theme.transitions.duration.leavingScreen 919 }; 920 } 921 }); 922 } 923}); 924var fadeSelfPropNames = $4.selfPropNames; 925var Fade = $4.component(function Fade2({ 926 props, 927 otherProps 928}) { 929 const theme = useTheme_default(); 930 const element = createElementRef_default(props); 931 const timeout = createMemo(() => resolveTransitionTimeout(props.timeout)); 932 const c = children(() => props.children); 933 const context = useContext(TransitionContext); 934 return createComponent(Transition_default, mergeProps({ 935 get ["in"]() { 936 return props.in ?? context?.in; 937 }, 938 get appear() { 939 return props.appear; 940 }, 941 get timeout() { 942 return props.timeout; 943 } 944 }, otherProps, { 945 ref: element, 946 onEnter: () => { 947 const e = c(); 948 reflow(e); 949 const transitionProps = getTransitionProps({ 950 style: otherProps.style, 951 timeout: timeout(), 952 easing: props.easing 953 }, { 954 mode: "enter" 955 }); 956 e.style.transition = theme.transitions.create("opacity", transitionProps); 957 otherProps.onEnter?.(); 958 context?.onEnter?.(); 959 }, 960 onExit: () => { 961 const e = c(); 962 const transitionProps = getTransitionProps({ 963 style: otherProps.style, 964 timeout: timeout(), 965 easing: props.easing 966 }, { 967 mode: "enter" 968 }); 969 e.style.transition = theme.transitions.create("opacity", transitionProps); 970 otherProps.onExit?.(); 971 }, 972 onExited: () => { 973 otherProps.onExited?.(); 974 context?.onExited?.(); 975 }, 976 children: (state) => { 977 const element2 = c(); 978 if (state === "exited" && !props.in) { 979 element2.style.visibility = "hidden"; 980 } else { 981 element2.style.removeProperty("visibility"); 982 } 983 if (state === "entering" || state === "entered") { 984 element2.style.opacity = "1"; 985 } else { 986 element2.style.opacity = "0"; 987 } 988 return element2; 989 } 990 })); 991}); 992var Fade_default = Fade; 993
vendor: 176 bytes, lines 994-999
994// node_modules/@suid/base/utils/isHostComponent.js 995function isHostComponent(element) { 996 return typeof element === "string"; 997} 998var isHostComponent_default = isHostComponent; 999
vendor: 259 bytes, lines 1000-1005
1000// node_modules/@suid/base/BackdropUnstyled/backdropUnstyledClasses.js 1001function getBackdropUtilityClass(slot) { 1002 return generateUtilityClass("MuiBackdrop", slot); 1003} 1004var backdropUnstyledClasses = generateUtilityClasses("MuiBackdrop", ["root", "invisible"]); 1005
vendor: 1,203 bytes, lines 1006-1048
1006// node_modules/@suid/base/BackdropUnstyled/BackdropUnstyled.jsx 1007var $5 = createComponentFactory_default()({ 1008 name: "BackdropUnstyled", 1009 selfPropNames: ["children", "classes", "components", "componentsProps", "invisible"], 1010 propDefaults: ({ 1011 set 1012 }) => set({ 1013 component: "div", 1014 components: {}, 1015 componentsProps: {}, 1016 invisible: false 1017 }), 1018 utilityClass: getBackdropUtilityClass, 1019 slotClasses: (ownerState) => ({ 1020 root: ["root", ownerState.invisible && "invisible"] 1021 }) 1022}); 1023var BackdropUnstyled = $5.component(function BackdropUnstyled2({ 1024 props, 1025 otherProps, 1026 allProps, 1027 classes 1028}) { 1029 const Root = () => props.components.Root || otherProps.component; 1030 const rootProps = () => props.componentsProps.root || {}; 1031 return createComponent(Dynamic_default, mergeProps({ 1032 "aria-hidden": true 1033 }, rootProps, otherProps, () => !isHostComponent_default(Root()) && { 1034 ownerState: allProps 1035 }, { 1036 get $component() { 1037 return Root(); 1038 }, 1039 get ["class"]() { 1040 return clsx_m_default(classes.root, rootProps().class, otherProps.class); 1041 }, 1042 get children() { 1043 return props.children; 1044 } 1045 })); 1046}); 1047var BackdropUnstyled_default = BackdropUnstyled; 1048
vendor: 2,138 bytes, lines 1049-1134
1049// node_modules/@suid/material/Backdrop/Backdrop.jsx 1050var $6 = createComponentFactory_default()({ 1051 name: "MuiBackdrop", 1052 selfPropNames: ["classes", "open", "transitionDuration"], 1053 propDefaults: ({ 1054 set 1055 }) => set({ 1056 open: false, 1057 component: "div" 1058 }) 1059}); 1060var BackdropRoot = styled_default("div", { 1061 name: "MuiBackdrop", 1062 slot: "Root", 1063 overridesResolver: (props, styles3) => { 1064 const { 1065 ownerState 1066 } = props; 1067 return [styles3.root, ownerState.invisible && styles3.invisible]; 1068 } 1069})(({ 1070 ownerState 1071}) => ({ 1072 position: "fixed", 1073 display: "flex", 1074 alignItems: "center", 1075 justifyContent: "center", 1076 right: 0, 1077 bottom: 0, 1078 top: 0, 1079 left: 0, 1080 backgroundColor: "rgba(0, 0, 0, 0.5)", 1081 WebkitTapHighlightColor: "transparent", 1082 ...ownerState.invisible && { 1083 backgroundColor: "transparent" 1084 } 1085})); 1086var Backdrop = $6.component(function Backdrop2({ 1087 props, 1088 otherProps 1089}) { 1090 const [fadeProps, backdropProps] = splitProps(otherProps, fadeSelfPropNames); 1091 return createComponent(Fade_default, mergeProps({ 1092 get ["in"]() { 1093 return props.open; 1094 }, 1095 get timeout() { 1096 return props.transitionDuration; 1097 } 1098 }, fadeProps, { 1099 get children() { 1100 return createComponent(BackdropUnstyled_default, mergeProps(backdropProps, { 1101 get ["class"]() { 1102 return otherProps.class; 1103 }, 1104 get invisible() { 1105 return otherProps.invisible; 1106 }, 1107 get components() { 1108 return { 1109 Root: BackdropRoot, 1110 ...otherProps.components 1111 }; 1112 }, 1113 get componentsProps() { 1114 return { 1115 root: { 1116 ...otherProps.componentsProps?.root, 1117 ...(!otherProps.components?.Root || !isHostComponent_default(otherProps.components?.Root)) && { 1118 //ownerState: { ...baseProps.componentsProps?.root?.ownerState }, 1119 } 1120 } 1121 }; 1122 }, 1123 get classes() { 1124 return props.classes; 1125 }, 1126 get children() { 1127 return otherProps.children; 1128 } 1129 })); 1130 } 1131 })); 1132}); 1133var Backdrop_default = Backdrop; 1134
vendor: 526 bytes, lines 1135-1158
1135// node_modules/@suid/base/Portal/Portal.jsx 1136function Portal2(props) { 1137 const container = () => props.container ?? document.body; 1138 return createComponent(Show, { 1139 get when() { 1140 return !props.disablePortal; 1141 }, 1142 get fallback() { 1143 return props.children; 1144 }, 1145 get children() { 1146 return createComponent(Portal, { 1147 get mount() { 1148 return container(); 1149 }, 1150 get children() { 1151 return props.children; 1152 } 1153 }); 1154 } 1155 }); 1156} 1157var Portal_default = Portal2; 1158
vendor: 365 bytes, lines 1159-1174
1159// node_modules/@suid/base/node_modules/@suid/utils/debounce.js 1160function debounce(func, wait = 166) { 1161 let timeout; 1162 function debounced(...args) { 1163 const later = () => { 1164 func.apply(null, args); 1165 }; 1166 clearTimeout(timeout); 1167 timeout = setTimeout(later, wait); 1168 } 1169 debounced.clear = () => { 1170 clearTimeout(timeout); 1171 }; 1172 return debounced; 1173} 1174
vendor: 219 bytes, lines 1175-1180
1175// node_modules/@suid/base/node_modules/@suid/utils/getScrollbarSize.js 1176function getScrollbarSize(doc) { 1177 const documentWidth = doc.documentElement.clientWidth; 1178 return Math.abs(window.innerWidth - documentWidth); 1179} 1180
vendor: 152 bytes, lines 1181-1185
1181// node_modules/@suid/base/node_modules/@suid/utils/ownerDocument.js 1182function ownerDocument(node) { 1183 return node && node.ownerDocument || document; 1184} 1185
vendor: 170 bytes, lines 1186-1191
1186// node_modules/@suid/base/node_modules/@suid/utils/ownerWindow.js 1187function ownerWindow(node) { 1188 const doc = ownerDocument(node); 1189 return doc.defaultView || window; 1190} 1191
vendor: 5,442 bytes, lines 1192-1353
1192// node_modules/@suid/base/ModalUnstyled/ModalManager.js 1193function isOverflowing(container) { 1194 const doc = ownerDocument(container); 1195 if (doc.body === container) { 1196 return ownerWindow(container).innerWidth > doc.documentElement.clientWidth; 1197 } 1198 return container.scrollHeight > container.clientHeight; 1199} 1200function ariaHidden(element, show) { 1201 if (show) { 1202 element.setAttribute("aria-hidden", "true"); 1203 } else { 1204 element.removeAttribute("aria-hidden"); 1205 } 1206} 1207function getPaddingRight(element) { 1208 return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0; 1209} 1210function ariaHiddenSiblings(container, mountElement, elementsToExclude = [], show) { 1211 const blacklist = [mountElement, ...elementsToExclude]; 1212 const blacklistTagNames = ["TEMPLATE", "SCRIPT", "STYLE"]; 1213 [].forEach.call(container.children, (element) => { 1214 if (blacklist.indexOf(element) === -1 && blacklistTagNames.indexOf(element.tagName) === -1) { 1215 ariaHidden(element, show); 1216 } 1217 }); 1218} 1219function findIndexOf(items, callback) { 1220 let idx = -1; 1221 items.some((item, index) => { 1222 if (callback(item)) { 1223 idx = index; 1224 return true; 1225 } 1226 return false; 1227 }); 1228 return idx; 1229} 1230function handleContainer(containerInfo, props) { 1231 const restoreStyle = []; 1232 const container = containerInfo.container; 1233 if (!props.disableScrollLock) { 1234 if (isOverflowing(container)) { 1235 const scrollbarSize = getScrollbarSize(ownerDocument(container)); 1236 restoreStyle.push({ 1237 value: container.style.paddingRight, 1238 property: "padding-right", 1239 el: container 1240 }); 1241 container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`; 1242 const fixedElements = ownerDocument(container).querySelectorAll(".mui-fixed"); 1243 [].forEach.call(fixedElements, (element) => { 1244 restoreStyle.push({ 1245 value: element.style.paddingRight, 1246 property: "padding-right", 1247 el: element 1248 }); 1249 element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`; 1250 }); 1251 } 1252 const parent = container.parentElement; 1253 const containerWindow = ownerWindow(container); 1254 const scrollContainer = parent?.nodeName === "HTML" && containerWindow.getComputedStyle(parent).overflowY === "scroll" ? parent : container; 1255 restoreStyle.push({ 1256 value: scrollContainer.style.overflow, 1257 property: "overflow", 1258 el: scrollContainer 1259 }, { 1260 value: scrollContainer.style.overflowX, 1261 property: "overflow-x", 1262 el: scrollContainer 1263 }, { 1264 value: scrollContainer.style.overflowY, 1265 property: "overflow-y", 1266 el: scrollContainer 1267 }); 1268 scrollContainer.style.overflow = "hidden"; 1269 } 1270 const restore = () => { 1271 restoreStyle.forEach(({ value, el, property }) => { 1272 if (value) { 1273 el.style.setProperty(property, value); 1274 } else { 1275 el.style.removeProperty(property); 1276 } 1277 }); 1278 }; 1279 return restore; 1280} 1281function getHiddenSiblings(container) { 1282 const hiddenSiblings = []; 1283 [].forEach.call(container.children, (element) => { 1284 if (element.getAttribute("aria-hidden") === "true") { 1285 hiddenSiblings.push(element); 1286 } 1287 }); 1288 return hiddenSiblings; 1289} 1290var ModalManager = class { 1291 containers; 1292 modals; 1293 constructor() { 1294 this.modals = []; 1295 this.containers = []; 1296 } 1297 add(modal, container) { 1298 let modalIndex = this.modals.findIndex((v) => v.ref === modal.ref); 1299 if (modalIndex !== -1) { 1300 return modalIndex; 1301 } 1302 modalIndex = this.modals.length; 1303 this.modals.push(modal); 1304 ariaHidden(modal.ref, false); 1305 const hiddenSiblings = getHiddenSiblings(container); 1306 ariaHiddenSiblings(container, modal.ref, hiddenSiblings, true); 1307 const containerIndex = findIndexOf(this.containers, (item) => item.container === container); 1308 if (containerIndex !== -1) { 1309 this.containers[containerIndex].modals.push(modal); 1310 return modalIndex; 1311 } 1312 this.containers.push({ 1313 modals: [modal], 1314 container, 1315 restore: null, 1316 hiddenSiblings 1317 }); 1318 return modalIndex; 1319 } 1320 mount(modal, props) { 1321 const containerIndex = findIndexOf(this.containers, (item) => !!item.modals.find((v) => v.ref === modal.ref)); 1322 const containerInfo = this.containers[containerIndex]; 1323 if (!containerInfo.restore) { 1324 containerInfo.restore = handleContainer(containerInfo, props); 1325 } 1326 } 1327 remove(modal) { 1328 const modalIndex = this.modals.findIndex((v) => v.ref === modal.ref); 1329 if (modalIndex === -1) { 1330 return modalIndex; 1331 } 1332 const containerIndex = findIndexOf(this.containers, (item) => !!item.modals.find((v) => v.ref === modal.ref)); 1333 const containerInfo = this.containers[containerIndex]; 1334 containerInfo.modals.splice(containerInfo.modals.findIndex((v) => v.ref === modal.ref), 1); 1335 this.modals.splice(modalIndex, 1); 1336 if (containerInfo.modals.length === 0) { 1337 if (containerInfo.restore) { 1338 containerInfo.restore(); 1339 } 1340 ariaHidden(modal.ref, true); 1341 ariaHiddenSiblings(containerInfo.container, modal.ref, containerInfo.hiddenSiblings, false); 1342 this.containers.splice(containerIndex, 1); 1343 } else { 1344 const nextTop = containerInfo.modals[containerInfo.modals.length - 1]; 1345 ariaHidden(nextTop.ref, false); 1346 } 1347 return modalIndex; 1348 } 1349 isTopModal(modal) { 1350 return this.modals.length > 0 && this.modals[this.modals.length - 1].ref === modal.ref; 1351 } 1352}; 1353
vendor: 238 bytes, lines 1354-1359
1354// node_modules/@suid/base/ModalUnstyled/modalUnstyledClasses.js 1355function getModalUtilityClass(slot) { 1356 return generateUtilityClass("MuiModal", slot); 1357} 1358var modalUnstyledClasses = generateUtilityClasses("MuiModal", ["root", "hidden"]); 1359
vendor: 5,408 bytes, lines 1360-1523
1360// node_modules/@suid/base/ModalUnstyled/ModalUnstyled.jsx 1361var $7 = createComponentFactory_default()({ 1362 name: "ModalUnstyled", 1363 propDefaults: ({ 1364 set 1365 }) => set({ 1366 closeAfterTransition: false, 1367 component: "div", 1368 components: {}, 1369 componentsProps: {}, 1370 disableAutoFocus: false, 1371 disableEnforceFocus: false, 1372 disableEscapeKeyDown: false, 1373 disablePortal: false, 1374 disableRestoreFocus: false, 1375 disableScrollLock: false, 1376 hideBackdrop: false, 1377 keepMounted: false, 1378 open: false 1379 }), 1380 selfPropNames: ["BackdropComponent", "BackdropProps", "children", "classes", "closeAfterTransition", "components", "componentsProps", "container", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "onBackdropClick", "onClose", "open", "transition"], 1381 utilityClass: getModalUtilityClass, 1382 slotClasses: (ownerState) => ({ 1383 root: ["root", !ownerState.open && ownerState.exited && "hidden"] 1384 }) 1385}); 1386function getContainer(container) { 1387 return typeof container === "function" ? container() : container; 1388} 1389var defaultManager = new ModalManager(); 1390var ModalUnstyled = $7.component(function ModalUnstyled2({ 1391 allProps, 1392 otherProps, 1393 classes, 1394 props 1395}) { 1396 const element = createElementRef_default(otherProps); 1397 const manager = defaultManager; 1398 const getDoc = () => ownerDocument(element.ref); 1399 const [exited, setExited] = createSignal(true); 1400 const handleMounted = () => { 1401 manager.mount(element, { 1402 disableScrollLock: props.disableScrollLock 1403 }); 1404 element.ref.scrollTop = 0; 1405 }; 1406 const handleOpen = () => { 1407 const resolvedContainer = getContainer(props.container) || getDoc().body; 1408 manager.add(element, resolvedContainer); 1409 if (element.ref) { 1410 handleMounted(); 1411 } 1412 }; 1413 const isTopModal = () => manager.isTopModal(element); 1414 const handleClose = () => manager.remove(element); 1415 onCleanup(handleClose); 1416 createEffect((firstTime) => { 1417 if (firstTime) { 1418 if (props.open) handleOpen(); 1419 if (props.open && isTopModal()) { 1420 handleMounted(); 1421 } else { 1422 if (element.ref) ariaHidden(element.ref, true); 1423 } 1424 } else { 1425 if (props.open) { 1426 handleOpen(); 1427 } else if (!props.transition || !props.closeAfterTransition) { 1428 handleClose(); 1429 } 1430 } 1431 return false; 1432 }, true); 1433 const handleBackdropClick = (event) => { 1434 if (event.target !== event.currentTarget) { 1435 return; 1436 } 1437 props.onBackdropClick?.(event); 1438 props.onClose?.(event, "backdropClick"); 1439 }; 1440 const handleKeyDown2 = (event) => { 1441 if (typeof otherProps.onKeyDown === "function") otherProps.onKeyDown?.(event); 1442 if (event.key !== "Escape" || !isTopModal()) { 1443 return; 1444 } 1445 if (!props.disableEscapeKeyDown) { 1446 event.stopPropagation(); 1447 props.onClose?.(event, "escapeKeyDown"); 1448 } 1449 }; 1450 const Root = () => props.components.Root || otherProps.component; 1451 const rootProps = () => props.componentsProps.root || {}; 1452 const noMount = () => !props.keepMounted && !props.open && (!props.transition || exited()); 1453 return createComponent(TransitionContext.Provider, { 1454 value: { 1455 get in() { 1456 return !!props.transition && props.open; 1457 }, 1458 onEnter: () => { 1459 props.transition && setExited(false); 1460 }, 1461 onExited: () => { 1462 if (props.transition) { 1463 setExited(true); 1464 if (props.closeAfterTransition) handleClose(); 1465 } 1466 } 1467 }, 1468 get children() { 1469 return createComponent(Show, { 1470 get when() { 1471 return !noMount(); 1472 }, 1473 get children() { 1474 return createComponent(Portal_default, { 1475 get container() { 1476 return props.container; 1477 }, 1478 get disablePortal() { 1479 return props.disablePortal; 1480 }, 1481 get children() { 1482 return createComponent(Dynamic, mergeProps(otherProps, { 1483 get component() { 1484 return Root(); 1485 }, 1486 role: "presentation" 1487 }, rootProps, () => !isHostComponent_default(Root()) && { 1488 //component: baseProps.component, 1489 ownerState: allProps 1490 }, { 1491 onKeyDown: handleKeyDown2, 1492 get ["class"]() { 1493 return clsx_m_default(classes.root, rootProps().class, otherProps.class); 1494 }, 1495 ref: element, 1496 get children() { 1497 return [createComponent(Show, { 1498 get when() { 1499 return !props.hideBackdrop && !!props.BackdropComponent; 1500 }, 1501 get children() { 1502 return createComponent(Dynamic, mergeProps({ 1503 get component() { 1504 return props.BackdropComponent; 1505 }, 1506 get open() { 1507 return props.open; 1508 }, 1509 onClick: handleBackdropClick 1510 }, () => props.BackdropProps ?? {})); 1511 } 1512 }), memo(() => props.children)]; 1513 } 1514 })); 1515 } 1516 }); 1517 } 1518 }); 1519 } 1520 }); 1521}); 1522var ModalUnstyled_default = ModalUnstyled; 1523
vendor: 3,300 bytes, lines 1524-1644
1524// node_modules/@suid/material/Modal/Modal.jsx 1525var $8 = createComponentFactory_default()({ 1526 name: "MuiModal", 1527 selfPropNames: ["BackdropComponent", "BackdropProps"] 1528}); 1529var ModalRoot = styled_default("div", { 1530 name: "MuiModal", 1531 slot: "Root", 1532 overridesResolver: (props, styles3) => { 1533 const { 1534 ownerState 1535 } = props; 1536 return [styles3.root, !ownerState.open && ownerState.exited && styles3.hidden]; 1537 } 1538})(({ 1539 theme, 1540 ownerState 1541}) => ({ 1542 position: "fixed", 1543 zIndex: theme.zIndex.modal, 1544 right: 0, 1545 bottom: 0, 1546 top: 0, 1547 left: 0, 1548 ...!ownerState.open && ownerState.exited && { 1549 visibility: "hidden" 1550 } 1551})); 1552var ModalBackdrop = styled_default(Backdrop_default, { 1553 name: "MuiModal", 1554 slot: "Backdrop", 1555 overridesResolver: (props, styles3) => { 1556 return styles3.backdrop; 1557 } 1558})({ 1559 zIndex: -1 1560}); 1561var Modal = $8.defineComponent(function Modal2(inProps) { 1562 const props = $8.useThemeProps({ 1563 props: inProps 1564 }); 1565 const [, other] = splitProps(props, ["BackdropComponent", "closeAfterTransition", "children", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted"]); 1566 const baseProps = mergeProps({ 1567 BackdropComponent: ModalBackdrop, 1568 closeAfterTransition: false, 1569 components: {}, 1570 componentsProps: {}, 1571 disableAutoFocus: false, 1572 disableEnforceFocus: false, 1573 disableEscapeKeyDown: false, 1574 disablePortal: false, 1575 disableRestoreFocus: false, 1576 disableScrollLock: false, 1577 hideBackdrop: false, 1578 keepMounted: false 1579 }, props); 1580 const [exited] = createSignal(true); 1581 const commonProps = { 1582 get closeAfterTransition() { 1583 return baseProps.closeAfterTransition; 1584 }, 1585 get disableAutoFocus() { 1586 return baseProps.disableAutoFocus; 1587 }, 1588 get disableEnforceFocus() { 1589 return baseProps.disableEnforceFocus; 1590 }, 1591 get disableEscapeKeyDown() { 1592 return baseProps.disableEscapeKeyDown; 1593 }, 1594 get disablePortal() { 1595 return baseProps.disablePortal; 1596 }, 1597 get disableRestoreFocus() { 1598 return baseProps.disableRestoreFocus; 1599 }, 1600 get disableScrollLock() { 1601 return baseProps.disableScrollLock; 1602 }, 1603 get hideBackdrop() { 1604 return baseProps.hideBackdrop; 1605 }, 1606 get keepMounted() { 1607 return baseProps.keepMounted; 1608 } 1609 }; 1610 const ownerState = mergeProps(props, commonProps, { 1611 get exited() { 1612 return exited(); 1613 } 1614 }); 1615 return createComponent(ModalUnstyled_default, mergeProps({ 1616 get components() { 1617 return mergeProps({ 1618 Root: ModalRoot 1619 }, () => baseProps.components); 1620 }, 1621 componentsProps: { 1622 get root() { 1623 return mergeProps(() => baseProps.componentsProps.root || {}, () => (!baseProps.components.Root || !isHostComponent_default(baseProps.components.Root)) && { 1624 get ownerState() { 1625 return baseProps.componentsProps.root?.ownerState || {}; 1626 } 1627 } || {}); 1628 } 1629 }, 1630 get BackdropComponent() { 1631 return baseProps.BackdropComponent; 1632 } 1633 }, other, { 1634 get classes() { 1635 return ownerState.classes; 1636 } 1637 }, commonProps, { 1638 get children() { 1639 return props.children; 1640 } 1641 })); 1642}); 1643var Modal_default = Modal; 1644
vendor: 138 bytes, lines 1645-1648
1645// node_modules/@suid/material/Dialog/DialogContext.js 1646var DialogContext = createContext({}); 1647var DialogContext_default = DialogContext; 1648
vendor: 515 bytes, lines 1649-1671
1649// node_modules/@suid/material/Dialog/dialogClasses.js 1650function getDialogUtilityClass(slot) { 1651 return generateUtilityClass("MuiDialog", slot); 1652} 1653var dialogClasses = generateUtilityClasses("MuiDialog", [ 1654 "root", 1655 "scrollPaper", 1656 "scrollBody", 1657 "container", 1658 "paper", 1659 "paperScrollPaper", 1660 "paperScrollBody", 1661 "paperWidthFalse", 1662 "paperWidthXs", 1663 "paperWidthSm", 1664 "paperWidthMd", 1665 "paperWidthLg", 1666 "paperWidthXl", 1667 "paperFullWidth", 1668 "paperFullScreen" 1669]); 1670var dialogClasses_default = dialogClasses; 1671
vendor: 188 bytes, lines 1672-1676
1672// node_modules/@suid/material/node_modules/@suid/utils/createUniqueId.js 1673function createUniqueId3(idOverride) { 1674 return createMemo(() => idOverride?.() ?? `mui-${createUniqueId()}`); 1675} 1676
vendor: 370 bytes, lines 1677-1692
1677// node_modules/@suid/material/node_modules/@suid/utils/debounce.js 1678function debounce2(func, wait = 166) { 1679 let timeout; 1680 function debounced(...args) { 1681 const later = () => { 1682 func.apply(null, args); 1683 }; 1684 clearTimeout(timeout); 1685 timeout = setTimeout(later, wait); 1686 } 1687 debounced.clear = () => { 1688 clearTimeout(timeout); 1689 }; 1690 return debounced; 1691} 1692
vendor: 157 bytes, lines 1693-1697
1693// node_modules/@suid/material/node_modules/@suid/utils/ownerDocument.js 1694function ownerDocument2(node) { 1695 return node && node.ownerDocument || document; 1696} 1697
vendor: 176 bytes, lines 1698-1703
1698// node_modules/@suid/material/node_modules/@suid/utils/ownerWindow.js 1699function ownerWindow2(node) { 1700 const doc = ownerDocument2(node); 1701 return doc.defaultView || window; 1702} 1703
vendor: 168 bytes, lines 1704-1708
1704// node_modules/@suid/material/node_modules/@suid/utils/randomString.js 1705function randomString2() { 1706 return Math.random().toString(36).substring(2, 15).slice(0, 8); 1707} 1708
vendor: 8,165 bytes, lines 1709-1971
1709// node_modules/@suid/material/Dialog/Dialog.jsx 1710var $9 = createComponentFactory_default()({ 1711 name: "MuiDialog", 1712 selfPropNames: ["aria-describedby", "aria-labelledby", "children", "classes", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClose", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps"], 1713 utilityClass: getDialogUtilityClass, 1714 slotClasses: (ownerState) => ({ 1715 root: ["root"], 1716 container: ["container", `scroll${capitalize(ownerState.scroll)}`], 1717 paper: ["paper", `paperScroll${capitalize(ownerState.scroll)}`, `paperWidth${capitalize(String(ownerState.maxWidth))}`, ownerState.fullWidth && "paperFullWidth", ownerState.fullScreen && "paperFullScreen"] 1718 }) 1719}); 1720var DialogBackdrop = styled_default(Backdrop_default, { 1721 name: "MuiDialog", 1722 slot: "Backdrop" 1723 //overrides: (props, styles) => styles.backdrop, 1724})({ 1725 // Improve scrollable dialog support. 1726 zIndex: -1 1727}); 1728var DialogRoot = styled_default(Modal_default, { 1729 name: "MuiDialog", 1730 slot: "Root", 1731 overridesResolver: (props, styles3) => styles3.root 1732})({ 1733 "@media print": { 1734 // Use !important to override the Modal inline-style. 1735 position: "absolute !important" 1736 } 1737}); 1738var DialogContainer = styled_default("div", { 1739 name: "MuiDialog", 1740 slot: "Container", 1741 overridesResolver: (props, styles3) => { 1742 const { 1743 ownerState 1744 } = props; 1745 return [styles3.container, styles3[`scroll${capitalize(ownerState.scroll)}`]]; 1746 } 1747})(({ 1748 ownerState 1749}) => ({ 1750 height: "100%", 1751 "@media print": { 1752 height: "auto" 1753 }, 1754 // We disable the focus ring for mouse, touch and keyboard users. 1755 outline: 0, 1756 ...ownerState.scroll === "paper" && { 1757 display: "flex", 1758 justifyContent: "center", 1759 alignItems: "center" 1760 }, 1761 ...ownerState.scroll === "body" && { 1762 overflowY: "auto", 1763 overflowX: "hidden", 1764 textAlign: "center", 1765 "&:after": { 1766 content: '""', 1767 display: "inline-block", 1768 verticalAlign: "middle", 1769 height: "100%", 1770 width: "0" 1771 } 1772 } 1773})); 1774var DialogPaper = styled_default(Paper_default, { 1775 name: "MuiDialog", 1776 slot: "Paper", 1777 overridesResolver: (props, styles3) => { 1778 const { 1779 ownerState 1780 } = props; 1781 return [styles3.paper, styles3[`scrollPaper${capitalize(ownerState.scroll)}`], styles3[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles3.paperFullWidth, ownerState.fullScreen && styles3.paperFullScreen]; 1782 } 1783})(({ 1784 theme, 1785 ownerState 1786}) => ({ 1787 margin: 32, 1788 position: "relative", 1789 overflowY: "auto", 1790 "@media print": { 1791 overflowY: "visible", 1792 boxShadow: "none" 1793 }, 1794 ...ownerState.scroll === "paper" && { 1795 display: "flex", 1796 flexDirection: "column", 1797 maxHeight: "calc(100% - 64px)" 1798 }, 1799 ...ownerState.scroll === "body" && { 1800 display: "inline-block", 1801 verticalAlign: "middle", 1802 textAlign: "left" 1803 // 'initial' doesn't work on IE11 1804 }, 1805 ...!ownerState.maxWidth && { 1806 maxWidth: "calc(100% - 64px)" 1807 }, 1808 ...ownerState.maxWidth === "xs" && { 1809 maxWidth: theme.breakpoints.unit === "px" ? Math.max(theme.breakpoints.values.xs, 444) : `${theme.breakpoints.values.xs}${theme.breakpoints.unit}`, 1810 [`&.${dialogClasses_default.paperScrollBody}`]: { 1811 [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: { 1812 maxWidth: "calc(100% - 64px)" 1813 } 1814 } 1815 }, 1816 ...ownerState.maxWidth !== "xs" && { 1817 maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`, 1818 [`&.${dialogClasses_default.paperScrollBody}`]: { 1819 [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: { 1820 maxWidth: "calc(100% - 64px)" 1821 } 1822 } 1823 }, 1824 ...ownerState.fullWidth && { 1825 width: "calc(100% - 64px)" 1826 }, 1827 ...ownerState.fullScreen && { 1828 margin: 0, 1829 width: "100%", 1830 maxWidth: "100%", 1831 height: "100%", 1832 maxHeight: "none", 1833 borderRadius: 0, 1834 [`&.${dialogClasses_default.paperScrollBody}`]: { 1835 margin: 0, 1836 maxWidth: "100%" 1837 } 1838 } 1839})); 1840var Dialog = $9.defineComponent(function Dialog2(inProps) { 1841 const ref = createRef_default(inProps); 1842 const props = $9.useThemeProps({ 1843 props: inProps 1844 }); 1845 const theme = useTheme_default(); 1846 const defaultTransitionDuration = { 1847 get enter() { 1848 return theme.transitions.duration.enteringScreen; 1849 }, 1850 get exit() { 1851 return theme.transitions.duration.leavingScreen; 1852 } 1853 }; 1854 const [, other] = splitProps(props, ["aria-describedby", "aria-labelledby", "BackdropComponent", "BackdropProps", "children", "class", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClose", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps"]); 1855 const baseProps = mergeProps({ 1856 disableEscapeKeyDown: false, 1857 fullScreen: false, 1858 fullWidth: false, 1859 maxWidth: "sm", 1860 PaperComponent: Paper_default, 1861 PaperProps: {}, 1862 scroll: "paper", 1863 TransitionComponent: Fade_default, 1864 transitionDuration: defaultTransitionDuration 1865 }, props); 1866 const ownerState = baseProps; 1867 const classes = $9.useClasses(ownerState); 1868 let backdropClick = null; 1869 const handleMouseDown = (event) => { 1870 backdropClick = event.target === event.currentTarget; 1871 }; 1872 const handleBackdropClick = (event) => { 1873 if (!backdropClick) { 1874 return; 1875 } 1876 backdropClick = null; 1877 if (props.onBackdropClick) { 1878 props.onBackdropClick(event); 1879 } 1880 if (props.onClose) { 1881 props.onClose(event, "backdropClick"); 1882 } 1883 }; 1884 const ariaLabelledby = createUniqueId3(() => props["aria-labelledby"]); 1885 const dialogContextValue = { 1886 get titleId() { 1887 return ariaLabelledby(); 1888 } 1889 }; 1890 return createComponent(DialogRoot, mergeProps({ 1891 get ["class"]() { 1892 return clsx_m_default(classes.root, props.class); 1893 }, 1894 get BackdropProps() { 1895 return mergeProps({ 1896 get transitionDuration() { 1897 return baseProps.transitionDuration; 1898 }, 1899 get as() { 1900 return props.BackdropComponent; 1901 } 1902 }, () => props.BackdropProps); 1903 }, 1904 closeAfterTransition: true, 1905 BackdropComponent: DialogBackdrop, 1906 get disableEscapeKeyDown() { 1907 return baseProps.disableEscapeKeyDown; 1908 }, 1909 get onClose() { 1910 return props.onClose; 1911 }, 1912 get open() { 1913 return props.open; 1914 }, 1915 ref, 1916 onClick: handleBackdropClick, 1917 ownerState 1918 }, other, { 1919 get children() { 1920 return createComponent(baseProps.TransitionComponent, mergeProps({ 1921 appear: true, 1922 get ["in"]() { 1923 return props.open; 1924 }, 1925 get timeout() { 1926 return baseProps.transitionDuration; 1927 } 1928 }, () => props.TransitionProps, { 1929 get children() { 1930 return createComponent(DialogContainer, { 1931 get ["class"]() { 1932 return clsx_m_default(classes.container); 1933 }, 1934 onMouseDown: handleMouseDown, 1935 ownerState, 1936 get children() { 1937 return createComponent(DialogPaper, mergeProps({ 1938 get component() { 1939 return baseProps.PaperComponent; 1940 }, 1941 elevation: 24, 1942 role: "dialog", 1943 get ["aria-describedby"]() { 1944 return props["aria-describedby"]; 1945 }, 1946 get ["aria-labelledby"]() { 1947 return ariaLabelledby(); 1948 } 1949 }, () => baseProps.PaperProps, { 1950 get ["class"]() { 1951 return clsx_m_default(classes.paper, baseProps.PaperProps.class); 1952 }, 1953 ownerState, 1954 get children() { 1955 return createComponent(DialogContext_default.Provider, { 1956 value: dialogContextValue, 1957 get children() { 1958 return props.children; 1959 } 1960 }); 1961 } 1962 })); 1963 } 1964 }); 1965 } 1966 })); 1967 } 1968 })); 1969}); 1970var Dialog_default = Dialog; 1971
vendor: 267 bytes, lines 1972-1977
1972// node_modules/@suid/material/DialogActions/dialogActionsClasses.js 1973function getDialogActionsUtilityClass(slot) { 1974 return generateUtilityClass("MuiDialogActions", slot); 1975} 1976var dialogActionsClasses = generateUtilityClasses("MuiDialogActions", ["root", "spacing"]); 1977
vendor: 1,416 bytes, lines 1978-2028
1978// node_modules/@suid/material/DialogActions/DialogActions.jsx 1979var $10 = createComponentFactory_default()({ 1980 name: "MuiDialogActions", 1981 selfPropNames: ["children", "classes", "disableSpacing"], 1982 utilityClass: getDialogActionsUtilityClass, 1983 slotClasses: (ownerState) => ({ 1984 root: ["root", !ownerState.disableSpacing && "spacing"] 1985 }) 1986}); 1987var DialogActionsRoot = styled_default("div", { 1988 name: "MuiDialogActions", 1989 slot: "Root", 1990 overridesResolver: (props, styles3) => { 1991 const { 1992 ownerState 1993 } = props; 1994 return [styles3.root, !ownerState.disableSpacing && styles3.spacing]; 1995 } 1996})(({ 1997 ownerState 1998}) => ({ 1999 display: "flex", 2000 alignItems: "center", 2001 padding: 8, 2002 justifyContent: "flex-end", 2003 flex: "0 0 auto", 2004 ...!ownerState.disableSpacing && { 2005 "& > :not(:first-of-type)": { 2006 marginLeft: 8 2007 } 2008 } 2009})); 2010var DialogActions = $10.defineComponent(function DialogActions2(inProps) { 2011 const props = $10.useThemeProps({ 2012 props: inProps 2013 }); 2014 const [, other] = splitProps(props, ["class", "disableSpacing"]); 2015 const baseProps = mergeProps({ 2016 disableSpacing: false 2017 }, props); 2018 const ownerState = baseProps; 2019 const classes = $10.useClasses(ownerState); 2020 return createComponent(DialogActionsRoot, mergeProps({ 2021 get ["class"]() { 2022 return clsx_m_default(classes.root, props.class); 2023 }, 2024 ownerState 2025 }, other)); 2026}); 2027var DialogActions_default = DialogActions; 2028
vendor: 297 bytes, lines 2029-2035
2029// node_modules/@suid/material/DialogTitle/dialogTitleClasses.js 2030function getDialogTitleUtilityClass(slot) { 2031 return generateUtilityClass("MuiDialogTitle", slot); 2032} 2033var dialogTitleClasses = generateUtilityClasses("MuiDialogTitle", ["root"]); 2034var dialogTitleClasses_default = dialogTitleClasses; 2035
vendor: 268 bytes, lines 2036-2041
2036// node_modules/@suid/material/DialogContent/dialogContentClasses.js 2037function getDialogContentUtilityClass(slot) { 2038 return generateUtilityClass("MuiDialogContent", slot); 2039} 2040var dialogContentClasses = generateUtilityClasses("MuiDialogContent", ["root", "dividers"]); 2041
vendor: 1,800 bytes, lines 2042-2104
2042// node_modules/@suid/material/DialogContent/DialogContent.jsx 2043var $11 = createComponentFactory_default()({ 2044 name: "MuiDialogContent", 2045 selfPropNames: ["children", "classes", "dividers"], 2046 utilityClass: getDialogContentUtilityClass, 2047 slotClasses: (ownerState) => ({ 2048 root: ["root", ownerState.dividers && "dividers"] 2049 }) 2050}); 2051var DialogContentRoot = styled_default("div", { 2052 name: "MuiDialogContent", 2053 slot: "Root", 2054 overridesResolver: (props, styles3) => { 2055 const { 2056 ownerState 2057 } = props; 2058 return [styles3.root, ownerState.dividers && styles3.dividers]; 2059 } 2060})(({ 2061 theme, 2062 ownerState 2063}) => ({ 2064 flex: "1 1 auto", 2065 // Add iOS momentum scrolling for iOS < 13.0 2066 WebkitOverflowScrolling: "touch", 2067 overflowY: "auto", 2068 // https://github.com/microsoft/TypeScript/issues/37559 2069 // eslint-disable-next-line @typescript-eslint/ban-ts-comment 2070 // @ts-ignore 2071 padding: "20px 24px", 2072 ...ownerState.dividers ? { 2073 padding: "16px 24px", 2074 borderTop: `1px solid ${theme.palette.divider}`, 2075 borderBottom: `1px solid ${theme.palette.divider}` 2076 } : { 2077 [`.${dialogTitleClasses_default.root} + &`]: { 2078 paddingTop: 0 2079 } 2080 } 2081})); 2082var DialogContent = $11.defineComponent(function DialogContent2(inProps) { 2083 const props = $11.useThemeProps({ 2084 props: inProps 2085 }); 2086 const [, other] = splitProps(props, ["class", "dividers"]); 2087 const baseProps = mergeProps({ 2088 dividers: false 2089 }, props); 2090 const ownerState = mergeProps(props, { 2091 get dividers() { 2092 return baseProps.dividers; 2093 } 2094 }); 2095 const classes = $11.useClasses(ownerState); 2096 return createComponent(DialogContentRoot, mergeProps({ 2097 get ["class"]() { 2098 return clsx_m_default(classes.root, props.class); 2099 }, 2100 ownerState 2101 }, other)); 2102}); 2103var DialogContent_default = DialogContent; 2104
vendor: 280 bytes, lines 2105-2110
2105// node_modules/@suid/material/DialogContentText/dialogContentTextClasses.js 2106function getDialogContentTextUtilityClass(slot) { 2107 return generateUtilityClass("MuiDialogContentText", slot); 2108} 2109var dialogContentTextClasses = generateUtilityClasses("MuiDialogContentText", ["root"]); 2110
vendor: 1,095 bytes, lines 2111-2146
2111// node_modules/@suid/material/DialogContentText/DialogContentText.jsx 2112var $12 = createComponentFactory_default()({ 2113 name: "MuiDialogContentText", 2114 selfPropNames: ["classes"], 2115 utilityClass: getDialogContentTextUtilityClass, 2116 slotClasses: () => ({ 2117 root: ["root"] 2118 }) 2119}); 2120var DialogContentTextRoot = styled_default(Typography_default, { 2121 skipProps: skipRootProps.filter((v) => v !== "classes"), 2122 name: "MuiDialogContentText", 2123 slot: "Root", 2124 overridesResolver: (props, styles3) => styles3.root 2125})({}); 2126var DialogContentText = $12.defineComponent(function DialogContentText2(inProps) { 2127 const ref = createRef_default(inProps); 2128 const props = $12.useThemeProps({ 2129 props: inProps 2130 }); 2131 const [, ownerState] = splitProps(props, ["children"]); 2132 const classes = $12.useClasses(ownerState); 2133 return createComponent(DialogContentTextRoot, mergeProps({ 2134 variant: "body1", 2135 color: "text.secondary", 2136 ref, 2137 ownerState 2138 }, props, { 2139 get component() { 2140 return props.component ?? "p"; 2141 }, 2142 classes 2143 })); 2144}); 2145var DialogContentText_default = DialogContentText; 2146
vendor: 1,194 bytes, lines 2147-2189
2147// node_modules/@suid/material/DialogTitle/DialogTitle.jsx 2148var $13 = createComponentFactory_default()({ 2149 name: "MuiDialogTitle", 2150 selfPropNames: ["children", "classes"], 2151 utilityClass: getDialogTitleUtilityClass, 2152 slotClasses: () => ({ 2153 root: ["root"] 2154 }) 2155}); 2156var DialogTitleRoot = styled_default(Typography_default, { 2157 name: "MuiDialogTitle", 2158 slot: "Root", 2159 overridesResolver: (props, styles3) => styles3.root 2160})({ 2161 padding: "16px 24px", 2162 flex: "0 0 auto" 2163}); 2164var DialogTitle = $13.defineComponent(function DialogTitle2(inProps) { 2165 const props = $13.useThemeProps({ 2166 props: inProps 2167 }); 2168 const [, other] = splitProps(props, ["class", "id"]); 2169 const ownerState = props; 2170 const classes = $13.useClasses(ownerState); 2171 const context = useContext(DialogContext_default); 2172 const titleId = () => context.titleId ?? props.id; 2173 return createComponent(DialogTitleRoot, mergeProps({ 2174 get ["class"]() { 2175 return clsx_m_default(classes.root, props.class); 2176 }, 2177 ownerState, 2178 variant: "h6", 2179 get id() { 2180 return titleId(); 2181 } 2182 }, other, { 2183 get component() { 2184 return props.component ?? "h2"; 2185 } 2186 })); 2187}); 2188var DialogTitle_default = DialogTitle; 2189
vendor: 142 bytes, lines 2190-2195
2190// node_modules/@suid/system/defineComponent.js 2191function defineComponent(cb) { 2192 return cb; 2193} 2194var defineComponent_default = defineComponent; 2195
vendor: 108 bytes, lines 2196-2199
2196// node_modules/@suid/system/styled.jsx 2197var styled = createStyled_default(); 2198var styled_default2 = styled; 2199
vendor: 446 bytes, lines 2200-2216
2200// node_modules/@suid/system/Box/Box.jsx 2201var BoxRoot = styled_default2("div", { 2202 name: "MuiBox", 2203 slot: "Root", 2204 skipProps: [...skipProps, "component"] 2205})(); 2206var Box = defineComponent_default(function Box2(inProps) { 2207 inProps = extendSxProp(inProps); 2208 return createComponent(BoxRoot, mergeProps(inProps, { 2209 get as() { 2210 return inProps.as ?? inProps.component; 2211 } 2212 })); 2213}); 2214Box.toString = BoxRoot.toString; 2215var Box_default = Box; 2216
vendor: 535 bytes, lines 2217-2240
2217// node_modules/@suid/material/Box/Box.jsx 2218var $14 = createComponentFactory_default()({ 2219 name: "MuiBox", 2220 selfPropNames: [], 2221 utilityClass: (slot) => `MuiBox-${slot}`, 2222 slotClasses: () => ({ 2223 root: ["root"] 2224 }) 2225}); 2226var Box3 = $14.component(function Box4({ 2227 otherProps, 2228 classes 2229}) { 2230 const theme = useTheme_default(); 2231 return createComponent(Box_default, mergeProps({ 2232 theme 2233 }, otherProps, { 2234 get ["class"]() { 2235 return clsx_m_default(classes.root, otherProps.class); 2236 } 2237 })); 2238}); 2239var Box_default2 = Box3; 2240
vendor: 1,802 bytes, lines 2241-2298
2241// node_modules/@suid/material/ButtonBase/Ripple.jsx 2242var _tmpl$ = /* @__PURE__ */ template(`<span>`); 2243var $15 = createComponentFactory_default()({ 2244 name: "MuiRipple", 2245 selfPropNames: ["class", "classes", "pulsate", "rippleX", "rippleY", "rippleSize", "in", "onExited", "timeout"] 2246}); 2247var Ripple = $15.component(function Ripple2({ 2248 props, 2249 otherProps 2250}) { 2251 const [leaving, setLeaving] = createSignal(false); 2252 const rippleClassName = () => clsx_m_default(props.class, props.classes.ripple, props.classes.rippleVisible, props.classes.ripplePulsate && { 2253 [props.classes.ripplePulsate]: props.pulsate 2254 }); 2255 const rippleStyles = () => ({ 2256 width: `${props.rippleSize}px`, 2257 height: `${props.rippleSize}px`, 2258 top: `${-(props.rippleSize / 2) + props.rippleY}px`, 2259 left: `${-(props.rippleSize / 2) + props.rippleX}px` 2260 }); 2261 const childClassName = () => clsx_m_default(props.classes.child, props.classes.childLeaving && { 2262 [props.classes.childLeaving]: leaving() 2263 }, props.classes.childPulsate && { 2264 [props.classes.childPulsate]: props.pulsate 2265 }); 2266 createEffect(() => { 2267 if (!props.in && !leaving()) { 2268 setLeaving(true); 2269 } 2270 }); 2271 let timeoutId; 2272 createEffect(() => { 2273 if (!props.in && props.onExited) { 2274 clearTimeout(timeoutId); 2275 timeoutId = window.setTimeout(props.onExited, props.timeout); 2276 } 2277 }); 2278 onCleanup(() => clearTimeout(timeoutId)); 2279 return createComponent(Box_default2, { 2280 as: "span", 2281 get ["class"]() { 2282 return rippleClassName(); 2283 }, 2284 get style() { 2285 return rippleStyles(); 2286 }, 2287 get sx() { 2288 return otherProps.sx; 2289 }, 2290 get children() { 2291 const _el$ = _tmpl$(); 2292 createRenderEffect(() => className(_el$, childClassName())); 2293 return _el$; 2294 } 2295 }); 2296}); 2297var Ripple_default = Ripple; 2298
vendor: 296 bytes, lines 2299-2310
2299// node_modules/@suid/material/ButtonBase/touchRippleClasses.js 2300var touchRippleClasses = generateUtilityClasses("MuiTouchRipple", [ 2301 "root", 2302 "ripple", 2303 "rippleVisible", 2304 "ripplePulsate", 2305 "child", 2306 "childLeaving", 2307 "childPulsate" 2308]); 2309var touchRippleClasses_default = touchRippleClasses; 2310
vendor: 7,548 bytes, lines 2311-2582
2311// node_modules/@suid/material/ButtonBase/TouchRipple.jsx 2312var $16 = createComponentFactory_default()({ 2313 name: "MuiTouchRipple", 2314 selfPropNames: ["center", "classes", "ref"] 2315}); 2316var DURATION = 550; 2317var DELAY_RIPPLE = 80; 2318var TouchRippleRoot = styled_default("span", { 2319 name: "MuiTouchRipple", 2320 slot: "Root" 2321})({ 2322 overflow: "hidden", 2323 pointerEvents: "none", 2324 position: "absolute", 2325 zIndex: 0, 2326 top: 0, 2327 right: 0, 2328 bottom: 0, 2329 left: 0, 2330 borderRadius: "inherit" 2331}); 2332var TouchRippleRipple = styled_default(Ripple_default, { 2333 name: "MuiTouchRipple", 2334 slot: "Ripple" 2335})(({ 2336 theme 2337}) => ({ 2338 position: "absolute", 2339 "@keyframes animation-enter-$id": { 2340 0: { 2341 transform: "scale(0)", 2342 opacity: 0.1 2343 }, 2344 100: { 2345 transform: "scale(1)", 2346 opacity: 0.3 2347 } 2348 }, 2349 "@keyframes animation-exit-$id": { 2350 0: { 2351 opacity: 1 2352 }, 2353 100: { 2354 opacity: 0 2355 } 2356 }, 2357 "@keyframes animation-pulsate-$id": { 2358 0: { 2359 transform: "scale(1)" 2360 }, 2361 50: { 2362 transform: "scale(0.92)" 2363 }, 2364 100: { 2365 transform: "scale(1)" 2366 } 2367 }, 2368 [`&.${touchRippleClasses_default.rippleVisible}`]: { 2369 opacity: "0.3", 2370 transform: "scale(1)", 2371 animationName: `animation-enter-$id`, 2372 animationDuration: `${DURATION}ms`, 2373 animationTimingFunction: theme.transitions.easing.easeInOut 2374 }, 2375 [`&.${touchRippleClasses_default.ripplePulsate}`]: { 2376 animationDuration: `${theme.transitions.duration.shorter}ms` 2377 }, 2378 [`& .${touchRippleClasses_default.child}`]: { 2379 opacity: 1, 2380 display: "block", 2381 width: "100%", 2382 height: "100%", 2383 borderRadius: "50%", 2384 backgroundColor: "currentColor" 2385 }, 2386 [`& .${touchRippleClasses_default.childLeaving}`]: { 2387 opacity: 0, 2388 animationName: `animation-exit-$id`, 2389 animationDuration: `${DURATION}ms`, 2390 animationTimingFunction: `${theme.transitions.easing.easeInOut}` 2391 }, 2392 [`& .${touchRippleClasses_default.childPulsate}`]: { 2393 position: "absolute", 2394 left: "0px", 2395 top: 0, 2396 animationName: `animation-pulsate-$id`, 2397 animationDuration: "2500ms", 2398 animationTimingFunction: `${theme.transitions.easing.easeInOut}`, 2399 animationIterationCount: "infinite", 2400 animationDelay: "200ms" 2401 } 2402})); 2403var TouchRipple = $16.defineComponent(function TouchRipple2(inProps) { 2404 const props = mergeProps({ 2405 classes: {} 2406 }, inProps); 2407 const [, otherProps] = splitProps(props, ["center", "classes", "ref"]); 2408 let counter = 0; 2409 const [ripples, setRipples] = createSignal([]); 2410 const inState = createMutable({}); 2411 let rippleCallback; 2412 let ignoringMouseDown = false; 2413 let startTimer; 2414 let startTimerCommit; 2415 const container = createElementRef_default(); 2416 const activeIds = []; 2417 onCleanup(() => { 2418 if (startTimer) clearTimeout(startTimer); 2419 }); 2420 createEffect(() => { 2421 ripples(); 2422 if (rippleCallback) { 2423 rippleCallback(); 2424 rippleCallback = void 0; 2425 } 2426 }); 2427 const startCommit = (params) => { 2428 const id = counter++; 2429 activeIds.push(id); 2430 inState[id] = true; 2431 setRipples((oldRipples) => [...oldRipples, { 2432 id, 2433 params 2434 }]); 2435 rippleCallback = params.cb; 2436 }; 2437 const start = (event, options = { 2438 pulsate: false, 2439 center: props.center 2440 }, cb) => { 2441 options = mergeProps(options, { 2442 center: options.center || options.pulsate 2443 }); 2444 if (event.type === "mousedown" && ignoringMouseDown) { 2445 ignoringMouseDown = false; 2446 return; 2447 } 2448 if (event.type === "touchstart") { 2449 ignoringMouseDown = true; 2450 } 2451 const rect = container.ref ? container.ref.getBoundingClientRect() : { 2452 width: 0, 2453 height: 0, 2454 left: 0, 2455 top: 0 2456 }; 2457 let rippleX; 2458 let rippleY; 2459 let rippleSize; 2460 if (options.center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) { 2461 rippleX = Math.round(rect.width / 2); 2462 rippleY = Math.round(rect.height / 2); 2463 } else { 2464 const { 2465 clientX, 2466 clientY 2467 } = event.touches ? event.touches[0] : event; 2468 rippleX = Math.round(clientX - rect.left); 2469 rippleY = Math.round(clientY - rect.top); 2470 } 2471 if (options.center) { 2472 rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3); 2473 if (rippleSize % 2 === 0) { 2474 rippleSize += 1; 2475 } 2476 } else { 2477 const sizeX = Math.max(Math.abs((container.ref ? container.ref.clientWidth : 0) - rippleX), rippleX) * 2 + 2; 2478 const sizeY = Math.max(Math.abs((container.ref ? container.ref.clientHeight : 0) - rippleY), rippleY) * 2 + 2; 2479 rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2); 2480 } 2481 if (event.touches) { 2482 if (!startTimerCommit) { 2483 startTimerCommit = () => { 2484 startCommit({ 2485 pulsate: options.pulsate, 2486 rippleX, 2487 rippleY, 2488 rippleSize, 2489 cb 2490 }); 2491 }; 2492 startTimer = setTimeout(() => { 2493 if (startTimerCommit) { 2494 startTimerCommit(); 2495 startTimerCommit = void 0; 2496 } 2497 }, DELAY_RIPPLE); 2498 } 2499 } else { 2500 startCommit({ 2501 pulsate: options.pulsate, 2502 rippleX, 2503 rippleY, 2504 rippleSize, 2505 cb 2506 }); 2507 } 2508 }; 2509 const pulsate = () => start({}, { 2510 pulsate: true 2511 }); 2512 const stop = (event, cb) => { 2513 clearTimeout(startTimer); 2514 if (event.type === "touchend" && startTimerCommit) { 2515 startTimerCommit(); 2516 startTimerCommit = void 0; 2517 startTimer = setTimeout(() => { 2518 stop(event, cb); 2519 }); 2520 return; 2521 } 2522 for (const id in inState) inState[id] = false; 2523 startTimerCommit = void 0; 2524 rippleCallback = cb; 2525 }; 2526 const actions = { 2527 pulsate, 2528 start, 2529 stop 2530 }; 2531 if (typeof props.ref === "function") { 2532 props.ref(actions); 2533 } 2534 return createComponent(TouchRippleRoot, mergeProps({ 2535 get ["class"]() { 2536 return clsx_m_default(props.classes.root, touchRippleClasses_default.root, otherProps.class); 2537 }, 2538 ref: container 2539 }, otherProps, { 2540 get children() { 2541 return createComponent(For, { 2542 get each() { 2543 return ripples(); 2544 }, 2545 children: (data) => createComponent(TouchRippleRipple, { 2546 get ["in"]() { 2547 return inState[data.id]; 2548 }, 2549 onExited: () => { 2550 setRipples((oldRipples) => oldRipples.filter((v) => v.id !== data.id)); 2551 delete inState[data.id]; 2552 }, 2553 get classes() { 2554 return { 2555 ripple: clsx_m_default(props.classes.ripple, touchRippleClasses_default.ripple), 2556 rippleVisible: clsx_m_default(props.classes.rippleVisible, touchRippleClasses_default.rippleVisible), 2557 ripplePulsate: clsx_m_default(props.classes.ripplePulsate, touchRippleClasses_default.ripplePulsate), 2558 child: clsx_m_default(props.classes.child, touchRippleClasses_default.child), 2559 childLeaving: clsx_m_default(props.classes.childLeaving, touchRippleClasses_default.childLeaving), 2560 childPulsate: clsx_m_default(props.classes.childPulsate, touchRippleClasses_default.childPulsate) 2561 }; 2562 }, 2563 timeout: DURATION, 2564 get pulsate() { 2565 return data.params.pulsate; 2566 }, 2567 get rippleX() { 2568 return data.params.rippleX; 2569 }, 2570 get rippleY() { 2571 return data.params.rippleY; 2572 }, 2573 get rippleSize() { 2574 return data.params.rippleSize; 2575 } 2576 }) 2577 }); 2578 } 2579 })); 2580}); 2581var TouchRipple_default = TouchRipple; 2582
vendor: 317 bytes, lines 2583-2589
2583// node_modules/@suid/material/ButtonBase/buttonBaseClasses.js 2584function getButtonBaseUtilityClass(slot) { 2585 return generateUtilityClass("MuiButtonBase", slot); 2586} 2587var buttonBaseClasses = generateUtilityClasses("MuiButtonBase", ["root", "disabled", "focusVisible"]); 2588var buttonBaseClasses_default = buttonBaseClasses; 2589
vendor: 8,494 bytes, lines 2590-2840
2590// node_modules/@suid/material/ButtonBase/ButtonBase.jsx 2591var $17 = createComponentFactory_default()({ 2592 name: "MuiButtonBase", 2593 selfPropNames: ["LinkComponent", "TouchRippleProps", "action", "centerRipple", "children", "classes", "disableRipple", "disableRipple", "disableTouchRipple", "disabled", "focusRipple", "focusVisibleClassName", "onFocusVisible", "tabIndex", "touchRippleRef"], 2594 autoCallUseClasses: false, 2595 utilityClass: getButtonBaseUtilityClass, 2596 slotClasses: (ownerState) => ({ 2597 root: ["root", ownerState.disabled && "disabled", ownerState.focusVisible && "focusVisible"] 2598 }) 2599}); 2600var ButtonBaseRoot = styled_default("button", { 2601 name: "MuiButtonBase", 2602 slot: "Root", 2603 overridesResolver: (props, styles3) => styles3.root 2604})({ 2605 display: "inline-flex", 2606 alignItems: "center", 2607 justifyContent: "center", 2608 position: "relative", 2609 boxSizing: "border-box", 2610 ["WebkitTapHighlightColor"]: "transparent", 2611 backgroundColor: "transparent", 2612 // We disable the focus ring for mouse, touch and keyboard users. 2613 outline: 0, 2614 border: 0, 2615 margin: 0, 2616 borderRadius: 0, 2617 padding: 0, 2618 cursor: "pointer", 2619 userSelect: "none", 2620 verticalAlign: "middle", 2621 ["MozAppearance"]: "none", 2622 ["WebkitAppearance"]: "none", 2623 textDecoration: "none", 2624 // So we take precedent over the style of a native <a /> element. 2625 color: "inherit", 2626 "&::-moz-focus-inner": { 2627 borderStyle: "none" 2628 // Remove Firefox dotted outline. 2629 }, 2630 [`&.${buttonBaseClasses_default.disabled}`]: { 2631 pointerEvents: "none", 2632 cursor: "default" 2633 }, 2634 "@media print": { 2635 colorAdjust: "exact" 2636 } 2637}); 2638var ButtonBase = $17.defineComponent(function ButtonBase2(inProps) { 2639 const theme = useTheme_default(); 2640 const props = mergeProps({ 2641 component: "button", 2642 LinkComponent: "a", 2643 tabIndex: 0 2644 }, theme.components?.[$17.name]?.defaultProps, inProps); 2645 const button = createRef_default(inProps); 2646 const ripple = createRef_default(() => props.touchRippleRef); 2647 const focus = useIsFocusVisible(); 2648 let keydown = false; 2649 const [focusVisible, setFocusVisible] = createSignal(false); 2650 const [mountedState, setMountedState] = createSignal(false); 2651 const [, otherProps] = splitProps(props, ["LinkComponent", "TouchRippleProps", "action", "centerRipple", "children", "classes", "disableRipple", "disableRipple", "disableTouchRipple", "disabled", "focusRipple", "focusVisibleClassName", "onFocusVisible", "tabIndex", "touchRippleRef"]); 2652 const ownerState = { 2653 get classes() { 2654 return props.classes; 2655 }, 2656 get disabled() { 2657 return props.disabled || false; 2658 }, 2659 get focusVisible() { 2660 return focusVisible(); 2661 } 2662 }; 2663 const classes = $17.useClasses(ownerState); 2664 onMount(() => { 2665 setMountedState(true); 2666 }); 2667 createEffect(() => { 2668 if (props.disabled && focusVisible()) { 2669 setFocusVisible(false); 2670 } 2671 }); 2672 createEffect(() => { 2673 if (focusVisible() && props.focusRipple && !props.disableRipple) { 2674 ripple.ref.pulsate(); 2675 } 2676 }); 2677 function useRippleHandler(rippleAction, eventCallback, skipRippleAction = props.disableTouchRipple) { 2678 return (event) => { 2679 if (typeof eventCallback === "function") { 2680 eventCallback(event); 2681 } 2682 const ignore = skipRippleAction; 2683 if (!ignore && ripple.ref) { 2684 ripple.ref[rippleAction](event); 2685 } 2686 return true; 2687 }; 2688 } 2689 const handleMouseDown = useRippleHandler("start", props.onMouseDown); 2690 const handleContextMenu = useRippleHandler("stop", props.onContextMenu); 2691 const handleDragLeave = useRippleHandler("stop", props.onDragLeave); 2692 const handleMouseUp = useRippleHandler("stop", props.onMouseUp); 2693 const handleMouseLeave = useRippleHandler("stop", (event) => { 2694 if (focusVisible()) { 2695 event.preventDefault(); 2696 } 2697 if (typeof props.onMouseLeave === "function") { 2698 props.onMouseLeave(event); 2699 } 2700 }); 2701 const handleTouchStart = useRippleHandler("start", props.onTouchStart); 2702 const handleTouchEnd = useRippleHandler("stop", props.onTouchEnd); 2703 const handleTouchMove = useRippleHandler("stop", props.onTouchMove); 2704 const handleBlur = useRippleHandler("stop", (event) => { 2705 focus.onBlur(event); 2706 if (focus.isFocusVisibleRef.current === false) { 2707 setFocusVisible(false); 2708 } 2709 if (typeof props.onFocusOut === "function") { 2710 props.onFocusOut(event); 2711 } 2712 }, false); 2713 const handleFocus = (event) => { 2714 if (!button.ref) { 2715 button.ref = event.currentTarget; 2716 } 2717 focus.onFocus(event); 2718 if (focus.isFocusVisibleRef.current === true) { 2719 setFocusVisible(true); 2720 if (props.onFocusVisible) { 2721 props.onFocusVisible(event); 2722 } 2723 } 2724 if (typeof props.onFocusIn === "function") { 2725 props.onFocusIn(event); 2726 } 2727 }; 2728 const isNonNativeButton = () => { 2729 return props.component && props.component !== "button" && !(button.ref.tagName === "A" && button.ref.hasAttribute("href")); 2730 }; 2731 const handleKeyDown2 = (event) => { 2732 if (props.focusRipple && !keydown && focusVisible() && ripple.ref && event.key === " ") { 2733 keydown = true; 2734 ripple.ref.stop(event, () => { 2735 ripple.ref.start(event); 2736 }); 2737 } 2738 if (event.target === event.currentTarget && isNonNativeButton() && event.key === " ") { 2739 event.preventDefault(); 2740 } 2741 if (typeof props.onKeyDown === "function") { 2742 props.onKeyDown(event); 2743 } 2744 if (event.target === event.currentTarget && isNonNativeButton() && event.key === "Enter" && !props.disabled) { 2745 event.preventDefault(); 2746 if (typeof props.onClick === "function") { 2747 props.onClick(event); 2748 } 2749 } 2750 }; 2751 const handleKeyUp = (event) => { 2752 if (props.focusRipple && event.key === " " && ripple.ref && focusVisible() && !event.defaultPrevented) { 2753 keydown = false; 2754 ripple.ref.stop(event, () => { 2755 ripple.ref.pulsate(event); 2756 }); 2757 } 2758 if (typeof props.onKeyUp === "function") { 2759 props.onKeyUp(event); 2760 } 2761 if (typeof props.onClick === "function" && event.target === event.currentTarget && isNonNativeButton() && event.key === " " && !event.defaultPrevented) { 2762 props.onClick(event); 2763 } 2764 }; 2765 const ComponentProp = createMemo(() => { 2766 let result = props.component; 2767 if (result === "button" && (props.href || props.to)) { 2768 result = props.LinkComponent; 2769 } 2770 return result; 2771 }); 2772 const isButtonComponent = () => ComponentProp() === "button"; 2773 const enableTouchRipple = () => mountedState() && !props.disableRipple && !props.disabled; 2774 const touchRipple = props.TouchRippleProps; 2775 return createComponent(ButtonBaseRoot, mergeProps({ 2776 get type() { 2777 return isButtonComponent() ? props.type === void 0 ? "button" : props.type : void 0; 2778 }, 2779 get disabled() { 2780 return isButtonComponent() ? props.disabled : void 0; 2781 }, 2782 get role() { 2783 return !isButtonComponent() && props.href && !props.to ? "button" : void 0; 2784 }, 2785 get ["aria-disabled"]() { 2786 return !isButtonComponent() && props.disabled ? true : void 0; 2787 } 2788 }, otherProps, { 2789 get ["class"]() { 2790 return clsx_m_default(classes.root, props.class); 2791 }, 2792 ownerState, 2793 onFocusOut: handleBlur, 2794 get onClick() { 2795 return props.onClick; 2796 }, 2797 onContextMenu: handleContextMenu, 2798 onFocusIn: handleFocus, 2799 onKeyDown: handleKeyDown2, 2800 onKeyUp: handleKeyUp, 2801 onMouseDown: handleMouseDown, 2802 onMouseLeave: handleMouseLeave, 2803 onMouseUp: handleMouseUp, 2804 onDragLeave: handleDragLeave, 2805 onTouchEnd: handleTouchEnd, 2806 onTouchMove: handleTouchMove, 2807 onTouchStart: handleTouchStart, 2808 ref: button, 2809 get tabIndex() { 2810 return props.disabled ? -1 : props.tabIndex; 2811 }, 2812 get as() { 2813 return ComponentProp(); 2814 }, 2815 get children() { 2816 return [memo(() => props.children), createComponent(Show, { 2817 get when() { 2818 return enableTouchRipple(); 2819 }, 2820 get children() { 2821 return createComponent(TouchRipple_default, mergeProps({ 2822 ref: (ref) => { 2823 ripple(ref); 2824 if (true) { 2825 if (!ref) { 2826 console.error(["MUI: The `component` prop provided to ButtonBase is invalid.", "Please make sure the children prop is rendered in this custom component."].join("\n")); 2827 } 2828 } 2829 }, 2830 get center() { 2831 return props.centerRipple; 2832 } 2833 }, touchRipple)); 2834 } 2835 })]; 2836 } 2837 })); 2838}); 2839var ButtonBase_default = ButtonBase; 2840
vendor: 163 bytes, lines 2841-2844
2841// node_modules/@suid/material/ButtonGroup/ButtonGroupContext.js 2842var ButtonGroupContext = createContext({}); 2843var ButtonGroupContext_default = ButtonGroupContext; 2844
vendor: 906 bytes, lines 2845-2887
2845// node_modules/@suid/material/Button/buttonClasses.js 2846function getButtonUtilityClass(slot) { 2847 return generateUtilityClass("MuiButton", slot); 2848} 2849var buttonClasses = generateUtilityClasses("MuiButton", [ 2850 "root", 2851 "text", 2852 "textInherit", 2853 "textPrimary", 2854 "textSecondary", 2855 "outlined", 2856 "outlinedInherit", 2857 "outlinedPrimary", 2858 "outlinedSecondary", 2859 "contained", 2860 "containedInherit", 2861 "containedPrimary", 2862 "containedSecondary", 2863 "disableElevation", 2864 "focusVisible", 2865 "disabled", 2866 "colorInherit", 2867 "textSizeSmall", 2868 "textSizeMedium", 2869 "textSizeLarge", 2870 "outlinedSizeSmall", 2871 "outlinedSizeMedium", 2872 "outlinedSizeLarge", 2873 "containedSizeSmall", 2874 "containedSizeMedium", 2875 "containedSizeLarge", 2876 "sizeMedium", 2877 "sizeSmall", 2878 "sizeLarge", 2879 "fullWidth", 2880 "startIcon", 2881 "endIcon", 2882 "iconSizeSmall", 2883 "iconSizeMedium", 2884 "iconSizeLarge" 2885]); 2886var buttonClasses_default = buttonClasses; 2887
vendor: 10,257 bytes, lines 2888-3206
2888// node_modules/@suid/material/Button/Button.jsx 2889var $18 = createComponentFactory_default()({ 2890 name: "MuiButton", 2891 selfPropNames: ["children", "classes", "color", "disableElevation", "disableFocusRipple", "disabled", "endIcon", "fullWidth", "href", "size", "startIcon", "variant"], 2892 propDefaults: ({ 2893 set 2894 }) => { 2895 const contextProps = useContext(ButtonGroupContext_default); 2896 return set({ 2897 get color() { 2898 return contextProps.color ?? "primary"; 2899 }, 2900 component: "button", 2901 get disabled() { 2902 return contextProps.disabled ?? false; 2903 }, 2904 get disableElevation() { 2905 return contextProps.disableElevation ?? false; 2906 }, 2907 get disableFocusRipple() { 2908 return contextProps.disableFocusRipple ?? false; 2909 }, 2910 get fullWidth() { 2911 return contextProps.fullWidth ?? false; 2912 }, 2913 get size() { 2914 return contextProps.size ?? "medium"; 2915 }, 2916 get variant() { 2917 return contextProps.variant ?? "text"; 2918 } 2919 }); 2920 }, 2921 utilityClass: getButtonUtilityClass, 2922 slotClasses: (ownerState) => ({ 2923 root: ["root", ownerState.variant, `${ownerState.variant}${capitalize_default(ownerState.color)}`, `size${capitalize_default(ownerState.size)}`, `${ownerState.variant}Size${capitalize_default(ownerState.size)}`, ownerState.color === "inherit" && "colorInherit", ownerState.disableElevation && "disableElevation", ownerState.fullWidth && "fullWidth"], 2924 label: ["label"], 2925 startIcon: ["startIcon", `iconSize${capitalize_default(ownerState.size)}`], 2926 endIcon: ["endIcon", `iconSize${capitalize_default(ownerState.size)}`] 2927 }) 2928}); 2929var commonIconStyles = (ownerState) => ({ 2930 ...ownerState.size === "small" && { 2931 "& > *:nth-of-type(1)": { 2932 fontSize: 18 2933 } 2934 }, 2935 ...ownerState.size === "medium" && { 2936 "& > *:nth-of-type(1)": { 2937 fontSize: 20 2938 } 2939 }, 2940 ...ownerState.size === "large" && { 2941 "& > *:nth-of-type(1)": { 2942 fontSize: 22 2943 } 2944 } 2945}); 2946var ButtonRoot = styled_default(ButtonBase_default, { 2947 skipProps: skipRootProps.filter((v) => v !== "classes"), 2948 name: "MuiButton", 2949 slot: "Root", 2950 overridesResolver: (props, styles3) => { 2951 const { 2952 ownerState 2953 } = props; 2954 return [styles3.root, styles3[ownerState.variant], styles3[`${ownerState.variant}${capitalize_default(ownerState.color)}`], styles3[`size${capitalize_default(ownerState.size)}`], styles3[`${ownerState.variant}Size${capitalize_default(ownerState.size)}`], ownerState.color === "inherit" && styles3.colorInherit, ownerState.disableElevation && styles3.disableElevation, ownerState.fullWidth && styles3.fullWidth]; 2955 } 2956})(({ 2957 theme, 2958 ownerState 2959}) => ({ 2960 ...theme.typography.button, 2961 minWidth: 64, 2962 padding: "6px 16px", 2963 borderRadius: theme.shape.borderRadius, 2964 transition: theme.transitions.create(["background-color", "box-shadow", "border-color", "color"], { 2965 duration: theme.transitions.duration.short 2966 }), 2967 "&:hover": { 2968 textDecoration: "none", 2969 backgroundColor: alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity), 2970 // Reset on touch devices, it doesn't add specificity 2971 "@media (hover: none)": { 2972 backgroundColor: "transparent" 2973 }, 2974 ...ownerState.variant === "text" && ownerState.color !== "inherit" && { 2975 backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity), 2976 // Reset on touch devices, it doesn't add specificity 2977 "@media (hover: none)": { 2978 backgroundColor: "transparent" 2979 } 2980 }, 2981 ...ownerState.variant === "outlined" && ownerState.color !== "inherit" && { 2982 border: `1px solid ${theme.palette[ownerState.color].main}`, 2983 backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity), 2984 // Reset on touch devices, it doesn't add specificity 2985 "@media (hover: none)": { 2986 backgroundColor: "transparent" 2987 } 2988 }, 2989 ...ownerState.variant === "contained" && { 2990 backgroundColor: theme.palette.grey.A100, 2991 boxShadow: theme.shadows[4], 2992 // Reset on touch devices, it doesn't add specificity 2993 "@media (hover: none)": { 2994 boxShadow: theme.shadows[2], 2995 backgroundColor: theme.palette.grey[300] 2996 } 2997 }, 2998 ...ownerState.variant === "contained" && ownerState.color !== "inherit" && { 2999 backgroundColor: theme.palette[ownerState.color].dark, 3000 // Reset on touch devices, it doesn't add specificity 3001 "@media (hover: none)": { 3002 backgroundColor: theme.palette[ownerState.color].main 3003 } 3004 } 3005 }, 3006 "&:active": { 3007 ...ownerState.variant === "contained" && { 3008 boxShadow: theme.shadows[8] 3009 } 3010 }, 3011 [`&.${buttonClasses_default.focusVisible}`]: { 3012 ...ownerState.variant === "contained" && { 3013 boxShadow: theme.shadows[6] 3014 } 3015 }, 3016 [`&.${buttonClasses_default.disabled}`]: { 3017 color: theme.palette.action.disabled, 3018 ...ownerState.variant === "outlined" && { 3019 border: `1px solid ${theme.palette.action.disabledBackground}` 3020 }, 3021 ...ownerState.variant === "outlined" && ownerState.color === "secondary" && { 3022 border: `1px solid ${theme.palette.action.disabled}` 3023 }, 3024 ...ownerState.variant === "contained" && { 3025 color: theme.palette.action.disabled, 3026 boxShadow: theme.shadows[0], 3027 backgroundColor: theme.palette.action.disabledBackground 3028 } 3029 }, 3030 ...ownerState.variant === "text" && { 3031 padding: "6px 8px" 3032 }, 3033 ...ownerState.variant === "text" && ownerState.color !== "inherit" && { 3034 color: theme.palette[ownerState.color].main 3035 }, 3036 ...ownerState.variant === "outlined" && { 3037 padding: "5px 15px", 3038 border: `1px solid ${theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.23)" : "rgba(255, 255, 255, 0.23)"}` 3039 }, 3040 ...ownerState.variant === "outlined" && ownerState.color !== "inherit" && { 3041 color: theme.palette[ownerState.color].main, 3042 border: `1px solid ${alpha(theme.palette[ownerState.color].main, 0.5)}` 3043 }, 3044 ...ownerState.variant === "contained" && { 3045 color: theme.palette.getContrastText(theme.palette.grey[300]), 3046 backgroundColor: theme.palette.grey[300], 3047 boxShadow: theme.shadows[2] 3048 }, 3049 ...ownerState.variant === "contained" && ownerState.color !== "inherit" && { 3050 color: theme.palette[ownerState.color].contrastText, 3051 backgroundColor: theme.palette[ownerState.color].main 3052 }, 3053 ...ownerState.color === "inherit" && { 3054 color: "inherit", 3055 borderColor: "currentColor" 3056 }, 3057 ...ownerState.size === "small" && ownerState.variant === "text" && { 3058 padding: "4px 5px", 3059 fontSize: theme.typography.pxToRem(13) 3060 }, 3061 ...ownerState.size === "large" && ownerState.variant === "text" && { 3062 padding: "8px 11px", 3063 fontSize: theme.typography.pxToRem(15) 3064 }, 3065 ...ownerState.size === "small" && ownerState.variant === "outlined" && { 3066 padding: "3px 9px", 3067 fontSize: theme.typography.pxToRem(13) 3068 }, 3069 ...ownerState.size === "large" && ownerState.variant === "outlined" && { 3070 padding: "7px 21px", 3071 fontSize: theme.typography.pxToRem(15) 3072 }, 3073 ...ownerState.size === "small" && ownerState.variant === "contained" && { 3074 padding: "4px 10px", 3075 fontSize: theme.typography.pxToRem(13) 3076 }, 3077 ...ownerState.size === "large" && ownerState.variant === "contained" && { 3078 padding: "8px 22px", 3079 fontSize: theme.typography.pxToRem(15) 3080 }, 3081 ...ownerState.fullWidth && { 3082 width: "100%" 3083 } 3084}), ({ 3085 ownerState 3086}) => ({ 3087 ...ownerState.disableElevation && { 3088 boxShadow: "none", 3089 "&:hover": { 3090 boxShadow: "none" 3091 }, 3092 [`&.${buttonClasses_default.focusVisible}`]: { 3093 boxShadow: "none" 3094 }, 3095 "&:active": { 3096 boxShadow: "none" 3097 }, 3098 [`&.${buttonClasses_default.disabled}`]: { 3099 boxShadow: "none" 3100 } 3101 } 3102})); 3103var ButtonStartIcon = styled_default("span", { 3104 name: "MuiButton", 3105 slot: "StartIcon", 3106 overridesResolver: (props, styles3) => { 3107 const { 3108 ownerState 3109 } = props; 3110 return [styles3.startIcon, styles3[`iconSize${capitalize_default(ownerState.size)}`]]; 3111 } 3112})(({ 3113 ownerState 3114}) => ({ 3115 display: "inherit", 3116 marginRight: 8, 3117 marginLeft: -4, 3118 ...ownerState.size === "small" && { 3119 marginLeft: -2 3120 }, 3121 ...commonIconStyles(ownerState) 3122})); 3123var ButtonEndIcon = styled_default("span", { 3124 name: "MuiButton", 3125 slot: "EndIcon", 3126 overridesResolver: (props, styles3) => { 3127 const { 3128 ownerState 3129 } = props; 3130 return [styles3.endIcon, styles3[`iconSize${capitalize_default(ownerState.size)}`]]; 3131 } 3132})(({ 3133 ownerState 3134}) => ({ 3135 display: "inherit", 3136 marginRight: -4, 3137 marginLeft: 8, 3138 ...ownerState.size === "small" && { 3139 marginRight: -2 3140 }, 3141 ...commonIconStyles(ownerState) 3142})); 3143var Button = $18.component(function Button2({ 3144 allProps, 3145 otherProps, 3146 props, 3147 classes 3148}) { 3149 const contextProps = useContext(ButtonGroupContext_default); 3150 return createComponent(ButtonRoot, mergeProps({ 3151 ownerState: allProps, 3152 get ["class"]() { 3153 return clsx_m_default(classes.root, otherProps.class, contextProps.class); 3154 }, 3155 get disabled() { 3156 return props.disabled; 3157 }, 3158 get focusRipple() { 3159 return !props.disableFocusRipple; 3160 }, 3161 get focusVisibleClassName() { 3162 return clsx_m_default(props.classes?.focusVisible, otherProps.focusVisibleClassName); 3163 }, 3164 get type() { 3165 return otherProps.type; 3166 }, 3167 get href() { 3168 return props.href; 3169 } 3170 }, otherProps, { 3171 get classes() { 3172 return props.classes; 3173 }, 3174 get children() { 3175 return [createComponent(Show, { 3176 get when() { 3177 return props.startIcon; 3178 }, 3179 children: (startIcon) => createComponent(ButtonStartIcon, { 3180 get ["class"]() { 3181 return classes.startIcon; 3182 }, 3183 ownerState: allProps, 3184 get children() { 3185 return startIcon(); 3186 } 3187 }) 3188 }), memo(() => props.children), createComponent(Show, { 3189 get when() { 3190 return props.endIcon; 3191 }, 3192 children: (endIcon) => createComponent(ButtonEndIcon, { 3193 get ["class"]() { 3194 return classes.endIcon; 3195 }, 3196 ownerState: allProps, 3197 get children() { 3198 return endIcon(); 3199 } 3200 }) 3201 })]; 3202 } 3203 })); 3204}); 3205var Button_default = Button; 3206
3207// src/app/framework/guardrail.jsx 3208var Guardrail = (props) => { 3209 const handleCancel = () => { 3210 props.close(false); 3211 }; 3212 const handleContinue = () => { 3213 props.close(true); 3214 }; 3215 return createComponent(Dialog_default, { 3216 get open() { 3217 return props.show; 3218 }, 3219 onClose: handleCancel, 3220 "aria-labelledby": "form-dialog-title", 3221 get children() { 3222 return [createComponent(DialogTitle_default, { 3223 id: "form-dialog-title", 3224 children: "Unsaved Changes" 3225 }), createComponent(DialogContent_default, { 3226 get children() { 3227 return createComponent(DialogContentText_default, { 3228 children: "You have unsaved changes, and you will lose that work if you continue." 3229 }); 3230 } 3231 }), createComponent(DialogActions_default, { 3232 get children() { 3233 return [createComponent(Button_default, { 3234 onClick: handleContinue, 3235 color: "secondary", 3236 children: "Continue" 3237 }), createComponent(Button_default, { 3238 onClick: handleCancel, 3239 color: "primary", 3240 children: "Cancel" 3241 })]; 3242 } 3243 })]; 3244 } 3245 }); 3246}; 3247
3248// src/app/framework/context/editor.jsx 3249var defaultSharingStyle = (scenes) => { 3250 let indexed = true; 3251 scenes.slice(1).map((scene) => { 3252 if (scene.title) indexed = false; 3253 }); 3254 const style2 = scenes.length < 2 ? "none" : indexed ? "indexed" : "titled"; 3255 return style2; 3256}; 3257var initialState = () => { 3258 const { 3259 scenes 3260 } = useViewer(); 3261 const { 3262 state: { 3263 camera 3264 } 3265 } = useCamera(); 3266 return { 3267 sharing: { 3268 title: "untitled", 3269 description: "A 3D design created in vZome. Use your mouse or touch to interact.", 3270 style: defaultSharingStyle(scenes) 3271 }, 3272 copiedCamera: copyOfCamera(camera), 3273 // The color last CHOSEN in the "Set Color" picker, so it reopens where the user left 3274 // off. Desktop vZome keeps the equivalent as DocumentController.lastObjectColor, 3275 // including this initial value, but it is purely a UI convenience -- the worker never 3276 // needs it -- so online keeps it client-side. Note it is NOT the color of the current 3277 // selection. 3278 lastObjectColor: "#ffffff" 3279 }; 3280}; 3281var EditorContext = createContext({}); 3282var useEditor = () => { 3283 return useContext(EditorContext); 3284}; 3285var EditorProvider = (props) => { 3286 const workerClient = useWorkerClient(); 3287 const { 3288 resetCamera, 3289 state: cameraState 3290 } = useCamera(); 3291 const { 3292 scenes, 3293 resetScenes, 3294 setReload, 3295 setSource 3296 } = useViewer(); 3297 const [state, setState] = createStore({ 3298 ...initialState() 3299 }); 3300 const [partsList, setPartsList] = createSignal({ 3301 balls: 0, 3302 panels: 0, 3303 struts: 0, 3304 orbitColors: [] 3305 }); 3306 workerClient.subscribeFor("SCENE_RENDERED", ({ 3307 scene: { 3308 parts 3309 } 3310 }) => setPartsList(parts)); 3311 const [sceneIndex, setSceneIndex] = createSignal(0); 3312 const [clientStateEdited, setEdited] = createSignal(false); 3313 const workerStateEdited = () => controllerProperty(rootController(), "edited") === "true"; 3314 const edited = () => workerStateEdited() || clientStateEdited(); 3315 const [showGuardrail, setShowGuardrail] = createSignal(false); 3316 let continuation; 3317 const guard = (guardedAction) => { 3318 if (edited()) { 3319 continuation = guardedAction; 3320 setShowGuardrail(true); 3321 } else guardedAction(); 3322 }; 3323 const closeGuardrail = (continued) => { 3324 setShowGuardrail(false); 3325 if (continued) continuation(); 3326 continuation = void 0; 3327 }; 3328 const exportPromises = {}; 3329 const onWorkerMessage = (data) => { 3330 switch (data.type) { 3331 case "SHARE_SUCCESS": { 3332 exportPromises["shareToGitHub"].resolve(data.payload); 3333 break; 3334 } 3335 case "SHARE_FAILURE": { 3336 exportPromises["shareToGitHub"].reject(data.payload); 3337 break; 3338 } 3339 case "TEXT_FETCHED": { 3340 setSource("url", void 0); 3341 let { 3342 name: name2 3343 } = data.payload; 3344 if (name2 && name2.toLowerCase().endsWith(".vzome")) { 3345 if (!state.ignoreDesignName) { 3346 name2 = name2.substring(0, name2.length - 6); 3347 setState("designName", name2); 3348 setState("sharing", { 3349 title: name2.replaceAll("-", " ") 3350 }); 3351 } 3352 setState("ignoreDesignName", false); 3353 } 3354 break; 3355 } 3356 case "SNAPSHOT_CAPTURED": { 3357 const snapshot = data.payload; 3358 exportPromises["captureSnapshot"].resolve(snapshot); 3359 break; 3360 } 3361 case "SCENE_RENDERED": { 3362 const { 3363 edit 3364 } = data.payload; 3365 setState("edit", edit); 3366 break; 3367 } 3368 case "CONTROLLER_CREATED": 3369 setState({ 3370 workerReady: true, 3371 controller: { 3372 __store: store, 3373 __path: [] 3374 } 3375 }); 3376 break; 3377 case "CONTROLLER_PROPERTY_CHANGED": 3378 const { 3379 controllerPath, 3380 name, 3381 value 3382 } = data.payload; 3383 const names = controllerPath ? controllerPath.split(":") : []; 3384 for (let index = 0; index < names.length; index++) { 3385 const prefix = names.slice(0, index); 3386 const controllerName = names[index]; 3387 const __path = names.slice(0, index + 1); 3388 setState.apply(null, ["controller", ...prefix, controllerName, { 3389 __path 3390 }]); 3391 } 3392 setState.apply(null, ["controller", ...names, name, value]); 3393 break; 3394 case "SCENES_DISCOVERED": 3395 setState("sharing", "style", defaultSharingStyle(data.payload.scenes)); 3396 if (sceneIndex() === 0 && data.payload.length > 1) setSceneIndex(1); 3397 setReload(true); 3398 break; 3399 case "BOM_CHANGED": 3400 case "SYMMETRY_CHANGED": 3401 case "DESIGN_XML_PARSED": 3402 case "LAST_BALL_CREATED": 3403 case "INSTANCE_ADDED": 3404 case "INSTANCE_REMOVED": 3405 case "FETCH_STARTED": 3406 case "CAMERA_SNAPPED": 3407 case "SHAPE_DEFINED": 3408 break; 3409 default: 3410 console.log("UNRECOGNIZED message from worker for EditorProvider:", data.type); 3411 break; 3412 } 3413 }; 3414 const onWorkerError = (error) => { 3415 console.log(error); 3416 }; 3417 workerClient.subscribe({ 3418 onWorkerMessage, 3419 onWorkerError 3420 }); 3421 const expectResponse = (controllerPath, action, parameters) => { 3422 return new Promise((resolve2, reject) => { 3423 exportPromises[action] = { 3424 resolve: resolve2, 3425 reject 3426 }; 3427 workerClient.postMessage(doControllerAction(controllerPath, action, parameters)); 3428 }); 3429 }; 3430 const store = { 3431 state, 3432 setState, 3433 expectResponse 3434 }; 3435 const rootController = () => { 3436 if (!state.controller) { 3437 setState("controller", { 3438 __store: store, 3439 __path: [] 3440 }); 3441 } 3442 return state.controller; 3443 }; 3444 const controllerAction = (controller, action, parameters) => { 3445 if (!workerClient.isWorkerReady()) { 3446 console.log("Worker not ready:", action); 3447 return; 3448 } 3449 const controllerPath = controller.__path.join(":"); 3450 if (action === "setProperty") { 3451 const { 3452 name, 3453 value 3454 } = parameters; 3455 workerClient.postMessage(setControllerProperty(controllerPath, name, value)); 3456 } else workerClient.postMessage(doControllerAction(controllerPath, action, parameters)); 3457 }; 3458 const createDesign = (field) => { 3459 resetCamera(); 3460 resetScenes(); 3461 setSceneIndex(0); 3462 setSource("url", void 0); 3463 workerClient.postMessage(newDesign(field)); 3464 }; 3465 const shareToGitHub = (target, blog, publish, image) => { 3466 const name = state?.designName || "untitled"; 3467 const config = { 3468 ...unwrap(state.sharing), 3469 blog, 3470 publish, 3471 originalDate: state.originalDate 3472 }; 3473 return new Promise((resolve2, reject) => { 3474 const camera = unwrap(cameraState.camera); 3475 const lighting = unwrap(cameraState.lighting); 3476 const scenes2 = unwrap(scenes); 3477 expectResponse("", "shareToGitHub", { 3478 target, 3479 config, 3480 data: { 3481 name, 3482 image, 3483 camera, 3484 lighting, 3485 scenes: scenes2 3486 } 3487 }).then((url) => resolve2(url)).catch((error) => reject(error)); 3488 }); 3489 }; 3490 const openDesignFile2 = (file, debug) => { 3491 resetCamera(); 3492 resetScenes(); 3493 setSceneIndex(0); 3494 setState("source", { 3495 type: "file", 3496 data: file 3497 }); 3498 setState("originalDate", null); 3499 workerClient.postMessage(openDesignFile(file, debug)); 3500 }; 3501 const fetchDesignUrl = (url, config) => { 3502 resetCamera(); 3503 resetScenes(); 3504 setSceneIndex(0); 3505 setState("source", { 3506 type: "url", 3507 data: url 3508 }); 3509 setState("originalDate", null); 3510 workerClient.postMessage(fetchDesign(url, config)); 3511 }; 3512 const providerValue = { 3513 ...store, 3514 guard, 3515 edited, 3516 setEdited, 3517 lastObjectColor: () => state.lastObjectColor,
3518 setLastObjectColor: (hex) => setState("lastObjectColor", hex), 3519 rootController, 3520 controllerAction, 3521 shareToGitHub, 3522 createDesign, 3523 openDesignFile: openDesignFile2, 3524 fetchDesignUrl, 3525 partsList, 3526 sceneIndex, 3527 setSceneIndex, 3528 importMeshFile: (file, format) => workerClient.postMessage(importMeshFile(file, format)), 3529 startPreviewStrut: (id, dir) => workerClient.postMessage(startPreviewStrut(id, dir)), 3530 movePreviewStrut: (direction) => workerClient.postMessage(movePreviewStrut(direction)), 3531 scalePreviewStrut: (increment) => workerClient.postMessage(scalePreviewStrut(increment)), 3532 endPreviewStrut: () => workerClient.postMessage(endPreviewStrut()) 3533 }; 3534 return createComponent(EditorContext.Provider, { 3535 value: providerValue, 3536 get children() { 3537 return [createComponent(Guardrail, { 3538 get show() { 3539 return showGuardrail(); 3540 }, 3541 close: closeGuardrail 3542 }), memo(() => props.children)]; 3543 } 3544 }); 3545}; 3546var subController = (parent, key) => { 3547 if (!parent[key]) { 3548 const __path = [...parent.__path, key]; 3549 parent.__store.setState.apply(null, ["controller", ...__path, { 3550 __path, 3551 __store: parent.__store 3552 }]); 3553 } 3554 return parent[key]; 3555}; 3556var controllerProperty = (controller, propName, changeName = propName, isList = false) => { 3557 if (typeof controller[propName] === "undefined") { 3558 const controllerPath = controller.__path.join(":"); 3559 const workerClient = useWorkerClient(); 3560 createEffect(() => { 3561 if (workerClient.isWorkerReady && workerClient.isWorkerReady()) { 3562 workerClient.postMessage(requestControllerProperty(controllerPath, propName, changeName, isList)); 3563 } 3564 }); 3565 } 3566 if (isList) return controller[propName] || []; 3567 return controller[propName]; 3568}; 3569
vendor: 417 bytes, lines 3570-3587
3570// node_modules/@suid/material/AppBar/appBarClasses.js 3571function getAppBarUtilityClass(slot) { 3572 return generateUtilityClass("MuiAppBar", slot); 3573} 3574var appBarClasses = generateUtilityClasses("MuiAppBar", [ 3575 "root", 3576 "positionFixed", 3577 "positionAbsolute", 3578 "positionSticky", 3579 "positionStatic", 3580 "positionRelative", 3581 "colorDefault", 3582 "colorPrimary", 3583 "colorSecondary", 3584 "colorInherit", 3585 "colorTransparent" 3586]); 3587
vendor: 3,214 bytes, lines 3588-3697
3588// node_modules/@suid/material/AppBar/AppBar.jsx 3589var $19 = createComponentFactory_default()({ 3590 name: "MuiAppBar", 3591 selfPropNames: ["classes", "color", "enableColorOnDark", "position"], 3592 utilityClass: getAppBarUtilityClass, 3593 propDefaults: ({ 3594 set 3595 }) => set({ 3596 component: "header", 3597 color: "primary", 3598 enableColorOnDark: false, 3599 position: "fixed" 3600 }), 3601 slotClasses: (ownerState) => ({ 3602 root: ["root", `color${capitalize_default(ownerState.color)}`, `position${capitalize_default(ownerState.position)}`] 3603 }) 3604}); 3605var AppBarRoot = styled_default(Paper_default, { 3606 name: "MuiAppBar", 3607 slot: "Root", 3608 overridesResolver: (props, styles3) => { 3609 return [styles3.root, styles3[`position${capitalize_default(props.ownerState.position)}`], styles3[`color${capitalize_default(props.ownerState.color)}`]]; 3610 } 3611})(({ 3612 theme, 3613 ownerState 3614}) => { 3615 const backgroundColorDefault = theme.palette.mode === "light" ? theme.palette.grey[100] : theme.palette.grey[900]; 3616 return { 3617 display: "flex", 3618 flexDirection: "column", 3619 width: "100%", 3620 boxSizing: "border-box", 3621 flexShrink: 0, 3622 ...ownerState.position === "fixed" && { 3623 position: "fixed", 3624 zIndex: theme.zIndex.appBar, 3625 top: 0, 3626 left: "auto", 3627 right: 0, 3628 "@media print": { 3629 // Prevent the app bar to be visible on each printed page. 3630 position: "absolute" 3631 } 3632 }, 3633 ...ownerState.position === "absolute" && { 3634 position: "absolute", 3635 zIndex: theme.zIndex.appBar, 3636 top: 0, 3637 left: "auto", 3638 right: 0 3639 }, 3640 ...ownerState.position === "sticky" && { 3641 // â ï¸ sticky is not supported by IE11. 3642 position: "sticky", 3643 zIndex: theme.zIndex.appBar, 3644 top: 0, 3645 left: "auto", 3646 right: 0 3647 }, 3648 ...ownerState.position === "static" && { 3649 position: "static" 3650 }, 3651 ...ownerState.position === "relative" && { 3652 position: "relative" 3653 }, 3654 ...ownerState.color === "default" && { 3655 backgroundColor: backgroundColorDefault, 3656 color: theme.palette.getContrastText(backgroundColorDefault) 3657 }, 3658 ...ownerState.color && ownerState.color !== "default" && ownerState.color !== "inherit" && ownerState.color !== "transparent" && { 3659 backgroundColor: theme.palette[ownerState.color].main, 3660 color: theme.palette[ownerState.color].contrastText 3661 }, 3662 ...ownerState.color === "inherit" && { 3663 color: "inherit" 3664 }, 3665 ...theme.palette.mode === "dark" && !ownerState.enableColorOnDark && { 3666 backgroundColor: void 0, 3667 color: void 0 3668 }, 3669 ...ownerState.color === "transparent" && { 3670 backgroundColor: "transparent", 3671 color: "inherit", 3672 ...theme.palette.mode === "dark" && { 3673 backgroundImage: "none" 3674 } 3675 } 3676 }; 3677}); 3678var AppBar = $19.component(function AppBar2({ 3679 allProps, 3680 classes, 3681 props, 3682 otherProps 3683}) { 3684 return createComponent(AppBarRoot, mergeProps({ 3685 square: true, 3686 ownerState: allProps, 3687 elevation: 4, 3688 get ["class"]() { 3689 return clsx_m_default(classes.root, { 3690 "mui-fixed": props.position === "fixed" 3691 // Useful for the Dialog 3692 }, otherProps.class); 3693 } 3694 }, otherProps)); 3695}); 3696var AppBar_default = AppBar; 3697
vendor: 261 bytes, lines 3698-3708
3698// node_modules/@suid/material/Toolbar/toolbarClasses.js 3699function getToolbarUtilityClass(slot) { 3700 return generateUtilityClass("MuiToolbar", slot); 3701} 3702var toolbarClasses = generateUtilityClasses("MuiToolbar", [ 3703 "root", 3704 "gutters", 3705 "regular", 3706 "dense" 3707]); 3708
vendor: 1,668 bytes, lines 3709-3776
3709// node_modules/@suid/material/Toolbar/Toolbar.jsx 3710var $20 = createComponentFactory_default()({ 3711 name: "MuiToolbar", 3712 selfPropNames: ["children", "classes", "disableGutters", "variant"], 3713 propDefaults: ({ 3714 set 3715 }) => set({ 3716 component: "div", 3717 disableGutters: false, 3718 variant: "regular" 3719 }), 3720 utilityClass: getToolbarUtilityClass, 3721 slotClasses: (ownerState) => ({ 3722 root: ["root", !ownerState.disableGutters && "gutters", ownerState.variant] 3723 }) 3724}); 3725var ToolbarRoot = styled_default("div", { 3726 name: "MuiToolbar", 3727 slot: "Root", 3728 overridesResolver: (props, styles3) => { 3729 const { 3730 ownerState 3731 } = props; 3732 return [styles3.root, !ownerState.disableGutters && styles3.gutters, styles3[ownerState.variant]]; 3733 } 3734})(({ 3735 theme, 3736 ownerState 3737}) => ({ 3738 position: "relative", 3739 display: "flex", 3740 alignItems: "center", 3741 ...!ownerState.disableGutters && { 3742 paddingLeft: theme.spacing(2), 3743 paddingRight: theme.spacing(2), 3744 [theme.breakpoints.up("sm")]: { 3745 paddingLeft: theme.spacing(3), 3746 paddingRight: theme.spacing(3) 3747 } 3748 }, 3749 ...ownerState.variant === "dense" && { 3750 minHeight: 48 3751 } 3752}), ({ 3753 theme, 3754 ownerState 3755}) => ownerState.variant === "regular" && theme.mixins.toolbar); 3756var Toolbar = $20.component(function Toolbar2({ 3757 allProps, 3758 props, 3759 classes, 3760 otherProps 3761}) { 3762 return createComponent(ToolbarRoot, mergeProps(otherProps, { 3763 get as() { 3764 return otherProps.component; 3765 }, 3766 get ["class"]() { 3767 return clsx_m_default(classes.root, otherProps.class); 3768 }, 3769 ownerState: allProps, 3770 get children() { 3771 return props.children; 3772 } 3773 })); 3774}); 3775var Toolbar_default = Toolbar; 3776
vendor: 437 bytes, lines 3777-3794
3777// node_modules/@suid/material/IconButton/iconButtonClasses.js 3778function getIconButtonUtilityClass(slot) { 3779 return generateUtilityClass("MuiIconButton", slot); 3780} 3781var iconButtonClasses = generateUtilityClasses("MuiIconButton", [ 3782 "root", 3783 "disabled", 3784 "colorInherit", 3785 "colorPrimary", 3786 "colorSecondary", 3787 "edgeStart", 3788 "edgeEnd", 3789 "sizeSmall", 3790 "sizeMedium", 3791 "sizeLarge" 3792]); 3793var iconButtonClasses_default = iconButtonClasses; 3794
vendor: 3,429 bytes, lines 3795-3908
3795// node_modules/@suid/material/IconButton/IconButton.jsx 3796var $21 = createComponentFactory_default()({ 3797 name: "MuiIconButton", 3798 selfPropNames: ["children", "classes", "color", "disableFocusRipple", "disabled", "edge", "size"], 3799 propDefaults: ({ 3800 set 3801 }) => set({ 3802 edge: false, 3803 color: "default", 3804 disabled: false, 3805 disableFocusRipple: false, 3806 size: "medium" 3807 }), 3808 utilityClass: getIconButtonUtilityClass, 3809 slotClasses: (ownerState) => ({ 3810 root: ["root", ownerState.disabled && "disabled", ownerState.color !== "default" && `color${capitalize_default(ownerState.color)}`, ownerState.edge && `edge${capitalize_default(ownerState.edge)}`, `size${capitalize_default(ownerState.size)}`] 3811 }) 3812}); 3813var IconButtonRoot = styled_default(ButtonBase_default, { 3814 name: "MuiIconButton", 3815 slot: "Root", 3816 overridesResolver: (props, styles3) => { 3817 const { 3818 ownerState 3819 } = props; 3820 return [styles3.root, ownerState.color !== "default" && styles3[`color${capitalize_default(ownerState.color)}`], ownerState.edge && styles3[`edge${capitalize_default(ownerState.edge)}`], styles3[`size${capitalize_default(ownerState.size)}`]]; 3821 } 3822})(({ 3823 theme, 3824 ownerState 3825}) => ({ 3826 textAlign: "center", 3827 flex: "0 0 auto", 3828 fontSize: theme.typography.pxToRem(24), 3829 padding: 8, 3830 borderRadius: "50%", 3831 overflow: "visible", 3832 color: theme.palette.action.active, 3833 transition: theme.transitions.create("background-color", { 3834 duration: theme.transitions.duration.shortest 3835 }), 3836 ...!ownerState.disableRipple && { 3837 "&:hover": { 3838 backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity), 3839 // Reset on touch devices, it doesn't add specificity 3840 "@media (hover: none)": { 3841 backgroundColor: "transparent" 3842 } 3843 } 3844 }, 3845 ...ownerState.edge === "start" && { 3846 marginLeft: ownerState.size === "small" ? -3 : -12 3847 }, 3848 ...ownerState.edge === "end" && { 3849 marginRight: ownerState.size === "small" ? -3 : -12 3850 } 3851}), ({ 3852 theme, 3853 ownerState 3854}) => ({ 3855 ...ownerState.color === "inherit" && { 3856 color: "inherit" 3857 }, 3858 ...ownerState.color !== "inherit" && ownerState.color !== "default" && { 3859 color: theme.palette[ownerState.color].main, 3860 ...!ownerState.disableRipple && { 3861 "&:hover": { 3862 backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity), 3863 // Reset on touch devices, it doesn't add specificity 3864 "@media (hover: none)": { 3865 backgroundColor: "transparent" 3866 } 3867 } 3868 } 3869 }, 3870 ...ownerState.size === "small" && { 3871 padding: 5, 3872 fontSize: theme.typography.pxToRem(18) 3873 }, 3874 ...ownerState.size === "large" && { 3875 padding: 12, 3876 fontSize: theme.typography.pxToRem(28) 3877 }, 3878 [`&.${iconButtonClasses_default.disabled}`]: { 3879 backgroundColor: "transparent", 3880 color: theme.palette.action.disabled 3881 } 3882})); 3883var IconButton = $21.component(function IconButton2({ 3884 allProps, 3885 classes, 3886 otherProps, 3887 props 3888}) { 3889 return createComponent(IconButtonRoot, mergeProps({ 3890 get ["class"]() { 3891 return clsx_m_default(classes.root, otherProps.class); 3892 }, 3893 centerRipple: true, 3894 get focusRipple() { 3895 return !props.disableFocusRipple; 3896 }, 3897 get disabled() { 3898 return props.disabled; 3899 }, 3900 ownerState: allProps 3901 }, otherProps, { 3902 get children() { 3903 return props.children; 3904 } 3905 })); 3906}); 3907var IconButton_default = IconButton; 3908
vendor: 4,788 bytes, lines 3909-4041
3909// node_modules/@suid/icons-material/node_modules/@suid/system/colorManipulator.js 3910function clamp(value, min = 0, max = 1) { 3911 if (true) { 3912 if (value < min || value > max) { 3913 console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`); 3914 } 3915 } 3916 return Math.min(Math.max(min, value), max); 3917} 3918function hexToRgb(color) { 3919 color = color.substr(1); 3920 const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, "g"); 3921 let colors = color.match(re); 3922 if (colors && colors[0].length === 1) { 3923 colors = colors.map((n) => n + n); 3924 } 3925 return colors ? `rgb${colors.length === 4 ? "a" : ""}(${colors.map((n, index) => { 3926 return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1e3) / 1e3; 3927 }).join(", ")})` : ""; 3928} 3929function decomposeColor(color) { 3930 if (typeof color !== "string") { 3931 return color; 3932 } 3933 if (color.charAt(0) === "#") { 3934 return decomposeColor(hexToRgb(color)); 3935 } 3936 const marker = color.indexOf("("); 3937 const type = color.substring(0, marker); 3938 if (["rgb", "rgba", "hsl", "hsla", "color"].indexOf(type) === -1) { 3939 throw new Error("MUI: Unsupported `%s` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color(). " + color); 3940 } 3941 const valuesInput = color.substring(marker + 1, color.length - 1); 3942 let values2; 3943 let colorSpace; 3944 if (type === "color") { 3945 values2 = valuesInput.split(" "); 3946 colorSpace = values2.shift(); 3947 if (values2.length === 4 && values2[3].charAt(0) === "/") { 3948 values2[3] = values2[3].substr(1); 3949 } 3950 if (["srgb", "display-p3", "a98-rgb", "prophoto-rgb", "rec-2020"].indexOf( 3951 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion 3952 colorSpace 3953 ) === -1) { 3954 throw new Error("MUI: unsupported `%s` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020. " + colorSpace); 3955 } 3956 } else { 3957 values2 = valuesInput.split(","); 3958 } 3959 return { type, values: values2.map((value) => parseFloat(value)), colorSpace }; 3960} 3961function recomposeColor(color) { 3962 const { type, colorSpace } = color; 3963 const { values: values2 } = color; 3964 let newValues; 3965 if (type.indexOf("rgb") !== -1) { 3966 newValues = values2.map((n, i) => i < 3 ? parseInt(n.toString(), 10) : n).join(","); 3967 } else if (type.indexOf("hsl") !== -1) { 3968 newValues = values2.map((n, i) => i === 1 || i === 2 ? `${n}%` : n).join(","); 3969 } 3970 if (type.indexOf("color") !== -1) { 3971 newValues = `${colorSpace} ${values2.join(" ")}`; 3972 } else { 3973 newValues = `${values2.join(", ")}`; 3974 } 3975 return `${type}(${newValues})`; 3976} 3977function hslToRgb(color) { 3978 const c = decomposeColor(color); 3979 const { values: values2 } = c; 3980 const h = values2[0]; 3981 const s = values2[1] / 100; 3982 const l = values2[2] / 100; 3983 const a = s * Math.min(l, 1 - l); 3984 const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1); 3985 let type = "rgb"; 3986 const rgb = [ 3987 Math.round(f(0) * 255), 3988 Math.round(f(8) * 255), 3989 Math.round(f(4) * 255) 3990 ]; 3991 if (c.type === "hsla") { 3992 type += "a"; 3993 rgb.push(values2[3]); 3994 } 3995 return recomposeColor({ type, values: rgb }); 3996} 3997function getLuminance(color) { 3998 const { type, values: values2 } = decomposeColor(color); 3999 let rgb = type === "hsl" ? decomposeColor(hslToRgb(color)).values : values2; 4000 rgb = rgb.map((val) => { 4001 if (type !== "color") { 4002 val /= 255; 4003 } 4004 return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4; 4005 }); 4006 return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3)); 4007} 4008function getContrastRatio(foreground, background) { 4009 const lumA = getLuminance(foreground); 4010 const lumB = getLuminance(background); 4011 return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05); 4012} 4013function darken2(inputColor, coefficient) { 4014 const color = decomposeColor(inputColor); 4015 coefficient = clamp(coefficient); 4016 if (color.type.indexOf("hsl") !== -1) { 4017 color.values[2] *= 1 - coefficient; 4018 } else if (color.type.indexOf("rgb") !== -1 || color.type.indexOf("color") !== -1) { 4019 for (let i = 0; i < 3; i += 1) { 4020 color.values[i] *= 1 - coefficient; 4021 } 4022 } 4023 return recomposeColor(color); 4024} 4025function lighten2(inputColor, coefficient) { 4026 const color = decomposeColor(inputColor); 4027 coefficient = clamp(coefficient); 4028 if (color.type.indexOf("hsl") !== -1) { 4029 color.values[2] += (100 - color.values[2]) * coefficient; 4030 } else if (color.type.indexOf("rgb") !== -1) { 4031 for (let i = 0; i < 3; i += 1) { 4032 color.values[i] += (255 - color.values[i]) * coefficient; 4033 } 4034 } else if (color.type.indexOf("color") !== -1) { 4035 for (let i = 0; i < 3; i += 1) { 4036 color.values[i] += (1 - color.values[i]) * coefficient; 4037 } 4038 } 4039 return recomposeColor(color); 4040} 4041
vendor: 1,185 bytes, lines 4042-4082
4042// node_modules/@suid/icons-material/node_modules/@suid/system/breakpoints.js 4043var values = { 4044 xs: 0, 4045 sm: 600, 4046 md: 900, 4047 lg: 1200, 4048 xl: 1536 4049 // large screens 4050}; 4051function handleBreakpoints2(props, propValue, styleFromPropValue) { 4052 const theme = props.theme || {}; 4053 if (Array.isArray(propValue)) { 4054 const themeBreakpoints = theme.breakpoints; 4055 return propValue.reduce((acc, item, index) => { 4056 acc = { 4057 ...acc, 4058 ...themeBreakpoints.up(themeBreakpoints.keys[index], styleFromPropValue(propValue[index])) 4059 }; 4060 return acc; 4061 }, {}); 4062 } 4063 if (typeof propValue === "object") { 4064 const themeBreakpoints = theme.breakpoints; 4065 const keys = Object.keys(propValue); 4066 return keys.reduce((acc, breakpoint) => { 4067 if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) { 4068 acc = { 4069 ...acc, 4070 ...themeBreakpoints.up(breakpoint, styleFromPropValue(propValue[breakpoint], breakpoint)) 4071 }; 4072 } else { 4073 const cssKey = breakpoint; 4074 acc[cssKey] = propValue[cssKey]; 4075 } 4076 return acc; 4077 }, {}); 4078 } 4079 const output = styleFromPropValue(propValue); 4080 return output; 4081} 4082
vendor: 216 bytes, lines 4083-4086
4083// node_modules/@suid/icons-material/node_modules/@suid/styled-engine/StyledEngineProvider/StyledEngineContext.jsx 4084var StyledEngineContext = createContext({}); 4085var StyledEngineContext_default = StyledEngineContext; 4086
vendor: 905 bytes, lines 4087-4116
4087// node_modules/@suid/utils/deepmerge.js 4088function isPlainObject3(item) { 4089 return item !== null && typeof item === "object" && item.constructor === Object; 4090} 4091function sortKeys(object, keys) { 4092 for (const key of keys) { 4093 const value = object[key]; 4094 delete object[key]; 4095 object[key] = value; 4096 } 4097} 4098function deepmerge4(target, source, options = { clone: true }) { 4099 const output = options.clone ? { ...target } : target; 4100 if (isPlainObject3(target) && isPlainObject3(source)) { 4101 Object.keys(source).forEach((key) => { 4102 if (key === "__proto__") { 4103 return; 4104 } 4105 if (isPlainObject3(source[key]) && key in target && isPlainObject3(target[key])) { 4106 output[key] = deepmerge4(target[key], source[key], options); 4107 } else { 4108 output[key] = source[key]; 4109 } 4110 }); 4111 if (options.sortKeys) 4112 sortKeys(output, Object.keys(source)); 4113 } 4114 return output; 4115} 4116
vendor: 490 bytes, lines 4117-4138
4117// node_modules/@suid/utils/cloneObject.js 4118function cloneObject3(target) { 4119 if (Array.isArray(target)) { 4120 const output = []; 4121 for (const value of target) { 4122 output.push(cloneObject3(value)); 4123 } 4124 return output; 4125 } else if (isPlainObject3(target)) { 4126 const output = {}; 4127 for (const key in target) { 4128 if (key === "__proto__") { 4129 continue; 4130 } 4131 output[key] = cloneObject3(target[key]); 4132 } 4133 return output; 4134 } else { 4135 return target; 4136 } 4137} 4138
vendor: 201 bytes, lines 4139-4147
4139// node_modules/@suid/utils/merge.js 4140function merge3(target, ...sources) { 4141 for (const source of sources) 4142 deepmerge4(target, cloneObject3(source), { 4143 clone: false 4144 }); 4145 return target; 4146} 4147
vendor: 337 bytes, lines 4148-4159
4148// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createComponents.jsx 4149var componentsDefault = createComponentsOptions({}); 4150function createComponentsOptions(options) { 4151 return options; 4152} 4153function createComponents(data) { 4154 const result = { 4155 ...merge3({}, componentsDefault, data ?? {}) 4156 }; 4157 return result; 4158} 4159
vendor: 391 bytes, lines 4160-4175
4160// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createMixins.js 4161function createMixins(breakpoints, spacing = void 0, mixins = {}) { 4162 return { 4163 toolbar: { 4164 minHeight: 56, 4165 [`${breakpoints.up("xs")} and (orientation: landscape)`]: { 4166 minHeight: 48 4167 }, 4168 [breakpoints.up("sm")]: { 4169 minHeight: 64 4170 } 4171 }, 4172 ...mixins 4173 }; 4174} 4175
vendor: 163 bytes, lines 4176-4182
4176// node_modules/@suid/icons-material/node_modules/@suid/material/colors/common.js 4177var common = { 4178 black: "#000", 4179 white: "#fff" 4180}; 4181var common_default = common; 4182
vendor: 372 bytes, lines 4183-4201
4183// node_modules/@suid/icons-material/node_modules/@suid/material/colors/red.js 4184var red = { 4185 50: "#ffebee", 4186 100: "#ffcdd2", 4187 200: "#ef9a9a", 4188 300: "#e57373", 4189 400: "#ef5350", 4190 500: "#f44336", 4191 600: "#e53935", 4192 700: "#d32f2f", 4193 800: "#c62828", 4194 900: "#b71c1c", 4195 A100: "#ff8a80", 4196 A200: "#ff5252", 4197 A400: "#ff1744", 4198 A700: "#d50000" 4199}; 4200var red_default = red; 4201
vendor: 384 bytes, lines 4202-4220
4202// node_modules/@suid/icons-material/node_modules/@suid/material/colors/purple.js 4203var purple = { 4204 50: "#f3e5f5", 4205 100: "#e1bee7", 4206 200: "#ce93d8", 4207 300: "#ba68c8", 4208 400: "#ab47bc", 4209 500: "#9c27b0", 4210 600: "#8e24aa", 4211 700: "#7b1fa2", 4212 800: "#6a1b9a", 4213 900: "#4a148c", 4214 A100: "#ea80fc", 4215 A200: "#e040fb", 4216 A400: "#d500f9", 4217 A700: "#aa00ff" 4218}; 4219var purple_default = purple; 4220
vendor: 376 bytes, lines 4221-4239
4221// node_modules/@suid/icons-material/node_modules/@suid/material/colors/blue.js 4222var blue = { 4223 50: "#e3f2fd", 4224 100: "#bbdefb", 4225 200: "#90caf9", 4226 300: "#64b5f6", 4227 400: "#42a5f5", 4228 500: "#2196f3", 4229 600: "#1e88e5", 4230 700: "#1976d2", 4231 800: "#1565c0", 4232 900: "#0d47a1", 4233 A100: "#82b1ff", 4234 A200: "#448aff", 4235 A400: "#2979ff", 4236 A700: "#2962ff" 4237}; 4238var blue_default = blue; 4239
vendor: 396 bytes, lines 4240-4258
4240// node_modules/@suid/icons-material/node_modules/@suid/material/colors/lightBlue.js 4241var lightBlue = { 4242 50: "#e1f5fe", 4243 100: "#b3e5fc", 4244 200: "#81d4fa", 4245 300: "#4fc3f7", 4246 400: "#29b6f6", 4247 500: "#03a9f4", 4248 600: "#039be5", 4249 700: "#0288d1", 4250 800: "#0277bd", 4251 900: "#01579b", 4252 A100: "#80d8ff", 4253 A200: "#40c4ff", 4254 A400: "#00b0ff", 4255 A700: "#0091ea" 4256}; 4257var lightBlue_default = lightBlue; 4258
vendor: 380 bytes, lines 4259-4277
4259// node_modules/@suid/icons-material/node_modules/@suid/material/colors/green.js 4260var green = { 4261 50: "#e8f5e9", 4262 100: "#c8e6c9", 4263 200: "#a5d6a7", 4264 300: "#81c784", 4265 400: "#66bb6a", 4266 500: "#4caf50", 4267 600: "#43a047", 4268 700: "#388e3c", 4269 800: "#2e7d32", 4270 900: "#1b5e20", 4271 A100: "#b9f6ca", 4272 A200: "#69f0ae", 4273 A400: "#00e676", 4274 A700: "#00c853" 4275}; 4276var green_default = green; 4277
vendor: 384 bytes, lines 4278-4296
4278// node_modules/@suid/icons-material/node_modules/@suid/material/colors/orange.js 4279var orange = { 4280 50: "#fff3e0", 4281 100: "#ffe0b2", 4282 200: "#ffcc80", 4283 300: "#ffb74d", 4284 400: "#ffa726", 4285 500: "#ff9800", 4286 600: "#fb8c00", 4287 700: "#f57c00", 4288 800: "#ef6c00", 4289 900: "#e65100", 4290 A100: "#ffd180", 4291 A200: "#ffab40", 4292 A400: "#ff9100", 4293 A700: "#ff6d00" 4294}; 4295var orange_default = orange; 4296
vendor: 376 bytes, lines 4297-4315
4297// node_modules/@suid/icons-material/node_modules/@suid/material/colors/grey.js 4298var grey = { 4299 50: "#fafafa", 4300 100: "#f5f5f5", 4301 200: "#eeeeee", 4302 300: "#e0e0e0", 4303 400: "#bdbdbd", 4304 500: "#9e9e9e", 4305 600: "#757575", 4306 700: "#616161", 4307 800: "#424242", 4308 900: "#212121", 4309 A100: "#f5f5f5", 4310 A200: "#eeeeee", 4311 A400: "#bdbdbd", 4312 A700: "#616161" 4313}; 4314var grey_default = grey; 4315
vendor: 5,891 bytes, lines 4316-4521
4316// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createPalette.jsx 4317var useLightOptions = () => ({ 4318 text: { 4319 primary: "rgba(0, 0, 0, 0.87)", 4320 secondary: "rgba(0, 0, 0, 0.6)", 4321 disabled: "rgba(0, 0, 0, 0.38)" 4322 }, 4323 divider: "rgba(0, 0, 0, 0.12)", 4324 background: { 4325 paper: common_default.white, 4326 default: common_default.white 4327 }, 4328 action: { 4329 active: "rgba(0, 0, 0, 0.54)", 4330 hover: "rgba(0, 0, 0, 0.04)", 4331 hoverOpacity: 0.04, 4332 selected: "rgba(0, 0, 0, 0.08)", 4333 selectedOpacity: 0.08, 4334 disabled: "rgba(0, 0, 0, 0.26)", 4335 disabledBackground: "rgba(0, 0, 0, 0.12)", 4336 disabledOpacity: 0.38, 4337 focus: "rgba(0, 0, 0, 0.12)", 4338 focusOpacity: 0.12, 4339 activatedOpacity: 0.12 4340 } 4341}); 4342var lightColors = { 4343 primary: { 4344 main: blue_default[700], 4345 light: blue_default[400], 4346 dark: blue_default[800] 4347 }, 4348 secondary: { 4349 main: purple_default[500], 4350 light: purple_default[300], 4351 dark: purple_default[700] 4352 }, 4353 error: { 4354 main: red_default[700], 4355 light: red_default[400], 4356 dark: red_default[800] 4357 }, 4358 info: { 4359 main: lightBlue_default[700], 4360 light: lightBlue_default[800], 4361 dark: lightBlue_default[900] 4362 }, 4363 success: { 4364 main: green_default[800], 4365 light: green_default[500], 4366 dark: green_default[900] 4367 }, 4368 warning: { 4369 main: "#ED6C02", 4370 light: orange_default[500], 4371 dark: orange_default[900] 4372 } 4373}; 4374var useDarkOptions = () => ({ 4375 text: { 4376 primary: common_default.white, 4377 secondary: "rgba(255, 255, 255, 0.7)", 4378 disabled: "rgba(255, 255, 255, 0.5)" 4379 }, 4380 divider: "rgba(255, 255, 255, 0.12)", 4381 background: { 4382 paper: "#121212", 4383 default: "#121212" 4384 }, 4385 action: { 4386 active: common_default.white, 4387 hover: "rgba(255, 255, 255, 0.08)", 4388 hoverOpacity: 0.08, 4389 selected: "rgba(255, 255, 255, 0.16)", 4390 selectedOpacity: 0.16, 4391 disabled: "rgba(255, 255, 255, 0.3)", 4392 disabledBackground: "rgba(255, 255, 255, 0.12)", 4393 disabledOpacity: 0.38, 4394 focus: "rgba(255, 255, 255, 0.12)", 4395 focusOpacity: 0.12, 4396 activatedOpacity: 0.24 4397 } 4398}); 4399var darkColors = { 4400 primary: { 4401 main: blue_default[200], 4402 light: blue_default[50], 4403 dark: blue_default[400] 4404 }, 4405 secondary: { 4406 main: purple_default[200], 4407 light: purple_default[50], 4408 dark: purple_default[400] 4409 }, 4410 error: { 4411 main: red_default[500], 4412 light: red_default[300], 4413 dark: red_default[700] 4414 }, 4415 info: { 4416 main: lightBlue_default[400], 4417 light: lightBlue_default[300], 4418 dark: lightBlue_default[700] 4419 }, 4420 success: { 4421 main: green_default[400], 4422 light: green_default[300], 4423 dark: green_default[700] 4424 }, 4425 warning: { 4426 main: orange_default[400], 4427 light: orange_default[300], 4428 dark: orange_default[700] 4429 } 4430}; 4431var modes = { 4432 light: useLightOptions, 4433 dark: useDarkOptions 4434}; 4435function getContrastText(background, contrastThreshold) { 4436 return getContrastRatio(background, common_default.white) >= contrastThreshold ? common_default.white : "rgba(0, 0, 0, 0.87)"; 4437} 4438function addLightOrDark(intent, direction, shade, tonalOffset) { 4439 const tonalOffsetLight = typeof tonalOffset === "number" ? tonalOffset : tonalOffset.light; 4440 const tonalOffsetDark = typeof tonalOffset === "number" ? tonalOffset * 1.5 : tonalOffset.dark; 4441 if (!intent[direction]) { 4442 if (intent.hasOwnProperty(shade)) { 4443 intent[direction] = intent[shade]; 4444 } else if (direction === "light") { 4445 intent.light = lighten2(intent.main, tonalOffsetLight); 4446 } else if (direction === "dark") { 4447 intent.dark = darken2(intent.main, tonalOffsetDark); 4448 } 4449 } 4450} 4451function augmentColor(data) { 4452 const color = { 4453 ...data.color 4454 }; 4455 const mainShade = data.mainShade ?? 500; 4456 if (!data.color.main && data.color[mainShade]) color.main = data.color[mainShade]; 4457 addLightOrDark(color, "light", data.lightShade ?? 300, data.tonalOffset); 4458 addLightOrDark(color, "dark", data.darkShade ?? 700, data.tonalOffset); 4459 if (!color.contrastText) color.contrastText = getContrastText(color.main, data.contrastThreshold); 4460 return color; 4461} 4462var usePalleteDefaults = () => createPaletteOptions({ 4463 mode: "light", 4464 tonalOffset: 0.2, 4465 contrastThreshold: 3, 4466 grey: grey_default, 4467 common: common_default 4468}); 4469function createPaletteOptions(data) { 4470 return data; 4471} 4472function createPalette(options) { 4473 const colorNames = ["error", "info", "primary", "secondary", "success", "warning"]; 4474 const palleteDefaults = usePalleteDefaults(); 4475 const result = { 4476 ...merge3({}, palleteDefaults, modes[options?.mode ?? palleteDefaults.mode](), options), 4477 isColorName(name) { 4478 return colorNames.includes(name); 4479 }, 4480 getColorObject(color) { 4481 return result[color]; 4482 }, 4483 getColor(color) { 4484 return result.mode === "light" ? result[color].light : result[color].dark; 4485 }, 4486 augmentColor(data) { 4487 return augmentColor({ 4488 ...data, 4489 tonalOffset: result.tonalOffset, 4490 contrastThreshold: result.contrastThreshold 4491 }); 4492 }, 4493 getContrastText(background) { 4494 return getContrastText(background, result.contrastThreshold); 4495 } 4496 }; 4497 const getDefaultColor = (color) => result.mode === "light" ? lightColors[color] : darkColors[color]; 4498 result.primary = result.augmentColor({ 4499 color: result.primary || getDefaultColor("primary") 4500 }); 4501 result.secondary = result.augmentColor({ 4502 color: result.secondary || getDefaultColor("secondary"), 4503 mainShade: "A400", 4504 lightShade: "A200", 4505 darkShade: "A700" 4506 }); 4507 result.error = result.augmentColor({ 4508 color: result.error || getDefaultColor("error") 4509 }); 4510 result.warning = result.augmentColor({ 4511 color: result.warning || getDefaultColor("warning") 4512 }); 4513 result.info = result.augmentColor({ 4514 color: result.info || getDefaultColor("info") 4515 }); 4516 result.success = result.augmentColor({ 4517 color: result.success || getDefaultColor("success") 4518 }); 4519 return result; 4520} 4521
vendor: 2,314 bytes, lines 4522-4540
4522// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createShadows.jsx 4523var cache = {}; 4524var shadowKeyUmbraOpacity = 0.2; 4525var shadowKeyPenumbraOpacity = 0.14; 4526var shadowAmbientShadowOpacity = 0.12; 4527function createCssShadow(...px) { 4528 return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(","); 4529} 4530var shadows = [() => "none", () => createCssShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), () => createCssShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), () => createCssShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), () => createCssShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), () => createCssShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), () => createCssShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), () => createCssShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), () => createCssShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), () => createCssShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), () => createCssShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), () => createCssShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), () => createCssShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), () => createCssShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), () => createCssShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), () => createCssShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), () => createCssShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), () => createCssShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), () => createCssShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), () => createCssShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), () => createCssShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), () => createCssShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), () => createCssShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), () => createCssShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), () => createCssShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; 4531function createShadows() { 4532 return new Proxy([], { 4533 get: (target, p) => { 4534 if (typeof p !== "string" || isNaN(Number(p))) return target[p]; 4535 if (p in cache) return cache[p]; 4536 return cache[p] = shadows[p](); 4537 } 4538 }); 4539} 4540
vendor: 2,382 bytes, lines 4541-4612
4541// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createTransitions.jsx 4542var easing = { 4543 easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)", 4544 easeOut: "cubic-bezier(0.0, 0, 0.2, 1)", 4545 easeIn: "cubic-bezier(0.4, 0, 1, 1)", 4546 sharp: "cubic-bezier(0.4, 0, 0.6, 1)" 4547}; 4548var duration = { 4549 shortest: 150, 4550 shorter: 200, 4551 short: 250, 4552 standard: 300, 4553 complex: 375, 4554 enteringScreen: 225, 4555 leavingScreen: 195 4556}; 4557function formatMs(milliseconds) { 4558 return `${Math.round(milliseconds)}ms`; 4559} 4560function getAutoHeightDuration(height) { 4561 if (!height) { 4562 return 0; 4563 } 4564 const constant = height / 36; 4565 return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10); 4566} 4567function createTransitions(inputTransitions) { 4568 const mergedEasing = { 4569 ...easing, 4570 ...inputTransitions.easing 4571 }; 4572 const mergedDuration = { 4573 ...duration, 4574 ...inputTransitions.duration 4575 }; 4576 const create2 = (props = ["all"], options = {}) => { 4577 const { 4578 duration: durationOption = mergedDuration.standard, 4579 easing: easingOption = mergedEasing.easeInOut, 4580 delay = 0, 4581 ...other 4582 } = options; 4583 if (true) { 4584 const isString = (value) => typeof value === "string"; 4585 const isNumber = (value) => !isNaN(parseFloat(value)); 4586 if (!isString(props) && !Array.isArray(props)) { 4587 console.error('MUI: Argument "props" must be a string or Array.'); 4588 } 4589 if (!isNumber(durationOption) && !isString(durationOption)) { 4590 console.error(`MUI: Argument "duration" must be a number or a string but found ${durationOption}.`); 4591 } 4592 if (!isString(easingOption)) { 4593 console.error('MUI: Argument "easing" must be a string.'); 4594 } 4595 if (!isNumber(delay) && !isString(delay)) { 4596 console.error('MUI: Argument "delay" must be a number or a string.'); 4597 } 4598 if (Object.keys(other).length !== 0) { 4599 console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(",")}].`); 4600 } 4601 } 4602 return (Array.isArray(props) ? props : [props]).map((animatedProp) => `${animatedProp} ${typeof durationOption === "string" ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === "string" ? delay : formatMs(delay)}`).join(","); 4603 }; 4604 return { 4605 getAutoHeightDuration, 4606 create: create2, 4607 ...inputTransitions, 4608 easing: mergedEasing, 4609 duration: mergedDuration 4610 }; 4611} 4612
vendor: 2,367 bytes, lines 4613-4686
4613// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createTypography.jsx 4614var fontWeight = { 4615 light: 300, 4616 regular: 400, 4617 medium: 500, 4618 bold: 700 4619}; 4620var typographyDefaults = createTypographyOptions({ 4621 fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', 4622 fontSize: 14, 4623 htmlFontSize: 16, 4624 h1: {}, 4625 h2: {}, 4626 h3: {}, 4627 h4: {}, 4628 h5: {}, 4629 h6: {}, 4630 subtitle1: {}, 4631 subtitle2: {}, 4632 body1: {}, 4633 body2: {}, 4634 button: {}, 4635 caption: {}, 4636 overline: {}, 4637 fontWeightLight: 300, 4638 fontWeightRegular: 400, 4639 fontWeightMedium: 500, 4640 fontWeightBold: 700 4641}); 4642function createTypographyOptions(options) { 4643 return options; 4644} 4645function round(value) { 4646 return Math.round(value * 1e5) / 1e5; 4647} 4648function makeVariant(base, fontWeight2, size, lineHeight, letterSpacing, casing) { 4649 return { 4650 fontFamily: base.fontFamily, 4651 fontWeight: fontWeight2, 4652 fontSize: base.pxToRem(size), 4653 lineHeight: `${lineHeight}`, 4654 letterSpacing: `${round(letterSpacing / size)}em`, 4655 ...casing ? { 4656 textTransform: "uppercase" 4657 } : {} 4658 }; 4659} 4660function createTypography(options = {}) { 4661 const base = { 4662 fontFamily: options.fontFamily ?? typographyDefaults.fontFamily, 4663 fontSize: options.fontSize ?? typographyDefaults.fontSize, 4664 htmlFontSize: options?.htmlFontSize ?? typographyDefaults.htmlFontSize, 4665 pxToRem: (size) => { 4666 const coef = base.fontSize / 14; 4667 return `${size / base.htmlFontSize * coef}rem`; 4668 } 4669 }; 4670 return merge3(base, { 4671 h1: makeVariant(base, fontWeight.light, 96, 1.167, -1.5), 4672 h2: makeVariant(base, fontWeight.light, 60, 1.2, -0.5), 4673 h3: makeVariant(base, fontWeight.regular, 48, 1.167, 0), 4674 h4: makeVariant(base, fontWeight.regular, 34, 1.235, 0.25), 4675 h5: makeVariant(base, fontWeight.regular, 24, 1.334, 0), 4676 h6: makeVariant(base, fontWeight.medium, 20, 1.6, 0.15), 4677 subtitle1: makeVariant(base, fontWeight.regular, 16, 1.75, 0.15), 4678 subtitle2: makeVariant(base, fontWeight.medium, 14, 1.57, 0.1), 4679 body1: makeVariant(base, fontWeight.regular, 16, 1.5, 0.15), 4680 body2: makeVariant(base, fontWeight.regular, 14, 1.43, 0.15), 4681 button: makeVariant(base, fontWeight.medium, 14, 1.75, 0.4, true), 4682 caption: makeVariant(base, fontWeight.regular, 12, 1.66, 0.4), 4683 overline: makeVariant(base, fontWeight.regular, 12, 2.66, 1, true) 4684 }, typographyDefaults, options); 4685} 4686
vendor: 426 bytes, lines 4687-4706
4687// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createZIndex.jsx 4688var zIndexDefaults = createZIndexOptions({ 4689 mobileStepper: 1e3, 4690 speedDial: 1050, 4691 appBar: 1100, 4692 drawer: 1200, 4693 modal: 1300, 4694 snackbar: 1400, 4695 tooltip: 1500 4696}); 4697function createZIndexOptions(data) { 4698 return data; 4699} 4700function createZIndex(data) { 4701 const result = { 4702 ...merge3({}, zIndexDefaults, data) 4703 }; 4704 return result; 4705} 4706
vendor: 591 bytes, lines 4707-4723
4707// node_modules/@suid/css/renderMediaQuery.js 4708function renderMediaQuery(comparator, width, units = "px") { 4709 let selector; 4710 if (comparator === "up") { 4711 selector = `(min-width:${width}${units})`; 4712 } else if (comparator === "down") { 4713 selector = `(max-width:${width}${units})`; 4714 } else if (comparator === "between") { 4715 const [maxW, minW] = width; 4716 selector = `(max-width:${maxW}${units}) and (min-width:${minW}${units})`; 4717 } else { 4718 throw new Error(`Invalid comparator: ${comparator}`); 4719 } 4720 return `@media ${selector}`; 4721} 4722var renderMediaQuery_default = renderMediaQuery; 4723
vendor: 1,139 bytes, lines 4724-4764
4724// node_modules/@suid/icons-material/node_modules/@suid/system/createTheme/createBreakpoints.js 4725var breakpointsDefault = createBreakpointsOptions({ 4726 columns: 12, 4727 keys: ["xs", "sm", "md", "lg", "xl"], 4728 values: { 4729 xs: 0, 4730 sm: 600, 4731 md: 900, 4732 lg: 1200, 4733 xl: 1536 4734 }, 4735 unit: "px" 4736}); 4737function createBreakpointsOptions(options) { 4738 return options; 4739} 4740function createBreakpoints(options) { 4741 const result = { 4742 ...breakpointsDefault, 4743 ...options ?? {}, 4744 up: (value, css) => { 4745 const key = renderMediaQuery_default("up", result.resolve(value)); 4746 return css ? { [key]: css } : key; 4747 }, 4748 down: (value, css) => { 4749 const key = renderMediaQuery_default("down", result.resolve(value)); 4750 return css ? { [key]: css } : key; 4751 }, 4752 between: (value, css) => { 4753 const key = renderMediaQuery_default("between", [ 4754 result.resolve(value[0]), 4755 result.resolve(value[1]) 4756 ]); 4757 return css ? { [key]: css } : key; 4758 }, 4759 resolve: (value) => typeof value === "number" ? value : result.values[value] 4760 }; 4761 return result; 4762} 4763var createBreakpoints_default = createBreakpoints; 4764
vendor: 386 bytes, lines 4765-4775
4765// node_modules/@suid/icons-material/node_modules/@suid/system/createTheme/createSpacing.js 4766function createSpacing(options) { 4767 if (typeof options === "function") 4768 return options; 4769 const resolved = (...values2) => { 4770 return values2.map((v) => typeof v === "number" ? `${v * (options ?? 8)}px` : v).join(" "); 4771 }; 4772 return resolved; 4773} 4774var createSpacing_default = createSpacing; 4775
vendor: 351 bytes, lines 4776-4790
4776// node_modules/@suid/icons-material/node_modules/@suid/system/createTheme/shape.js 4777var shapeDefaults = createShapeOptions({ 4778 borderRadius: 4 4779}); 4780function createShapeOptions(data) { 4781 return data; 4782} 4783function createShape(options) { 4784 const result = { 4785 ...merge3({}, shapeDefaults, options) 4786 }; 4787 return result; 4788} 4789var shape_default = createShape; 4790
vendor: 1,177 bytes, lines 4791-4824
4791// node_modules/@suid/icons-material/node_modules/@suid/material/styles/createTheme.jsx 4792function createTheme(input = {}) { 4793 const theme = { 4794 direction: "ltr", 4795 ...input 4796 }; 4797 function def(key, defaults) { 4798 const inputValue = input[key]; 4799 Object.defineProperty(theme, key, { 4800 configurable: true, 4801 enumerable: true, 4802 ...typeof inputValue === "function" ? { 4803 get: inputValue 4804 } : { 4805 value: defaults({ 4806 [key]: inputValue 4807 }) 4808 } 4809 }); 4810 } 4811 def("breakpoints", (input2) => createBreakpoints_default(input2.breakpoints)); 4812 def("components", (input2) => createComponents(input2.components)); 4813 def("palette", (input2) => createPalette(input2.palette)); 4814 def("shape", (input2) => shape_default(input2.shape)); 4815 def("spacing", (input2) => createSpacing_default(input2.spacing)); 4816 def("typography", (input2) => createTypography(input2.typography)); 4817 def("shadows", () => createShadows()); 4818 def("transitions", () => createTransitions({})); 4819 def("zIndex", (input2) => createZIndex(input2.zIndex)); 4820 def("mixins", () => createMixins(theme.breakpoints)); 4821 return theme; 4822} 4823var createTheme_default = createTheme; 4824
vendor: 345 bytes, lines 4825-4836
4825// node_modules/@suid/icons-material/node_modules/@suid/system/makeGetDefaultTheme.js 4826function makeGetDefaultTheme(createTheme3) { 4827 let defaultTheme; 4828 return function getDefaultTheme() { 4829 if (!defaultTheme) { 4830 defaultTheme = createTheme3(); 4831 } 4832 return defaultTheme; 4833 }; 4834} 4835var makeGetDefaultTheme_default = makeGetDefaultTheme; 4836
vendor: 172 bytes, lines 4837-4839
4837// node_modules/@suid/icons-material/node_modules/@suid/material/styles/getDefaultTheme.js 4838var getDefaultTheme_default = makeGetDefaultTheme_default(createTheme_default); 4839
vendor: 386 bytes, lines 4840-4850
4840// node_modules/@suid/icons-material/node_modules/@suid/system/ThemeContext/ThemeContext.jsx 4841var ThemeContext; 4842if (true) { 4843 const global = globalThis; 4844 const suid = global.__suid || (global.__suid = {}); 4845 ThemeContext = suid.systemThemeContext || (suid.systemThemeContext = createContext({})); 4846} else { 4847 ThemeContext = createContext({}); 4848} 4849var ThemeContext_default = ThemeContext; 4850
vendor: 530 bytes, lines 4851-4870
4851// node_modules/@suid/icons-material/node_modules/@suid/system/createTheme/createTheme.jsx 4852function createTheme2(data) { 4853 const result = { 4854 direction: "ltr", 4855 shadows: void 0, 4856 transitions: void 0, 4857 components: void 0, 4858 palette: void 0, 4859 typography: void 0, 4860 zIndex: void 0, 4861 mixins: void 0, 4862 ...data, 4863 breakpoints: createBreakpoints(data?.breakpoints), 4864 shape: createShape(data?.shape), 4865 spacing: createSpacing(data?.spacing) 4866 }; 4867 return result; 4868} 4869var createTheme_default2 = createTheme2; 4870
vendor: 165 bytes, lines 4871-4873
4871// node_modules/@suid/icons-material/node_modules/@suid/system/getDefaultTheme.js 4872var getDefaultTheme_default2 = makeGetDefaultTheme_default(createTheme_default2); 4873
vendor: 144 bytes, lines 4874-4880
4874// node_modules/@suid/utils/isEmptyObject.js 4875function isEmptyObject3(object) { 4876 for (const _key in object) 4877 return false; 4878 return true; 4879} 4880
vendor: 466 bytes, lines 4881-4894
4881// node_modules/@suid/icons-material/node_modules/@suid/system/useTheme.js 4882function useTheme(defaultTheme = getDefaultTheme_default2, Context = ThemeContext_default) { 4883 const theme = useContext(Context); 4884 if (isEmptyObject3(theme) && defaultTheme) { 4885 if (typeof defaultTheme === "function") 4886 return defaultTheme(); 4887 return defaultTheme; 4888 } 4889 if (!theme) 4890 throw new Error("Theme is not defined"); 4891 return theme; 4892} 4893var useTheme_default2 = useTheme; 4894
vendor: 247 bytes, lines 4895-4900
4895// node_modules/@suid/icons-material/node_modules/@suid/material/styles/useTheme.js 4896function useTheme2(defaultTheme = getDefaultTheme_default) { 4897 return useTheme_default2(defaultTheme, ThemeContext_default); 4898} 4899var useTheme_default3 = useTheme2; 4900
vendor: 210 bytes, lines 4901-4906
4901// node_modules/@suid/icons-material/node_modules/@suid/base/useTheme.js 4902function useTheme3(defaultTheme) { 4903 return useTheme_default2(defaultTheme, ThemeContext_default); 4904} 4905var useTheme_default4 = useTheme3; 4906
vendor: 488 bytes, lines 4907-4921
4907// node_modules/@suid/icons-material/node_modules/@suid/base/useThemeProps.js 4908function useThemeProps(options) { 4909 const theme = useTheme_default4(); 4910 const set = (v) => v; 4911 const propDefaults = typeof options.propDefaults === "function" ? options.propDefaults({ 4912 set, 4913 inProps: options.props 4914 }) : options.propDefaults; 4915 return mergeProps(...[ 4916 ...propDefaults ? [propDefaults] : [], 4917 () => theme.components?.[options.name]?.defaultProps || {}, 4918 options.props 4919 ]); 4920} 4921
vendor: 1,271 bytes, lines 4922-4959
4922// node_modules/@suid/icons-material/node_modules/@suid/system/Dynamic/Dynamic.jsx 4923function createElement(tagName, isSVG = false) { 4924 return isSVG ? document.createElementNS("http://www.w3.org/2000/svg", tagName) : document.createElement(tagName); 4925} 4926function ServerDynamic(props) { 4927 const [p, others] = splitProps(props, ["$component"]); 4928 const comp = p.$component, t = typeof comp; 4929 if (comp) { 4930 if (t === "function") return comp(others); 4931 else if (t === "string") { 4932 return ssrElement(comp, others, void 0, true); 4933 } 4934 } 4935} 4936function Dynamic2(props) { 4937 if (isServer) return ServerDynamic(props); 4938 const [p, others] = splitProps(props, ["$component"]); 4939 const cached = createMemo(() => p.$component); 4940 return createMemo(() => { 4941 const component = cached(); 4942 switch (typeof component) { 4943 case "function": 4944 if ("_DX_DEV_") Object.assign(component, { 4945 [$DEVCOMP]: true 4946 }); 4947 return untrack(() => component(others)); 4948 case "string": 4949 const isSvg = SVGElements.has(component); 4950 const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg); 4951 spread(el, others, isSvg); 4952 return el; 4953 default: 4954 break; 4955 } 4956 }); 4957} 4958var Dynamic_default2 = Dynamic2; 4959
vendor: 445 bytes, lines 4960-4975
4960// node_modules/@suid/icons-material/node_modules/@suid/styled-engine/mergeStyleProps.js 4961function mergeStyleProps(values2) { 4962 const result = values2.reduce((result2, value) => { 4963 if ("name" in value) 4964 result2[`--${value.name}`] = "0"; 4965 deepmerge4(result2, value, { 4966 clone: false, 4967 sortKeys: true 4968 }); 4969 return result2; 4970 }, {}); 4971 delete result.name; 4972 return result; 4973} 4974var mergeStyleProps_default = mergeStyleProps; 4975
vendor: 461 bytes, lines 4976-4995
4976// node_modules/@suid/css/assert.js 4977function isVar(value) { 4978 return value.startsWith("--"); 4979} 4980function isPrivateVar(value) { 4981 return value.startsWith("__"); 4982} 4983function isSelector(value) { 4984 return /[^a-z-]/i.test(value) && !isVar(value); 4985} 4986function isGlobalSelector(value) { 4987 return value.startsWith("@global"); 4988} 4989function isMediaQuery(value) { 4990 return value.startsWith("@media"); 4991} 4992function isKeyframes(value) { 4993 return value.startsWith("@keyframes"); 4994} 4995
vendor: 148 bytes, lines 4996-5000
4996// node_modules/@suid/css/utils/string.js 4997function snakeCase3(value) { 4998 return value.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`); 4999} 5000
vendor: 2,770 bytes, lines 5001-5082
5001// node_modules/@suid/css/render.js 5002function renderSelector(propKey, propValue, selectors = [], options = {}) { 5003 const subselectors = propKey.split(",").map((v) => { 5004 v = v.trim(); 5005 return v.includes("&") ? v : `& ${v}`; 5006 }); 5007 return render(propValue, (selectors.length ? selectors : [""]).flatMap((selector) => subselectors.map((v) => v.replace(/&/g, selector).trim())), { 5008 ...options 5009 }); 5010} 5011function render(css, selectors = [], options = {}) { 5012 const props = []; 5013 const rules = []; 5014 for (let propKey in css) { 5015 const propValue = css[propKey]; 5016 if (isPrivateVar(propKey)) { 5017 continue; 5018 } else if (isGlobalSelector(propKey)) { 5019 for (const selector in propValue) { 5020 rules.push(...renderSelector(selector, propValue[selector], [], options)); 5021 } 5022 } else if (isMediaQuery(propKey)) { 5023 rules.push(...render(propValue, selectors, { 5024 ...options, 5025 sublevel: true 5026 }).map((v) => `${propKey} { 5027${v} 5028}`)); 5029 } else if (isVar(propKey)) { 5030 if (propValue !== void 0 && propValue !== null) 5031 props.push(`${propKey}: ${propValue};`); 5032 } else if (isKeyframes(propKey)) { 5033 const keyframes = []; 5034 for (const k in propValue) { 5035 keyframes.push(...render(propValue[k], [/^\d+$/.test(k) ? `${k}%` : k], { 5036 ...options, 5037 sublevel: true 5038 })); 5039 } 5040 rules.push(`${propKey} { 5041${keyframes.join("\n")} 5042}`); 5043 } else if (isSelector(propKey)) { 5044 rules.push(...renderSelector(propKey, propValue, selectors, options)); 5045 } else if (options.extraProperties && propKey in options.extraProperties) { 5046 const extraProps = options.extraProperties[propKey](propValue); 5047 for (const extraPropKey in extraProps) { 5048 const inValue = extraProps[extraPropKey]; 5049 const value = options.onPropertyValue ? options.onPropertyValue(extraPropKey, inValue) : inValue; 5050 if (value !== void 0 && value !== null) 5051 props.push(`${snakeCase3(extraPropKey)}: ${value};`); 5052 } 5053 } else { 5054 propKey = snakeCase3(propKey); 5055 const value = options.onPropertyValue ? options.onPropertyValue(propKey, propValue) : propValue; 5056 if (value !== void 0 && value !== null) 5057 props.push(`${propKey}: ${value};`); 5058 } 5059 } 5060 const renderProps = (level) => { 5061 const pad = " ".repeat(level); 5062 return `${pad}${props.join(` 5063${pad}`)}`; 5064 }; 5065 if (selectors.length) { 5066 const pad = options.sublevel ? ` ` : ``; 5067 const selectorStr = pad + selectors.join(`, 5068${pad}`); 5069 return [ 5070 ...props.length ? [ 5071 `${selectorStr} { 5072${renderProps(options.sublevel ? 2 : 1)} 5073${pad}}` 5074 ] : [], 5075 ...rules 5076 ]; 5077 } else { 5078 return [...props.length ? [renderProps(0)] : [], ...rules]; 5079 } 5080} 5081var render_default = render; 5082
vendor: 133 bytes, lines 5083-5087
5083// node_modules/@suid/css/utils/array.js 5084function toArray3(value) { 5085 return value ? Array.isArray(value) ? value : [value] : []; 5086} 5087
vendor: 154 bytes, lines 5088-5094
5088// node_modules/@suid/css/utils/function.js 5089function resolveFunction3(value) { 5090 if (typeof value === "function") 5091 value = value(); 5092 return value; 5093} 5094
vendor: 1,455 bytes, lines 5095-5140
5095// node_modules/@suid/css/createStyleObject.js 5096var StyleCache = class { 5097 ids = /* @__PURE__ */ new Map(); 5098 rules = /* @__PURE__ */ new Map(); 5099 create(name, rules, componentId) { 5100 let styleObject = this.rules.get(rules); 5101 if (styleObject) 5102 return styleObject; 5103 let componentIndex = this.ids.get(componentId); 5104 if (typeof componentIndex === "number") { 5105 this.ids.set(componentId, ++componentIndex); 5106 componentId += `_${componentIndex}`; 5107 } 5108 styleObject = create(name, rules, componentId); 5109 this.save(styleObject, rules); 5110 return styleObject; 5111 } 5112 save(style2, rules) { 5113 this.ids.set(style2.id, 0); 5114 this.rules.set(rules, style2); 5115 } 5116 delete(style2) { 5117 this.ids.delete(style2.id); 5118 this.rules.delete(style2.rules); 5119 } 5120}; 5121function create(name, rules, id) { 5122 return { 5123 id, 5124 name, 5125 className: `${name}-${id}`, 5126 rules: rules.replaceAll(`$id`, `${id}`) 5127 }; 5128} 5129function createStyleObject(options) { 5130 const className2 = `${options.name}-$id`; 5131 const propsValues = toArray3(resolveFunction3(options.props)); 5132 const rules = propsValues.map((v) => typeof v === "string" ? `.${className2} { 5133${v} 5134}` : render_default(v, [`.${className2}`], { 5135 extraProperties: options.extraProperties 5136 }).join("\n")).join("\n"); 5137 return options.cache?.create(options.name, rules, options.componentId) || create(options.name, rules, options.componentId); 5138} 5139var createStyleObject_default = createStyleObject; 5140
vendor: 331 bytes, lines 5141-5151
5141// node_modules/@suid/css/dom/setStyleElementText.js 5142function setStyleElementText(element, text) { 5143 if ("styleSheet" in element) { 5144 element["styleSheet"].cssText = text; 5145 } else { 5146 element.innerText = ""; 5147 element.appendChild(document.createTextNode(text)); 5148 } 5149} 5150var setStyleElementText_default = setStyleElementText; 5151
vendor: 646 bytes, lines 5152-5174
5152// node_modules/@suid/css/dom/createStyleElement.js 5153function setAttributes(element, attributes) { 5154 for (const name in attributes) { 5155 const value = attributes[name]; 5156 if (value !== void 0) { 5157 if (value === null) { 5158 element.removeAttribute(name); 5159 } else { 5160 element.setAttribute(name, value); 5161 } 5162 } 5163 } 5164} 5165function createStyleElement(css, attributes) { 5166 const element = document.createElement("style"); 5167 element.type = "text/css"; 5168 if (attributes) 5169 setAttributes(element, attributes); 5170 setStyleElementText_default(element, css); 5171 return element; 5172} 5173var createStyleElement_default = createStyleElement; 5174
vendor: 292 bytes, lines 5175-5182
5175// node_modules/@suid/css/dom/registerStyleElementUsage.js 5176function registerStyleElementUsage(style2) { 5177 let uses = Number(style2.getAttribute("data-uses")); 5178 uses++; 5179 style2.setAttribute("data-uses", uses.toString()); 5180} 5181var registerStyleElementUsage_default = registerStyleElementUsage; 5182
vendor: 1,220 bytes, lines 5183-5215
5183// node_modules/@suid/css/dom/appendStyleElement.js 5184var placeholderId = "suid-injectFirst"; 5185function appendStyleElement(css, attributes, injectFirst) { 5186 if (Array.isArray(css)) 5187 css = css.join("\n"); 5188 const id = attributes?.["id"]; 5189 const head = document.head || document.getElementsByTagName("head")[0]; 5190 const prevElement = id && document.getElementById(id); 5191 if (prevElement && prevElement instanceof HTMLStyleElement) { 5192 setStyleElementText_default(prevElement, css); 5193 registerStyleElementUsage_default(prevElement); 5194 return prevElement; 5195 } else { 5196 if (prevElement) 5197 prevElement.remove(); 5198 const element = createStyleElement_default(css, attributes); 5199 registerStyleElementUsage_default(element); 5200 if (injectFirst) { 5201 let placeholderElement = head.querySelector(`#${placeholderId}`); 5202 if (!placeholderElement) { 5203 placeholderElement = document.createElement("style"); 5204 placeholderElement.setAttribute("id", placeholderId); 5205 head.prepend(placeholderElement); 5206 } 5207 head.insertBefore(element, placeholderElement); 5208 } else { 5209 head.appendChild(element); 5210 } 5211 return element; 5212 } 5213} 5214var appendStyleElement_default = appendStyleElement; 5215
vendor: 415 bytes, lines 5216-5225
5216// node_modules/@suid/css/dom/findStyleElement.js 5217function findStyleElement(input, classPrefix = "css-") { 5218 if (typeof input === "string") 5219 return document.getElementById(input); 5220 const className2 = [...input.classList].find((name) => name.startsWith(classPrefix)); 5221 if (className2) 5222 return document.getElementById(className2.slice(classPrefix.length)); 5223} 5224var findStyleElement_default = findStyleElement; 5225
vendor: 357 bytes, lines 5226-5237
5226// node_modules/@suid/css/dom/unregisterStyleElementUsage.js 5227function unregisterStyleElementUsage(style2) { 5228 let uses = Number(style2.getAttribute("data-uses")); 5229 uses--; 5230 if (uses <= 0) { 5231 style2.remove(); 5232 } else { 5233 style2.setAttribute("data-uses", uses.toString()); 5234 } 5235} 5236var unregisterStyleElementUsage_default = unregisterStyleElementUsage; 5237
vendor: 252 bytes, lines 5238-5245
5238// node_modules/@suid/utils/capitalize.js 5239function capitalize3(string) { 5240 if (typeof string !== "string") { 5241 throw new Error("MUI: `capitalize(string)` expects a string argument."); 5242 } 5243 return string.charAt(0).toUpperCase() + string.slice(1); 5244} 5245
vendor: 140 bytes, lines 5246-5250
5246// node_modules/@suid/utils/randomString.js 5247function randomString3() { 5248 return Math.random().toString(36).substring(2, 15).slice(0, 8); 5249} 5250
vendor: 2,922 bytes, lines 5251-5336
5251// node_modules/@suid/icons-material/node_modules/@suid/styled-engine/createStyle.jsx 5252var _tmpl$2 = /* @__PURE__ */ template(`<style>`); 5253var styleCache = isServer ? void 0 : new StyleCache(); 5254function normalizeStyleProps(props) { 5255 if (!props) return []; 5256 return (Array.isArray(props) ? props : [props]).flat(Infinity).filter((v) => !!v); 5257} 5258function createStyleId() { 5259 if (!sharedConfig.context) return randomString3(); 5260 const id = createUniqueId().replaceAll("-", ""); 5261 const chunkSize = 9; 5262 const chunks = Math.ceil(id.length / chunkSize); 5263 const ids = []; 5264 for (let chunk = 1; chunk <= chunks; ++chunk) { 5265 const index = (chunk - 1) * chunkSize; 5266 const number = Number(id.slice(index, index + chunkSize)); 5267 ids.push(number.toString(32)); 5268 } 5269 return ids.join("-"); 5270} 5271function createStyle(value) { 5272 const context = useContext(StyledEngineContext_default); 5273 const [name, setName] = createSignal(""); 5274 const componentId = createStyleId(); 5275 let styleElement; 5276 createRenderEffect((prevResult) => { 5277 const propsValue = value(); 5278 let styleObject; 5279 if (propsValue) { 5280 styleObject = createStyleObject_default({ 5281 name: "css", 5282 props: mergeStyleProps_default(normalizeStyleProps(propsValue)), 5283 cache: styleCache, 5284 componentId 5285 }); 5286 if (isServer) { 5287 if (true) { 5288 if (context.injectFirst) console.warn(`SUID: 'injectFirst' is not supported in SSR mode.`); 5289 } 5290 voidFn(() => (() => { 5291 const _el$ = _tmpl$2(); 5292 createRenderEffect((_p$) => { 5293 const _v$ = styleObject.id, _v$2 = styleObject.rules, _v$3 = context.cache?.nonce; 5294 _v$ !== _p$._v$ && setAttribute(_el$, "id", _p$._v$ = _v$); 5295 _v$2 !== _p$._v$2 && (_el$.innerHTML = _p$._v$2 = _v$2); 5296 _v$3 !== _p$._v$3 && setAttribute(_el$, "nonce", _p$._v$3 = _v$3); 5297 return _p$; 5298 }, { 5299 _v$: void 0, 5300 _v$2: void 0, 5301 _v$3: void 0 5302 }); 5303 return _el$; 5304 })()); 5305 } else { 5306 styleElement = findStyleElement_default(styleObject.id); 5307 if (styleElement) { 5308 registerStyleElementUsage_default(styleElement); 5309 } else { 5310 styleElement = appendStyleElement_default(styleObject.rules, { 5311 id: styleObject.id, 5312 nonce: context.cache?.nonce 5313 }, context.injectFirst); 5314 } 5315 if (prevResult?.styleElement) { 5316 unregisterStyleElementUsage_default(prevResult.styleElement); 5317 } 5318 } 5319 } 5320 if (typeof styleObject?.className === "string") { 5321 setName(styleObject.className); 5322 } else { 5323 setName(""); 5324 } 5325 return { 5326 className: styleObject?.className, 5327 styleElement 5328 }; 5329 }, void 0); 5330 onCleanup(() => { 5331 if (styleElement) unregisterStyleElementUsage_default(styleElement); 5332 }); 5333 return name; 5334} 5335var createStyle_default2 = createStyle; 5336
vendor: 892 bytes, lines 5337-5366
5337// node_modules/@suid/css/resolve.js 5338function resolve(css, onProp, cssTarget = {}) { 5339 for (const name in css) { 5340 const value = css[name]; 5341 if (isGlobalSelector(name)) { 5342 cssTarget[name] = resolve(value, onProp); 5343 } else if (isMediaQuery(name)) { 5344 cssTarget[name] = resolve(value, onProp); 5345 } else if (isKeyframes(name)) { 5346 cssTarget[name] = {}; 5347 for (const v in value) { 5348 cssTarget[name][v] = resolve(value[v], onProp); 5349 } 5350 } else if (isSelector(name)) { 5351 cssTarget[name] = resolve(value, onProp); 5352 } else { 5353 const result = onProp(name, value); 5354 if (result) { 5355 for (const key in result) { 5356 cssTarget[key] = isMediaQuery(key) ? { ...cssTarget[key], ...result[key] } : result[key]; 5357 } 5358 } else { 5359 cssTarget[name] = value; 5360 } 5361 } 5362 } 5363 return cssTarget; 5364} 5365var resolve_default = resolve; 5366
vendor: 1,211 bytes, lines 5367-5424
5367// node_modules/@suid/icons-material/node_modules/@suid/system/resolveStyledProps.js 5368var unitLess = /* @__PURE__ */ new Set([ 5369 "animationIterationCount", 5370 "borderImageOutset", 5371 "borderImageSlice", 5372 "borderImageWidth", 5373 "boxFlex", 5374 "boxFlexGroup", 5375 "boxOrdinalGroup", 5376 "columnCount", 5377 "columns", 5378 "flex", 5379 "flexGrow", 5380 "flexPositive", 5381 "flexShrink", 5382 "flexNegative", 5383 "flexOrder", 5384 "gridRow", 5385 "gridRowEnd", 5386 "gridRowSpan", 5387 "gridRowStart", 5388 "gridColumn", 5389 "gridColumnEnd", 5390 "gridColumnSpan", 5391 "gridColumnStart", 5392 "msGridRow", 5393 "msGridRowSpan", 5394 "msGridColumn", 5395 "msGridColumnSpan", 5396 "fontWeight", 5397 "lineHeight", 5398 "opacity", 5399 "order", 5400 "orphans", 5401 "tabSize", 5402 "widows", 5403 "zIndex", 5404 "zoom", 5405 "WebkitLineClamp", 5406 "fillOpacity", 5407 "floodOpacity", 5408 "stopOpacity", 5409 "strokeDasharray", 5410 "strokeDashoffset", 5411 "strokeMiterlimit", 5412 "strokeOpacity", 5413 "strokeWidth" 5414]); 5415function resolveStyledPropsValue(name, value) { 5416 if (typeof value === "number") { 5417 return { [name]: unitLess.has(name) ? value.toString() : `${value}px` }; 5418 } 5419} 5420function resolveStyledProps(v) { 5421 return resolve_default(v, resolveStyledPropsValue); 5422} 5423var resolveStyledProps_default = resolveStyledProps; 5424
vendor: 404 bytes, lines 5425-5439
5425// node_modules/@suid/icons-material/node_modules/@suid/system/getThemeValue.js 5426function getThemeValue(theme, key, value) { 5427 if (typeof value !== "string") 5428 return value; 5429 const names = value.split("."); 5430 let ref = theme[key]; 5431 for (let i = 0; i < names.length; i++) { 5432 ref = ref?.[names[i]]; 5433 if (!ref) 5434 break; 5435 } 5436 return ref ?? value; 5437} 5438var getThemeValue_default2 = getThemeValue; 5439
vendor: 1,860 bytes, lines 5440-5494
5440// node_modules/@suid/icons-material/node_modules/@suid/system/spacing.js 5441function getPath(obj, path) { 5442 if (!path || typeof path !== "string") { 5443 return null; 5444 } 5445 return path.split(".").reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj); 5446} 5447function createUnaryUnit(theme, themeKey, defaultValue, propName) { 5448 const themeSpacing = getPath(theme, themeKey) || defaultValue; 5449 if (typeof themeSpacing === "number") { 5450 return (abs) => { 5451 if (typeof abs === "string") { 5452 return abs; 5453 } 5454 if (true) { 5455 if (typeof abs !== "number") { 5456 console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`); 5457 } 5458 } 5459 return themeSpacing * abs; 5460 }; 5461 } 5462 if (Array.isArray(themeSpacing)) { 5463 return (abs) => { 5464 if (typeof abs === "string") { 5465 return abs; 5466 } 5467 if (true) { 5468 if (!Number.isInteger(abs)) { 5469 console.error([ 5470 `MUI: The \`theme.${themeKey}\` array type cannot be combined with non integer values.You should either use an integer value that can be used as index, or define the \`theme.${themeKey}\` as a number.` 5471 ].join("\n")); 5472 } else if (abs > themeSpacing.length - 1) { 5473 console.error([ 5474 `MUI: The value provided (${abs}) overflows.`, 5475 `The supported values are: ${JSON.stringify(themeSpacing)}.`, 5476 `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.` 5477 ].join("\n")); 5478 } 5479 } 5480 return themeSpacing[abs]; 5481 }; 5482 } 5483 if (typeof themeSpacing === "function") { 5484 return themeSpacing; 5485 } 5486 if (true) { 5487 console.error([ 5488 `MUI: The \`theme.${themeKey}\` value (${themeSpacing}) is invalid.`, 5489 "It should be a number, an array or a function." 5490 ].join("\n")); 5491 } 5492 return () => void 0; 5493} 5494
vendor: 7,636 bytes, lines 5495-5702
5495// node_modules/@suid/icons-material/node_modules/@suid/system/createSystemProps.js 5496var dirMap = { 5497 x: ["Left", "Right"], 5498 y: ["Top", "Bottom"] 5499}; 5500function asPx(value) { 5501 return typeof value === "number" ? `${value}px` : value; 5502} 5503function customProp(name, onValue) { 5504 return (value, theme) => onValue(name, value, theme); 5505} 5506function prop(name, onValue) { 5507 return onValue ? (value, theme) => ({ 5508 [name]: onValue(name, value, theme) 5509 }) : (value) => ({ [name]: value }); 5510} 5511function pxProp(name) { 5512 return prop(name, (name2, value) => asPx(value)); 5513} 5514function mProp(name, suffix, onValue) { 5515 const names = suffix.map((v) => `${name}${v}`); 5516 return onValue ? (value, theme) => names.reduce((result, name2) => { 5517 result[name2] = onValue(name2, value, theme); 5518 return result; 5519 }, {}) : (value) => names.reduce((result, name2) => { 5520 result[name2] = value; 5521 return result; 5522 }, {}); 5523} 5524function createSystemProps() { 5525 return { 5526 ...createSystemDisplayProps(), 5527 ...createSystemFlexboxProps(), 5528 ...createSystemGridProps(), 5529 ...createSystemPositionProps(), 5530 ...createSystemPaletteProps(), 5531 ...createSystemSizingProps(), 5532 ...createSystemBorderProps(), 5533 ...createSystemSpacingProps(), 5534 ...createSystemTypographyProps() 5535 }; 5536} 5537function createSystemDisplayProps() { 5538 return { 5539 displayPrint: customProp("displayPrint", (name, display) => ({ 5540 "@media print": { 5541 display 5542 } 5543 })), 5544 displayRaw: prop("display"), 5545 overflow: prop("overflow"), 5546 textOverflow: prop("textOverflow"), 5547 visibility: prop("visibility"), 5548 whiteSpace: prop("whiteSpace") 5549 }; 5550} 5551function createSystemFlexboxProps() { 5552 return { 5553 flexBasis: prop("flexBasis"), 5554 flexDirection: prop("flexDirection"), 5555 flexWrap: prop("flexWrap"), 5556 justifyContent: prop("justifyContent"), 5557 alignItems: prop("alignItems"), 5558 alignContent: prop("alignContent"), 5559 order: prop("order"), 5560 flex: prop("flex"), 5561 flexGrow: prop("flexGrow"), 5562 flexShrink: prop("flexShrink"), 5563 alignSelf: prop("alignSelf"), 5564 justifyItems: prop("justifyItems"), 5565 justifySelf: prop("justifySelf") 5566 }; 5567} 5568function createSystemGridProps() { 5569 const spacing = (name, value, theme) => createUnaryUnit(theme, "spacing", 8, name)(value); 5570 return { 5571 gap: prop("gap", spacing), 5572 columnGap: prop("columnGap", spacing), 5573 rowGap: prop("rowGap", spacing), 5574 gridColumn: prop("gridColumn"), 5575 gridRow: prop("gridRow"), 5576 gridAutoFlow: prop("gridAutoFlow"), 5577 gridAutoColumns: prop("gridAutoColumns"), 5578 gridAutoRows: prop("gridAutoRows"), 5579 gridTemplateColumns: prop("gridTemplateColumns"), 5580 gridTemplateRows: prop("gridTemplateRows"), 5581 gridTemplateAreas: prop("gridTemplateAreas"), 5582 gridArea: prop("gridArea") 5583 }; 5584} 5585function createSystemPositionProps() { 5586 return { 5587 position: prop("position"), 5588 zIndex: prop("zIndex", (name, value, theme) => theme.zIndex?.[name] ?? value), 5589 top: pxProp("top"), 5590 right: pxProp("right"), 5591 bottom: pxProp("bottom"), 5592 left: pxProp("left") 5593 }; 5594} 5595function createSystemPaletteProps() { 5596 const paletteValue = (name, value, theme) => getThemeValue_default2(theme, "palette", value); 5597 return { 5598 color: prop("color", paletteValue), 5599 bgcolor: prop("backgroundColor", paletteValue), 5600 backgroundColor: prop("backgroundColor", paletteValue) 5601 }; 5602} 5603function createSystemSizingProps() { 5604 const onValue = (name, value, theme) => { 5605 if (name === "maxWidth") { 5606 value = theme.breakpoints.values[name] ?? value; 5607 } 5608 if (typeof value === "number") { 5609 value = value > 0 && value <= 1 ? `${value * 100}%` : `${value}px`; 5610 } 5611 return value; 5612 }; 5613 return { 5614 width: prop("width", onValue), 5615 maxWidth: prop("maxWidth", onValue), 5616 minWidth: prop("minWidth", onValue), 5617 height: prop("height", onValue), 5618 maxHeight: prop("maxHeight", onValue), 5619 minHeight: prop("minHeight", onValue), 5620 boxSizing: prop("boxSizing", onValue) 5621 }; 5622} 5623function createSystemBorderProps() { 5624 const borderValue = (name, value) => typeof value === "number" ? `${value}px solid` : value; 5625 const paletteValue = (name, value, theme) => getThemeValue_default2(theme, "palette", value); 5626 return { 5627 border: prop("border", borderValue), 5628 borderTop: prop("borderTop", borderValue), 5629 borderRight: prop("borderRight", borderValue), 5630 borderBottom: prop("borderBottom", borderValue), 5631 borderLeft: prop("borderLeft", borderValue), 5632 borderColor: prop("borderColor", paletteValue), 5633 borderTopColor: prop("borderTopColor", paletteValue), 5634 borderRightColor: prop("borderRightColor", paletteValue), 5635 borderBottomColor: prop("borderBottomColor", paletteValue), 5636 borderLeftColor: prop("borderLeftColor", paletteValue), 5637 borderRadius: prop("borderRadius", (name, value, theme) => typeof value === "number" ? `${theme.shape.borderRadius * value}px` : value) 5638 }; 5639} 5640function createSystemTypographyProps() { 5641 const typographyValue = (name, value, theme) => getThemeValue_default2(theme, "typography", value); 5642 return { 5643 typography: customProp("typography", (name, value, theme) => getThemeValue_default2(theme, "typography", value)), 5644 fontFamily: prop("fontFamily", typographyValue), 5645 fontSize: prop("fontSize", (name, value, theme) => asPx(typographyValue(name, value, theme))), 5646 fontStyle: prop("fontStyle", typographyValue), 5647 fontWeight: prop("fontWeight", typographyValue), 5648 letterSpacing: pxProp("letterSpacing"), 5649 lineHeight: prop("lineHeight"), 5650 textAlign: prop("textAlign"), 5651 textTransform: prop("textTransform") 5652 }; 5653} 5654function createSystemSpacingProps() { 5655 const spacing = (name, value, theme) => theme.spacing(value); 5656 const m = "margin"; 5657 const p = "padding"; 5658 return { 5659 m: prop(m, spacing), 5660 mt: prop("marginTop", spacing), 5661 mr: prop("marginRight", spacing), 5662 mb: prop("marginBottom", spacing), 5663 ml: prop("marginLeft", spacing), 5664 mx: mProp(m, dirMap["x"], spacing), 5665 my: mProp(m, dirMap["y"], spacing), 5666 margin: prop(m, spacing), 5667 marginTop: prop("marginTop", spacing), 5668 marginRight: prop("marginRight", spacing), 5669 marginBottom: prop("marginBottom", spacing), 5670 marginLeft: prop("marginLeft", spacing), 5671 marginX: mProp(m, dirMap["x"], spacing), 5672 marginY: mProp(m, dirMap["y"], spacing), 5673 marginInline: mProp(m, ["Inline", "InlineStart"], spacing), 5674 marginInlineStart: prop("marginInlineStart", spacing), 5675 marginInlineEnd: prop("marginInlineEnd", spacing), 5676 marginBlock: mProp(m, ["BlockStart", "BlockEnd"], spacing), 5677 marginBlockStart: prop("marginBlockStart", spacing), 5678 marginBlockEnd: prop("marginBlockEnd", spacing), 5679 p: prop(p, spacing), 5680 pt: prop("paddingTop", spacing), 5681 pr: prop("paddingRight", spacing), 5682 pb: prop("paddingBottom", spacing), 5683 pl: prop("paddingLeft", spacing), 5684 px: mProp(p, dirMap["x"], spacing), 5685 py: mProp(p, dirMap["y"], spacing), 5686 padding: prop(p, spacing), 5687 paddingTop: prop("paddingTop", spacing), 5688 paddingRight: prop("paddingRight", spacing), 5689 paddingBottom: prop("paddingBottom", spacing), 5690 paddingLeft: prop("paddingLeft", spacing), 5691 paddingX: mProp(p, dirMap["x"], spacing), 5692 paddingY: mProp(p, dirMap["y"], spacing), 5693 paddingInline: mProp(p, ["Inline", "InlineStart"], spacing), 5694 paddingInlineStart: prop("paddingInlineStart", spacing), 5695 paddingInlineEnd: prop("paddingInlineEnd", spacing), 5696 paddingBlock: mProp(p, ["BlockStart", "BlockEnd"], spacing), 5697 paddingBlockStart: prop("paddingBlockStart", spacing), 5698 paddingBlockEnd: prop("paddingBlockEnd", spacing) 5699 }; 5700} 5701var createSystemProps_default = createSystemProps; 5702
vendor: 214 bytes, lines 5703-5707
5703// node_modules/@suid/icons-material/node_modules/@suid/system/systemProps.js 5704var systemProps = createSystemProps_default(); 5705var systemPropNames2 = Object.keys(systemProps); 5706var systemProps_default = systemProps; 5707
vendor: 1,042 bytes, lines 5708-5734
5708// node_modules/@suid/icons-material/node_modules/@suid/system/resolveSxProps.js 5709function resolveSystemPropsValue(name, value, theme) { 5710 return systemProps_default[name](value, theme); 5711} 5712function resolveSxPropsValue(name, value, theme) { 5713 return name in systemProps_default ? resolveSystemPropsValue(name, value, theme) : resolveStyledPropsValue(name, value); 5714} 5715function resolveSxProps(object, theme) { 5716 return resolve_default(object, (name, value) => { 5717 if (typeof value === "function") { 5718 value = value(theme); 5719 } 5720 if (value === null || value === void 0) { 5721 return value; 5722 } else if (typeof value === "object") { 5723 const sortedCss = {}; 5724 for (const key of theme.breakpoints.keys) { 5725 sortedCss[theme.breakpoints.up(key)] = {}; 5726 } 5727 return Object.assign(sortedCss, handleBreakpoints2({ theme }, value, (v) => resolveSxPropsValue(name, v, theme) ?? { [name]: v })); 5728 } else { 5729 return resolveSxPropsValue(name, value, theme); 5730 } 5731 }); 5732} 5733var resolveSxProps_default = resolveSxProps; 5734
vendor: 3,501 bytes, lines 5735-5827
5735// node_modules/@suid/icons-material/node_modules/@suid/system/createStyled.jsx 5736var skipProps2 = ["ownerState", "theme", "sx", "as"]; 5737function resolveStyles(useTheme4, className2, styles3, inProps) { 5738 return createMemo(() => { 5739 const theme = useTheme4(); 5740 return styles3.reduce((result, style2) => { 5741 let styledProps; 5742 if (typeof style2 === "function") { 5743 styledProps = style2({ 5744 ownerState: inProps.ownerState, 5745 theme, 5746 sx: inProps.sx, 5747 as: inProps.as, 5748 props: inProps 5749 }); 5750 } else if (style2) { 5751 styledProps = style2; 5752 } 5753 if (styledProps) result.push({ 5754 ["name"]: className2, 5755 ...resolveStyledProps_default(styledProps) 5756 }); 5757 return result; 5758 }, []); 5759 }); 5760} 5761function isStyledComponent(input) { 5762 return typeof input === "function" && "__styled" in input && !!input.__styled; 5763} 5764function createStyled(config) { 5765 return function styled2(Component, options = {}) { 5766 let className2; 5767 if (options.name) { 5768 const slot = options.slot || "Root"; 5769 className2 = `${options.name}-${slot.slice(0, 1).toLowerCase() + slot.slice(1)}`; 5770 } else { 5771 className2 = `styled-${randomString3()}`; 5772 } 5773 return function(...styles3) { 5774 function StyledComponent(inProps) { 5775 const $useTheme = () => inProps.theme ?? (config?.onUseTheme ? config.onUseTheme() : useTheme_default2()); 5776 const [, otherProps] = splitProps(inProps, options.skipProps ?? skipProps2); 5777 const inStyles = resolveStyles( 5778 $useTheme, 5779 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion 5780 options.name ? className2 : "css", 5781 styles3, 5782 inProps 5783 ); 5784 const inSx = createMemo(() => !options.skipSx && inProps.sx ? Array.isArray(inProps.sx) ? inProps.sx : [inProps.sx] : []); 5785 const sx = () => { 5786 const theme = $useTheme(); 5787 return [...inStyles().map((v) => ({ 5788 ...v, 5789 __resolved: true 5790 })), ...inSx().map((sx2) => sx2.__resolved ? sx2 : resolveSxProps_default(sx2, theme))]; 5791 }; 5792 const styledComponent = createMemo(() => isStyledComponent(Component)); 5793 const $component = () => inProps.as && !styledComponent() ? inProps.as : Component; 5794 const styled$Component = createMemo(() => isStyledComponent($component())); 5795 const as = () => inProps.as && styledComponent() ? inProps.as : void 0; 5796 const styledProps = () => styled$Component() && { 5797 ownerState: inProps.ownerState, 5798 get sx() { 5799 return sx(); 5800 } 5801 }; 5802 const styleClassName = createStyle_default2(() => styled$Component() ? void 0 : sx()); 5803 const component = () => styled$Component() ? otherProps.component : null; 5804 return createComponent(Dynamic_default2, mergeProps(otherProps, { 5805 get $component() { 5806 return $component(); 5807 }, 5808 get component() { 5809 return component(); 5810 }, 5811 get as() { 5812 return as(); 5813 } 5814 }, styledProps, { 5815 get ["class"]() { 5816 return clsx_m_default([.../* @__PURE__ */ new Set([inProps.class, className2, styleClassName()])]); 5817 } 5818 })); 5819 } 5820 StyledComponent["__styled"] = true; 5821 if (className2) StyledComponent.toString = () => `.${className2}`; 5822 return StyledComponent; 5823 }; 5824 }; 5825} 5826var createStyled_default2 = createStyled; 5827
vendor: 223 bytes, lines 5828-5833
5828// node_modules/@suid/icons-material/node_modules/@suid/material/styles/styled.jsx 5829var skipRootProps2 = [...skipProps2, "classes"]; 5830var styled_default3 = createStyled_default2({ 5831 onUseTheme: () => useTheme_default3() 5832}); 5833
vendor: 176 bytes, lines 5834-5837
5834// node_modules/@suid/icons-material/node_modules/@suid/material/SvgIcon/SvgIconContext.jsx 5835var SvgIconContext = createContext(); 5836var SvgIconContext_default = SvgIconContext; 5837
vendor: 995 bytes, lines 5838-5871
5838// node_modules/@suid/icons-material/node_modules/@suid/base/generateUtilityClass.js 5839var defaultGenerator = (componentName) => componentName; 5840var createClassNameGenerator = () => { 5841 let generate = defaultGenerator; 5842 return { 5843 configure(generator) { 5844 generate = generator; 5845 }, 5846 generate(componentName) { 5847 return generate(componentName); 5848 }, 5849 reset() { 5850 generate = defaultGenerator; 5851 } 5852 }; 5853}; 5854var ClassNameGenerator = createClassNameGenerator(); 5855var globalStateClassesMapping = { 5856 active: "Mui-active", 5857 checked: "Mui-checked", 5858 completed: "Mui-completed", 5859 disabled: "Mui-disabled", 5860 error: "Mui-error", 5861 expanded: "Mui-expanded", 5862 focused: "Mui-focused", 5863 focusVisible: "Mui-focusVisible", 5864 required: "Mui-required", 5865 selected: "Mui-selected" 5866}; 5867function generateUtilityClass2(componentName, slot) { 5868 const globalStateClass = globalStateClassesMapping[slot]; 5869 return globalStateClass || `${ClassNameGenerator.generate(componentName)}-${slot}`; 5870} 5871
vendor: 282 bytes, lines 5872-5880
5872// node_modules/@suid/icons-material/node_modules/@suid/base/generateUtilityClasses.js 5873function generateUtilityClasses2(componentName, slots) { 5874 const result = {}; 5875 slots.forEach((slot) => { 5876 result[slot] = generateUtilityClass2(componentName, slot); 5877 }); 5878 return result; 5879} 5880
vendor: 681 bytes, lines 5881-5901
5881// node_modules/@suid/icons-material/node_modules/@suid/base/composeClasses.js 5882function composeClasses2(slots, getUtilityClass, classes) { 5883 const output = {}; 5884 Object.keys(slots).forEach( 5885 // `Objet.keys(slots)` can't be wider than `T` because we infer `T` from `slots`. 5886 // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208 5887 (slot) => { 5888 output[slot] = slots[slot].reduce((acc, key) => { 5889 if (key) { 5890 if (classes && classes[key]) { 5891 acc.push(classes[key]); 5892 } 5893 acc.push(getUtilityClass(key)); 5894 } 5895 return acc; 5896 }, []).join(" "); 5897 } 5898 ); 5899 return output; 5900} 5901
vendor: 429 bytes, lines 5902-5918
5902// node_modules/@suid/icons-material/node_modules/@suid/material/SvgIcon/svgIconClasses.js 5903function getSvgIconUtilityClass(slot) { 5904 return generateUtilityClass2("MuiSvgIcon", slot); 5905} 5906var svgIconClasses = generateUtilityClasses2("MuiSvgIcon", [ 5907 "root", 5908 "colorPrimary", 5909 "colorSecondary", 5910 "colorAction", 5911 "colorError", 5912 "colorDisabled", 5913 "fontSizeInherit", 5914 "fontSizeSmall", 5915 "fontSizeMedium", 5916 "fontSizeLarge" 5917]); 5918
vendor: 461 bytes, lines 5919-5938
5919// node_modules/@suid/icons-material/node_modules/@suid/system/inspect.js 5920var $INSPECT = Symbol("solid-inspect"); 5921var inspectionEnabled = false; 5922function componentTrap(fn) { 5923 function Component(props) { 5924 if (inspectionEnabled) 5925 return { 5926 Component, 5927 props, 5928 $INSPECT 5929 }; 5930 return fn(props); 5931 } 5932 Object.defineProperty(Component, "name", { 5933 value: fn.name 5934 }); 5935 Component.toString = fn.toString; 5936 return Component; 5937} 5938
vendor: 2,348 bytes, lines 5939-6011
5939// node_modules/@suid/icons-material/node_modules/@suid/base/createComponentFactory.js 5940function createComponentFactory() { 5941 return function(options) { 5942 function useClasses(ownerState) { 5943 const haveSlotClasses = !!options.slotClasses; 5944 const compose = () => { 5945 if (!options.slotClasses) 5946 throw new Error(`'slotClasses' option is not defined`); 5947 if (!options.utilityClass) 5948 throw new Error(`'utilityClass' option is not defined`); 5949 return composeClasses2(options.slotClasses(ownerState), options.utilityClass, ownerState["classes"] ?? ""); 5950 }; 5951 const classes = createMutable({}); 5952 if (haveSlotClasses) 5953 createComputed(() => { 5954 const result = compose(); 5955 batch(() => { 5956 for (const slot in result) 5957 classes[slot] = result[slot]; 5958 }); 5959 }); 5960 return classes; 5961 } 5962 function splitInProps(allProps) { 5963 const [props, otherProps] = splitProps(allProps, options.selfPropNames); 5964 return { allProps, props, otherProps }; 5965 } 5966 function useThemeProps3(input) { 5967 return useThemeProps({ 5968 propDefaults: options.propDefaults, 5969 ...input, 5970 name: options.name 5971 }); 5972 } 5973 function useProps(props) { 5974 const themeProps = useThemeProps3({ props }); 5975 return splitInProps(themeProps); 5976 } 5977 function defineComponent2(cb, styled2 = true) { 5978 cb = componentTrap(cb); 5979 cb.toString = () => `.${options.name}-root`; 5980 if (styled2) 5981 cb.__styled = true; 5982 return cb; 5983 } 5984 function component(cb) { 5985 const Component = defineComponent2(function Component2(inProps) { 5986 const { allProps, otherProps, props } = useProps(inProps); 5987 const classes = options.autoCallUseClasses ?? true ? useClasses(allProps) : {}; 5988 return cb({ 5989 allProps, 5990 otherProps, 5991 props, 5992 classes 5993 }); 5994 }); 5995 Object.defineProperty(Component, "name", { value: cb.name }); 5996 return Component; 5997 } 5998 return { 5999 name: options.name, 6000 selfPropNames: options.selfPropNames, 6001 component, 6002 defineComponent: defineComponent2, 6003 useClasses, 6004 useThemeProps: useThemeProps3, 6005 useProps, 6006 splitInProps 6007 }; 6008 }; 6009} 6010var createComponentFactory_default2 = createComponentFactory; 6011
vendor: 2,888 bytes, lines 6012-6113
6012// node_modules/@suid/icons-material/node_modules/@suid/material/SvgIcon/SvgIcon.jsx 6013var _tmpl$3 = /* @__PURE__ */ template(`<title>`); 6014var $22 = createComponentFactory_default2()({ 6015 name: "MuiSvgIcon", 6016 selfPropNames: ["children", "classes", "color", "fontSize", "htmlColor", "inheritViewBox", "shapeRendering", "titleAccess", "viewBox"], 6017 propDefaults: ({ 6018 set 6019 }) => { 6020 const context = useContext(SvgIconContext_default); 6021 return set({ 6022 component: "svg", 6023 color: "inherit", 6024 get fontSize() { 6025 return context?.fontSize ?? "medium"; 6026 }, 6027 inheritViewBox: false, 6028 viewBox: "0 0 24 24" 6029 }); 6030 }, 6031 utilityClass: getSvgIconUtilityClass, 6032 slotClasses: (o) => ({ 6033 root: ["root", o.color !== "inherit" && `color${capitalize3(o.color)}`, `fontSize${capitalize3(o.fontSize)}`] 6034 }) 6035}); 6036var SvgIconRoot = styled_default3("svg", { 6037 name: "MuiSvgIcon", 6038 slot: "Root", 6039 overridesResolver: (props, styles3) => { 6040 const { 6041 ownerState 6042 } = props; 6043 return [styles3.root, ownerState.color !== "inherit" && styles3[`color${capitalize3(ownerState.color)}`], styles3[`fontSize${capitalize3(ownerState.fontSize)}`]]; 6044 } 6045})(({ 6046 theme, 6047 ownerState 6048}) => ({ 6049 userSelect: "none", 6050 width: "1em", 6051 height: "1em", 6052 display: "inline-block", 6053 fill: "currentColor", 6054 flexShrink: 0, 6055 transition: theme.transitions?.create?.("fill", { 6056 duration: theme.transitions?.duration?.shorter 6057 }), 6058 fontSize: { 6059 inherit: "inherit", 6060 small: theme.typography?.pxToRem?.(20) || "1.25rem", 6061 medium: theme.typography?.pxToRem?.(24) || "1.5rem", 6062 large: theme.typography?.pxToRem?.(35) || "2.1875" 6063 }[ownerState.fontSize], 6064 // TODO v5 deprecate, v6 remove for sx 6065 color: theme.palette?.[ownerState.color]?.main ?? { 6066 action: theme.palette?.action?.active, 6067 disabled: theme.palette?.action?.disabled, 6068 inherit: void 0 6069 }[ownerState.color] 6070})); 6071var SvgIcon = $22.component(function SvgIcon2({ 6072 allProps, 6073 props, 6074 otherProps, 6075 classes 6076}) { 6077 return createComponent(SvgIconRoot, mergeProps({ 6078 get ["aria-hidden"]() { 6079 return props.titleAccess ? void 0 : true; 6080 }, 6081 get role() { 6082 return props.titleAccess ? "img" : void 0; 6083 }, 6084 get viewBox() { 6085 return !props.inheritViewBox ? props.viewBox : void 0; 6086 } 6087 }, { 6088 ["focusable"]: "false" 6089 }, { 6090 get color() { 6091 return props.htmlColor; 6092 } 6093 }, otherProps, { 6094 get ["class"]() { 6095 return clsx_m_default(classes.root, otherProps.class); 6096 }, 6097 ownerState: allProps, 6098 get children() { 6099 return [memo(() => props.children), createComponent(Show, { 6100 get when() { 6101 return !!props.titleAccess; 6102 }, 6103 get children() { 6104 const _el$ = _tmpl$3(); 6105 insert(_el$, () => props.titleAccess); 6106 return _el$; 6107 } 6108 })]; 6109 } 6110 })); 6111}); 6112var SvgIcon_default = SvgIcon; 6113
vendor: 313 bytes, lines 6114-6123
6114// node_modules/@suid/icons-material/node_modules/@suid/material/utils/createSvgIcon.jsx 6115function createSvgIcon(path, displayName) { 6116 const Component = (props) => createComponent(SvgIcon_default, mergeProps({ 6117 "data-testid": `${displayName}Icon` 6118 }, props, { 6119 children: path 6120 })); 6121 return Component; 6122} 6123
vendor: 425 bytes, lines 6124-6127
6124// node_modules/@suid/icons-material/FolderOpenRounded.jsx 6125var _tmpl$4 = /* @__PURE__ */ template(`<svg><path d="M20 6h-8l-1.41-1.41C10.21 4.21 9.7 4 9.17 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-1 12H5c-.55 0-1-.45-1-1V9c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1z"></svg>`, false, true); 6126var FolderOpenRounded_default = createSvgIcon(() => _tmpl$4(), "FolderOpenRounded"); 6127
vendor: 208 bytes, lines 6128-6136
6128// node_modules/@suid/material/List/ListContext.js 6129var ListContext = createContext({ 6130 dense: false 6131}); 6132function useListContext() { 6133 return useContext(ListContext); 6134} 6135var ListContext_default = ListContext; 6136
vendor: 245 bytes, lines 6137-6147
6137// node_modules/@suid/material/List/listClasses.js 6138function getListUtilityClass(slot) { 6139 return generateUtilityClass("MuiList", slot); 6140} 6141var listClasses = generateUtilityClasses("MuiList", [ 6142 "root", 6143 "padding", 6144 "dense", 6145 "subheader" 6146]); 6147
vendor: 1,673 bytes, lines 6148-6214
6148// node_modules/@suid/material/List/List.jsx 6149var $23 = createComponentFactory_default()({ 6150 name: "MuiList", 6151 selfPropNames: ["children", "classes", "dense", "disablePadding", "subheader"], 6152 propDefaults: ({ 6153 set 6154 }) => set({ 6155 component: "ul", 6156 dense: false, 6157 disablePadding: false 6158 }), 6159 utilityClass: getListUtilityClass, 6160 slotClasses: (ownerState) => ({ 6161 root: ["root", !ownerState.disablePadding && "padding", ownerState.dense && "dense", !!ownerState.subheader && "subheader"] 6162 }) 6163}); 6164var ListRoot = styled_default("ul", { 6165 name: "MuiList", 6166 slot: "Root", 6167 overridesResolver: (props, styles3) => { 6168 const { 6169 ownerState 6170 } = props; 6171 return [styles3.root, !ownerState.disablePadding && styles3.padding, ownerState.dense && styles3.dense, ownerState.subheader && styles3.subheader]; 6172 } 6173})(({ 6174 ownerState 6175}) => ({ 6176 listStyle: "none", 6177 margin: 0, 6178 padding: 0, 6179 position: "relative", 6180 ...!ownerState.disablePadding && { 6181 paddingTop: 8, 6182 paddingBottom: 8 6183 }, 6184 ...ownerState.subheader && { 6185 paddingTop: 0 6186 } 6187})); 6188var List = $23.component(function List2({ 6189 allProps, 6190 classes, 6191 otherProps, 6192 props 6193}) { 6194 return createComponent(ListContext_default.Provider, { 6195 value: { 6196 get dense() { 6197 return props.dense; 6198 } 6199 }, 6200 get children() { 6201 return createComponent(ListRoot, mergeProps(otherProps, { 6202 get ["class"]() { 6203 return clsx_m_default(classes.root, otherProps.class); 6204 }, 6205 ownerState: allProps, 6206 get children() { 6207 return [memo(() => props.subheader), memo(() => props.children)]; 6208 } 6209 })); 6210 } 6211 }); 6212}); 6213var List_default = List; 6214
vendor: 5,867 bytes, lines 6215-6386
6215// node_modules/@suid/material/MenuList/MenuList.jsx 6216var $24 = createComponentFactory_default()({ 6217 name: "MuiMenuList", 6218 selfPropNames: ["autoFocus", "autoFocusItem", "children", "disabledItemsFocusable", "disableListWrap", "variant"] 6219}); 6220function nextItem(list, item, disableListWrap) { 6221 if (list === item) { 6222 return list.firstChild; 6223 } 6224 if (item && item.nextElementSibling) { 6225 return item.nextElementSibling; 6226 } 6227 return disableListWrap ? void 0 : list.firstChild; 6228} 6229function previousItem(list, item, disableListWrap) { 6230 if (list === item) { 6231 return disableListWrap ? list.firstChild : list.lastChild; 6232 } 6233 if (item && item.previousElementSibling) { 6234 return item.previousElementSibling; 6235 } 6236 return disableListWrap ? void 0 : list.lastChild; 6237} 6238function textCriteriaMatches(nextFocus, textCriteria) { 6239 if (textCriteria === void 0) { 6240 return true; 6241 } 6242 let text = nextFocus.innerText; 6243 if (text === void 0) { 6244 text = nextFocus.textContent ?? ""; 6245 } 6246 text = text.trim().toLowerCase(); 6247 if (text.length === 0) { 6248 return false; 6249 } 6250 if (textCriteria.repeating) { 6251 return text[0] === textCriteria.keys[0]; 6252 } 6253 return text.indexOf(textCriteria.keys.join("")) === 0; 6254} 6255function moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) { 6256 let wrappedOnce = false; 6257 let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false); 6258 while (nextFocus) { 6259 if (nextFocus === list.firstChild) { 6260 if (wrappedOnce) { 6261 return false; 6262 } 6263 wrappedOnce = true; 6264 } 6265 const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus["disabled"] || nextFocus.getAttribute("aria-disabled") === "true"; 6266 if (!nextFocus.hasAttribute("tabindex") || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) { 6267 nextFocus = traversalFunction(list, nextFocus, disableListWrap); 6268 } else { 6269 nextFocus.focus(); 6270 return true; 6271 } 6272 } 6273 return false; 6274} 6275var MenuList = $24.defineComponent(function MenuList2(props) { 6276 const listRef = createRef_default(props); 6277 const [, other] = splitProps(props, ["autoFocus", "autoFocusItem", "children", "class", "disabledItemsFocusable", "disableListWrap", "onKeyDown", "variant"]); 6278 const baseProps = mergeProps({ 6279 autoFocus: false, 6280 autoFocusItem: false, 6281 disabledItemsFocusable: false, 6282 disableListWrap: false, 6283 variant: "selectedMenu" 6284 }, props); 6285 const criteria = { 6286 keys: [], 6287 repeating: true, 6288 previousKeyMatched: true, 6289 lastTime: 0 6290 }; 6291 createEffect(() => { 6292 if (baseProps.autoFocus) { 6293 listRef.current.focus(); 6294 } 6295 }, [baseProps.autoFocus]); 6296 const handleKeyDown2 = (event) => { 6297 const list = listRef.current; 6298 const key = event.key; 6299 const currentFocus = ownerDocument2(list).activeElement; 6300 if (key === "ArrowDown") { 6301 event.preventDefault(); 6302 moveFocus(list, currentFocus, baseProps.disableListWrap, baseProps.disabledItemsFocusable, nextItem); 6303 } else if (key === "ArrowUp") { 6304 event.preventDefault(); 6305 moveFocus(list, currentFocus, baseProps.disableListWrap, baseProps.disabledItemsFocusable, previousItem); 6306 } else if (key === "Home") { 6307 event.preventDefault(); 6308 moveFocus(list, void 0, baseProps.disableListWrap, baseProps.disabledItemsFocusable, nextItem); 6309 } else if (key === "End") { 6310 event.preventDefault(); 6311 moveFocus(list, void 0, baseProps.disableListWrap, baseProps.disabledItemsFocusable, previousItem); 6312 } else if (key.length === 1) { 6313 const lowerKey = key.toLowerCase(); 6314 const currTime = performance.now(); 6315 if (criteria.keys.length > 0) { 6316 if (currTime - criteria.lastTime > 500) { 6317 criteria.keys = []; 6318 criteria.repeating = true; 6319 criteria.previousKeyMatched = true; 6320 } else if (criteria.repeating && lowerKey !== criteria.keys[0]) { 6321 criteria.repeating = false; 6322 } 6323 } 6324 criteria.lastTime = currTime; 6325 criteria.keys.push(lowerKey); 6326 const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria); 6327 if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, baseProps.disabledItemsFocusable, nextItem, criteria))) { 6328 event.preventDefault(); 6329 } else { 6330 criteria.previousKeyMatched = false; 6331 } 6332 } 6333 if (typeof props.onKeyDown === "function") { 6334 props.onKeyDown(event); 6335 } 6336 }; 6337 const children2 = inspectChildren(() => props.children); 6338 const activeItemIndex = createMemo(() => { 6339 let result = -1; 6340 let index = 0; 6341 for (const child of children2()) { 6342 if (isComponentObject(child)) { 6343 if (!child.props.disabled) { 6344 if (baseProps.variant === "selectedMenu" && child.props.selected) { 6345 result = index; 6346 } else if (result === -1) { 6347 result = index; 6348 } 6349 } 6350 } 6351 index++; 6352 } 6353 return result; 6354 }); 6355 const items = mapArray(children2, (child, index) => { 6356 if (isComponentObject(child)) { 6357 return createComponent(child.Component, mergeProps(child.props, { 6358 get autoFocus() { 6359 if (index() === activeItemIndex() && baseProps.autoFocusItem) return true; 6360 }, 6361 get tabIndex() { 6362 if (child.props.tabIndex === void 0 && index() === activeItemIndex() && baseProps.variant) return 0; 6363 } 6364 })); 6365 } else { 6366 return child; 6367 } 6368 }); 6369 return createComponent(List_default, mergeProps({ 6370 role: "menu", 6371 ref: listRef, 6372 get ["class"]() { 6373 return props.class; 6374 }, 6375 onKeyDown: handleKeyDown2, 6376 get tabIndex() { 6377 return baseProps.autoFocus ? 0 : -1; 6378 } 6379 }, other, { 6380 get children() { 6381 return items(); 6382 } 6383 })); 6384}); 6385var MenuList_default = MenuList; 6386
vendor: 3,851 bytes, lines 6387-6529
6387// node_modules/@suid/material/Grow/Grow.jsx 6388var $25 = createComponentFactory_default()({ 6389 name: "MuiGrow", 6390 propDefaults: ({ 6391 set 6392 }) => set({ 6393 appear: true, 6394 timeout: "auto" 6395 }), 6396 selfPropNames: ["appear", "children", "easing", "in", "ref", "timeout"] 6397}); 6398function getScale(value) { 6399 return `scale(${value}, ${value ** 2})`; 6400} 6401var styles = { 6402 entering: { 6403 opacity: 1, 6404 transform: getScale(1) 6405 }, 6406 entered: { 6407 opacity: 1, 6408 transform: "none" 6409 } 6410}; 6411var Grow = $25.component(function Grow2({ 6412 props, 6413 otherProps 6414}) { 6415 const autoTimeout = { 6416 current: void 0 6417 }; 6418 const theme = useTheme_default(); 6419 const resolved = children(() => props.children); 6420 let timer; 6421 onCleanup(() => timer && clearTimeout(timer)); 6422 return createComponent(Transition_default, mergeProps(otherProps, { 6423 get appear() { 6424 return props.appear; 6425 }, 6426 get ["in"]() { 6427 return props.in; 6428 }, 6429 onEnter: () => { 6430 const node = resolved(); 6431 reflow(node); 6432 const { 6433 duration: transitionDuration, 6434 delay, 6435 easing: transitionTimingFunction 6436 } = getTransitionProps({ 6437 style: otherProps.style, 6438 timeout: props.timeout, 6439 easing: props.easing 6440 }, { 6441 mode: "enter" 6442 }); 6443 let duration2; 6444 if (props.timeout === "auto") { 6445 duration2 = theme.transitions.getAutoHeightDuration(node.clientHeight); 6446 autoTimeout.current = duration2; 6447 } else { 6448 duration2 = transitionDuration; 6449 } 6450 node.style.transition = [theme.transitions.create("opacity", { 6451 duration: duration2, 6452 delay 6453 }), theme.transitions.create("transform", { 6454 duration: Number(duration2) * 0.666, 6455 delay, 6456 easing: transitionTimingFunction 6457 })].join(","); 6458 otherProps.onEnter?.(); 6459 }, 6460 onExit: () => { 6461 const node = resolved(); 6462 const { 6463 duration: transitionDuration, 6464 delay, 6465 easing: transitionTimingFunction 6466 } = getTransitionProps({ 6467 style: otherProps.style, 6468 timeout: props.timeout, 6469 easing: props.easing 6470 }, { 6471 mode: "exit" 6472 }); 6473 let duration2; 6474 if (props.timeout === "auto") { 6475 duration2 = theme.transitions.getAutoHeightDuration(node.clientHeight); 6476 autoTimeout.current = duration2; 6477 } else { 6478 duration2 = transitionDuration; 6479 } 6480 node.style.transition = [theme.transitions.create("opacity", { 6481 duration: duration2, 6482 delay 6483 }), theme.transitions.create("transform", { 6484 duration: Number(duration2) * 0.666, 6485 delay: delay || Number(duration2) * 0.333, 6486 easing: transitionTimingFunction 6487 })].join(","); 6488 node.style.opacity = "0"; 6489 node.style.transform = getScale(0.75); 6490 otherProps.onExit?.(); 6491 }, 6492 addEndListener: (next) => { 6493 if (props.timeout === "auto") { 6494 timer = setTimeout(next, autoTimeout.current || 0); 6495 } 6496 if (otherProps.addEndListener) { 6497 otherProps.addEndListener(next); 6498 } 6499 }, 6500 get timeout() { 6501 return props.timeout === "auto" ? void 0 : props.timeout; 6502 }, 6503 children: (state) => { 6504 const element = resolved(); 6505 element.style.opacity = "0"; 6506 element.style.transform = getScale(0.75); 6507 if (state === "exited" && !props.in) { 6508 element.style.visibility = "hidden"; 6509 } else { 6510 element.style.removeProperty("visibility"); 6511 } 6512 const style2 = { 6513 ...styles[state] || {}, 6514 ...otherProps.style || {} 6515 }; 6516 for (const name in style2) { 6517 const value = style2[name]; 6518 if (value === void 0) { 6519 element.style.removeProperty(name); 6520 } else { 6521 element.style[name] = value; 6522 } 6523 } 6524 return element; 6525 } 6526 })); 6527}); 6528var Grow_default = Grow; 6529
vendor: 235 bytes, lines 6530-6538
6530// node_modules/@suid/material/Popover/popoverClasses.js 6531function getPopoverUtilityClass(slot) { 6532 return generateUtilityClass("MuiPopover", slot); 6533} 6534var popoverClasses = generateUtilityClasses("MuiPopover", [ 6535 "root", 6536 "paper" 6537]); 6538
vendor: 10,007 bytes, lines 6539-6829
6539// node_modules/@suid/material/Popover/Popover.jsx 6540var $26 = createComponentFactory_default()({ 6541 name: "MuiPopover", 6542 selfPropNames: ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "classes", "container", "elevation", "marginThreshold", "onClose", "open", "PaperProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"], 6543 utilityClass: getPopoverUtilityClass, 6544 slotClasses: () => ({ 6545 root: ["root"], 6546 paper: ["paper"] 6547 }) 6548}); 6549function getOffsetTop(rect, vertical) { 6550 let offset = 0; 6551 if (typeof vertical === "number") { 6552 offset = vertical; 6553 } else if (vertical === "center") { 6554 offset = rect.height / 2; 6555 } else if (vertical === "bottom") { 6556 offset = rect.height; 6557 } 6558 return offset; 6559} 6560function getOffsetLeft(rect, horizontal) { 6561 let offset = 0; 6562 if (typeof horizontal === "number") { 6563 offset = horizontal; 6564 } else if (horizontal === "center") { 6565 offset = rect.width / 2; 6566 } else if (horizontal === "right") { 6567 offset = rect.width; 6568 } 6569 return offset; 6570} 6571function getTransformOriginValue(transformOrigin) { 6572 return [transformOrigin.horizontal, transformOrigin.vertical].map((n) => typeof n === "number" ? `${n}px` : n).join(" "); 6573} 6574function resolveAnchorEl(anchorEl) { 6575 return typeof anchorEl === "function" ? anchorEl() : anchorEl; 6576} 6577var PopoverRoot = styled_default(Modal_default, { 6578 name: "MuiPopover", 6579 slot: "Root", 6580 overridesResolver: (props, styles3) => styles3.root 6581})({}); 6582var PopoverPaper = styled_default(Paper_default, { 6583 name: "MuiPopover", 6584 slot: "Paper", 6585 overridesResolver: (props, styles3) => styles3.paper 6586})({ 6587 position: "absolute", 6588 overflowY: "auto", 6589 overflowX: "hidden", 6590 // So we see the popover when it's empty. 6591 // It's most likely on issue on userland. 6592 minWidth: 16, 6593 minHeight: 16, 6594 maxWidth: "calc(100% - 32px)", 6595 maxHeight: "calc(100% - 32px)", 6596 // We disable the focus ring for mouse, touch and keyboard users. 6597 outline: 0 6598}); 6599var Popover = $26.defineComponent(function Popover2(inProps) { 6600 const props = $26.useThemeProps({ 6601 props: inProps 6602 }); 6603 const [, other] = splitProps(props, ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "class", "container", "elevation", "marginThreshold", "open", "PaperProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"]); 6604 const baseProps = mergeProps({ 6605 anchorOrigin: { 6606 vertical: "top", 6607 horizontal: "left" 6608 }, 6609 anchorReference: "anchorEl", 6610 elevation: 8, 6611 marginThreshold: 16, 6612 PaperProps: {}, 6613 transformOrigin: { 6614 vertical: "top", 6615 horizontal: "left" 6616 }, 6617 TransitionComponent: Grow_default, 6618 transitionDuration: "auto" 6619 }, props); 6620 const [, TransitionProps] = splitProps(mergeProps(() => props.TransitionProps || {}), ["onEntering"]); 6621 const paperRef = createRef_default(() => baseProps.PaperProps.ref); 6622 const ownerState = mergeProps(props, { 6623 get anchorOrigin() { 6624 return baseProps.anchorOrigin; 6625 }, 6626 get anchorReference() { 6627 return baseProps.anchorReference; 6628 }, 6629 get elevation() { 6630 return baseProps.elevation; 6631 }, 6632 get marginThreshold() { 6633 return baseProps.marginThreshold; 6634 }, 6635 get PaperProps() { 6636 return baseProps.PaperProps; 6637 }, 6638 get transformOrigin() { 6639 return baseProps.transformOrigin; 6640 }, 6641 get TransitionComponent() { 6642 return baseProps.TransitionComponent; 6643 }, 6644 get transitionDuration() { 6645 return baseProps.transitionDuration; 6646 }, 6647 TransitionProps 6648 }); 6649 const classes = $26.useClasses(ownerState); 6650 const getAnchorOffset = () => { 6651 if (baseProps.anchorReference === "anchorPosition") { 6652 if (true) { 6653 if (!props.anchorPosition) { 6654 console.error('MUI: You need to provide a `anchorPosition` prop when using <Popover anchorReference="anchorPosition" />.'); 6655 } 6656 } 6657 return props.anchorPosition; 6658 } 6659 const resolvedAnchorEl = resolveAnchorEl(props.anchorEl); 6660 const anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument2(paperRef.current).body; 6661 const anchorRect = anchorElement.getBoundingClientRect(); 6662 if (true) { 6663 const box = anchorElement.getBoundingClientRect(); 6664 if (box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) { 6665 console.warn(["MUI: The `anchorEl` prop provided to the component is invalid.", "The anchor element should be part of the document layout.", "Make sure the element is present in the document or that it's not display none."].join("\n")); 6666 } 6667 } 6668 return { 6669 top: anchorRect.top + getOffsetTop(anchorRect, baseProps.anchorOrigin.vertical), 6670 left: anchorRect.left + getOffsetLeft(anchorRect, baseProps.anchorOrigin.horizontal) 6671 }; 6672 }; 6673 const getTransformOrigin = (elemRect) => { 6674 return { 6675 vertical: getOffsetTop(elemRect, baseProps.transformOrigin.vertical), 6676 horizontal: getOffsetLeft(elemRect, baseProps.transformOrigin.horizontal) 6677 }; 6678 }; 6679 const getPositioningStyle = (element) => { 6680 const elemRect = { 6681 width: element.offsetWidth, 6682 height: element.offsetHeight 6683 }; 6684 const elemTransformOrigin = getTransformOrigin(elemRect); 6685 if (baseProps.anchorReference === "none") { 6686 return { 6687 top: null, 6688 left: null, 6689 transformOrigin: getTransformOriginValue(elemTransformOrigin) 6690 }; 6691 } 6692 const anchorOffset = getAnchorOffset(); 6693 let top = anchorOffset.top - elemTransformOrigin.vertical; 6694 let left = anchorOffset.left - elemTransformOrigin.horizontal; 6695 const bottom = top + elemRect.height; 6696 const right = left + elemRect.width; 6697 const containerWindow = ownerWindow2(resolveAnchorEl(props.anchorEl)); 6698 const heightThreshold = containerWindow.innerHeight - baseProps.marginThreshold; 6699 const widthThreshold = containerWindow.innerWidth - baseProps.marginThreshold; 6700 if (top < baseProps.marginThreshold) { 6701 const diff = top - baseProps.marginThreshold; 6702 top -= diff; 6703 elemTransformOrigin.vertical += diff; 6704 } else if (bottom > heightThreshold) { 6705 const diff = bottom - heightThreshold; 6706 top -= diff; 6707 elemTransformOrigin.vertical += diff; 6708 } 6709 if (true) { 6710 if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) { 6711 console.error(["MUI: The popover component is too tall.", `Some part of it can not be seen on the screen (${elemRect.height - heightThreshold}px).`, "Please consider adding a `max-height` to improve the user-experience."].join("\n")); 6712 } 6713 } 6714 if (left < baseProps.marginThreshold) { 6715 const diff = left - baseProps.marginThreshold; 6716 left -= diff; 6717 elemTransformOrigin.horizontal += diff; 6718 } else if (right > widthThreshold) { 6719 const diff = right - widthThreshold; 6720 left -= diff; 6721 elemTransformOrigin.horizontal += diff; 6722 } 6723 return { 6724 top: `${Math.round(top)}px`, 6725 left: `${Math.round(left)}px`, 6726 transformOrigin: getTransformOriginValue(elemTransformOrigin) 6727 }; 6728 }; 6729 const setPositioningStyles = () => { 6730 const element = paperRef.current; 6731 if (!element) { 6732 return; 6733 } 6734 const positioning = getPositioningStyle(element); 6735 if (positioning.top !== null) { 6736 element.style.top = positioning.top; 6737 } 6738 if (positioning.left !== null) { 6739 element.style.left = positioning.left; 6740 } 6741 element.style.transformOrigin = positioning.transformOrigin; 6742 }; 6743 const handleEntering = () => { 6744 if (props.TransitionProps?.onEntering) { 6745 props.TransitionProps?.onEntering(); 6746 } 6747 setPositioningStyles(); 6748 }; 6749 createEffect(() => { 6750 if (props.open) { 6751 setPositioningStyles(); 6752 } 6753 }); 6754 if (typeof props.action === "function") { 6755 props.action({ 6756 updatePosition: () => { 6757 if (props.open) setPositioningStyles(); 6758 } 6759 }); 6760 } 6761 createEffect(on(() => [props.anchorEl, props.open, setPositioningStyles], () => { 6762 if (!props.open) { 6763 return void 0; 6764 } 6765 const handleResize = debounce2(() => { 6766 setPositioningStyles(); 6767 }); 6768 const containerWindow = ownerWindow2(resolveAnchorEl(props.anchorEl)); 6769 containerWindow.addEventListener("resize", handleResize); 6770 return () => { 6771 handleResize.clear(); 6772 containerWindow.removeEventListener("resize", handleResize); 6773 }; 6774 })); 6775 const transitionDuration = () => { 6776 let transitionDuration2 = baseProps.transitionDuration; 6777 if (baseProps.transitionDuration === "auto" && !baseProps.TransitionComponent.muiSupportAuto) { 6778 transitionDuration2 = void 0; 6779 } 6780 return transitionDuration2; 6781 }; 6782 const container = () => props.container || (props.anchorEl ? ownerDocument2(resolveAnchorEl(props.anchorEl)).body : void 0); 6783 return createComponent(PopoverRoot, mergeProps({ 6784 BackdropProps: { 6785 invisible: true 6786 }, 6787 get ["class"]() { 6788 return clsx_m_default(classes.root, props.class); 6789 }, 6790 get container() { 6791 return container(); 6792 }, 6793 get open() { 6794 return props.open; 6795 }, 6796 ownerState 6797 }, other, { 6798 get children() { 6799 return createComponent(baseProps.TransitionComponent, mergeProps({ 6800 appear: true, 6801 get ["in"]() { 6802 return props.open; 6803 }, 6804 onEntering: handleEntering, 6805 get timeout() { 6806 return transitionDuration(); 6807 } 6808 }, TransitionProps, { 6809 get children() { 6810 return createComponent(PopoverPaper, mergeProps({ 6811 get elevation() { 6812 return baseProps.elevation; 6813 } 6814 }, () => baseProps.PaperProps, { 6815 ref: paperRef, 6816 get ["class"]() { 6817 return clsx_m_default(classes.paper, baseProps.PaperProps.class); 6818 }, 6819 get children() { 6820 return props.children; 6821 } 6822 })); 6823 } 6824 })); 6825 } 6826 })); 6827}); 6828var Popover_default = Popover; 6829
vendor: 227 bytes, lines 6830-6839
6830// node_modules/@suid/material/Menu/menuClasses.js 6831function getMenuUtilityClass(slot) { 6832 return generateUtilityClass("MuiMenu", slot); 6833} 6834var menuClasses = generateUtilityClasses("MuiMenu", [ 6835 "root", 6836 "paper", 6837 "list" 6838]); 6839
vendor: 4,926 bytes, lines 6840-7004
6840// node_modules/@suid/material/Menu/Menu.jsx 6841var $27 = createComponentFactory_default()({ 6842 name: "MuiMenu", 6843 selfPropNames: ["anchorEl", "autoFocus", "children", "classes", "disableAutoFocusItem", "MenuListProps", "onClose", "open", "PopoverClasses", "transitionDuration", "TransitionProps", "variant"], 6844 utilityClass: getMenuUtilityClass, 6845 slotClasses: () => ({ 6846 root: ["root"], 6847 paper: ["paper"], 6848 list: ["list"] 6849 }) 6850}); 6851var RTL_ORIGIN = { 6852 vertical: "top", 6853 horizontal: "right" 6854}; 6855var LTR_ORIGIN = { 6856 vertical: "top", 6857 horizontal: "left" 6858}; 6859var MenuRoot = styled_default(Popover_default, { 6860 skipProps: skipRootProps.filter((v) => v !== "classes"), 6861 name: "MuiMenu", 6862 slot: "Root", 6863 overridesResolver: (props, styles3) => styles3.root 6864})({}); 6865var MenuPaper = styled_default(Paper_default, { 6866 name: "MuiMenu", 6867 slot: "Paper", 6868 overridesResolver: (props, styles3) => styles3.paper 6869})({ 6870 // specZ: The maximum height of a simple menu should be one or more rows less than the view 6871 // height. This ensures a tapable area outside of the simple menu with which to dismiss 6872 // the menu. 6873 maxHeight: "calc(100% - 96px)", 6874 // Add iOS momentum scrolling for iOS < 13.0 6875 WebkitOverflowScrolling: "touch" 6876}); 6877var MenuMenuList = styled_default(MenuList_default, { 6878 name: "MuiMenu", 6879 slot: "List", 6880 overridesResolver: (props, styles3) => styles3.list 6881})({ 6882 // We disable the focus ring for mouse, touch and keyboard users. 6883 outline: 0 6884}); 6885var Menu = $27.defineComponent(function Menu2(inProps) { 6886 const ref = createRef_default(inProps); 6887 const props = $27.useThemeProps({ 6888 props: inProps 6889 }); 6890 const [, other] = splitProps(props, ["autoFocus", "children", "disableAutoFocusItem", "MenuListProps", "onClose", "open", "PaperProps", "PopoverClasses", "transitionDuration", "TransitionProps", "variant"]); 6891 const baseProps = mergeProps({ 6892 autoFocus: true, 6893 disableAutoFocusItem: false, 6894 MenuListProps: {}, 6895 PaperProps: {}, 6896 transitionDuration: "auto", 6897 variant: "selectedMenu" 6898 }, props); 6899 const [, TransitionProps] = splitProps(mergeProps(() => props.TransitionProps || {}), ["onEntering"]); 6900 const theme = useTheme_default(); 6901 const isRtl = () => theme.direction === "rtl"; 6902 const ownerState = mergeProps(baseProps, { 6903 TransitionProps 6904 }); 6905 const classes = $27.useClasses(ownerState); 6906 const autoFocusItem = () => baseProps.autoFocus && !baseProps.disableAutoFocusItem && props.open; 6907 const handleEntering = () => { 6908 if (props.TransitionProps?.onEntering) { 6909 props.TransitionProps?.onEntering(); 6910 } 6911 }; 6912 const handleListKeyDown = (event) => { 6913 if (event.key === "Tab") { 6914 event.preventDefault(); 6915 if (props.onClose) { 6916 props.onClose(event, "tabKeyDown"); 6917 } 6918 } 6919 }; 6920 const children2 = inspectChildren(() => props.children); 6921 const activeItemIndex = () => { 6922 let result = -1; 6923 let index = 0; 6924 for (const child of children2()) { 6925 if (isComponentObject(child)) { 6926 if (!child.props.disabled) { 6927 if (baseProps.variant === "selectedMenu" && child.props.selected) { 6928 result = index; 6929 } else if (result === -1) { 6930 result = index; 6931 } 6932 } 6933 } 6934 index++; 6935 } 6936 return result; 6937 }; 6938 const PaperProps = mergeProps({ 6939 component: MenuPaper 6940 }, () => baseProps.PaperProps, { 6941 classes: mergeProps(() => baseProps.PaperProps.classes, { 6942 get root() { 6943 return classes.paper; 6944 } 6945 }) 6946 }); 6947 const transitionProps = mergeProps({ 6948 onEntering: handleEntering 6949 }, TransitionProps); 6950 return createComponent(MenuRoot, mergeProps({ 6951 get classes() { 6952 return props.PopoverClasses; 6953 }, 6954 get onClose() { 6955 return props.onClose; 6956 }, 6957 anchorOrigin: { 6958 vertical: "bottom", 6959 get horizontal() { 6960 return isRtl() ? "right" : "left"; 6961 } 6962 }, 6963 get transformOrigin() { 6964 return isRtl() ? RTL_ORIGIN : LTR_ORIGIN; 6965 }, 6966 PaperProps, 6967 get ["class"]() { 6968 return classes.root; 6969 }, 6970 get open() { 6971 return props.open; 6972 }, 6973 ref, 6974 get transitionDuration() { 6975 return baseProps.transitionDuration; 6976 }, 6977 TransitionProps: transitionProps, 6978 ownerState 6979 }, other, { 6980 get children() { 6981 return createComponent(MenuMenuList, mergeProps({ 6982 onKeyDown: handleListKeyDown, 6983 get autoFocus() { 6984 return memo(() => !!baseProps.autoFocus)() && (activeItemIndex() === -1 || baseProps.disableAutoFocusItem); 6985 }, 6986 get autoFocusItem() { 6987 return autoFocusItem(); 6988 }, 6989 get variant() { 6990 return baseProps.variant; 6991 } 6992 }, () => baseProps.MenuListProps, { 6993 get ["class"]() { 6994 return clsx_m_default(classes.list, baseProps.MenuListProps.class); 6995 }, 6996 get children() { 6997 return children2(); 6998 } 6999 })); 7000 } 7001 })); 7002}); 7003var Menu_default = Menu; 7004
vendor: 328 bytes, lines 7005-7011
7005// node_modules/@suid/material/ListItemIcon/listItemIconClasses.js 7006function getListItemIconUtilityClass(slot) { 7007 return generateUtilityClass("MuiListItemIcon", slot); 7008} 7009var listItemIconClasses = generateUtilityClasses("MuiListItemIcon", ["root", "alignItemsFlexStart"]); 7010var listItemIconClasses_default = listItemIconClasses; 7011
vendor: 1,415 bytes, lines 7012-7069
7012// node_modules/@suid/material/ListItemIcon/ListItemIcon.jsx 7013var $28 = createComponentFactory_default()({ 7014 name: "MuiListItemIcon", 7015 selfPropNames: ["alignItems", "children", "classes"], 7016 propDefaults: ({ 7017 set 7018 }) => set({ 7019 component: "div" 7020 }), 7021 utilityClass: getListItemIconUtilityClass, 7022 slotClasses: (ownerState) => ({ 7023 root: ["root", ownerState.alignItems === "flex-start" && "alignItemsFlexStart"] 7024 }) 7025}); 7026var ListItemIconRoot = styled_default("div", { 7027 name: "MuiListItemIcon", 7028 slot: "Root", 7029 overridesResolver: (props, styles3) => { 7030 const { 7031 ownerState 7032 } = props; 7033 return [styles3.root, ownerState.alignItems === "flex-start" && styles3.alignItemsFlexStart]; 7034 } 7035})(({ 7036 theme, 7037 ownerState 7038}) => ({ 7039 minWidth: 56, 7040 color: theme.palette.action.active, 7041 flexShrink: 0, 7042 display: "inline-flex", 7043 ...ownerState.alignItems === "flex-start" && { 7044 marginTop: 8 7045 } 7046})); 7047var ListItemIcon = $28.component(function ListItemIcon2({ 7048 allProps, 7049 classes, 7050 otherProps, 7051 props 7052}) { 7053 const context = useListContext(); 7054 const ownerState = mergeProps({ 7055 get alignItems() { 7056 return context.alignItems; 7057 } 7058 }, allProps); 7059 return createComponent(ListItemIconRoot, mergeProps(otherProps, { 7060 get ["class"]() { 7061 return clsx_m_default(classes.root, otherProps.class); 7062 }, 7063 ownerState, 7064 get children() { 7065 return props.children; 7066 } 7067 })); 7068}); 7069
vendor: 360 bytes, lines 7070-7076
7070// node_modules/@suid/material/ListItemText/listItemTextClasses.js 7071function getListItemTextUtilityClass(slot) { 7072 return generateUtilityClass("MuiListItemText", slot); 7073} 7074var listItemTextClasses = generateUtilityClasses("MuiListItemText", ["root", "multiline", "dense", "inset", "primary", "secondary"]); 7075var listItemTextClasses_default = listItemTextClasses; 7076
vendor: 4,358 bytes, lines 7077-7212
7077// node_modules/@suid/material/ListItemText/ListItemText.jsx 7078var $29 = createComponentFactory_default()({ 7079 name: "MuiListItemText", 7080 selfPropNames: ["children", "classes", "disableTypography", "inset", "primary", "primaryTypographyProps", "secondary", "secondaryTypographyProps"], 7081 utilityClass: getListItemTextUtilityClass, 7082 slotClasses: (ownerState) => ({ 7083 root: ["root", ownerState.inset && "inset", ownerState.dense && "dense", !!ownerState.primary && !!ownerState.secondary && "multiline"], 7084 primary: ["primary"], 7085 secondary: ["secondary"] 7086 }) 7087}); 7088var ListItemTextRoot = styled_default("div", { 7089 name: "MuiListItemText", 7090 slot: "Root", 7091 overridesResolver: (props, styles3) => { 7092 const { 7093 ownerState 7094 } = props; 7095 return [{ 7096 [`& .${listItemTextClasses_default.primary}`]: styles3.primary 7097 }, { 7098 [`& .${listItemTextClasses_default.secondary}`]: styles3.secondary 7099 }, styles3.root, ownerState.inset && styles3.inset, ownerState.primary && ownerState.secondary && styles3.multiline, ownerState.dense && styles3.dense]; 7100 } 7101})(({ 7102 ownerState 7103}) => ({ 7104 flex: "1 1 auto", 7105 minWidth: 0, 7106 marginTop: 4, 7107 marginBottom: 4, 7108 ...ownerState.primary && ownerState.secondary && { 7109 marginTop: 6, 7110 marginBottom: 6 7111 }, 7112 ...ownerState.inset && { 7113 paddingLeft: 56 7114 } 7115})); 7116var ListItemText = $29.defineComponent(function ListItemText2(inProps) { 7117 const theme = useTheme_default(); 7118 const context = useListContext(); 7119 const props = mergeProps(theme.components?.[$29.name]?.defaultProps, inProps); 7120 const primary = createMemo(() => props.primary); 7121 const secondary = createMemo(() => props.secondary); 7122 const ownerState = { 7123 get classes() { 7124 return props.classes; 7125 }, 7126 get inset() { 7127 return props.inset || false; 7128 }, 7129 get primary() { 7130 return !!primary(); 7131 }, 7132 get secondary() { 7133 return !!secondary(); 7134 }, 7135 get dense() { 7136 return context.dense; 7137 } 7138 }; 7139 const classes = $29.useClasses(ownerState); 7140 const [, otherProps] = splitProps(props, ["children", "classes", "disableTypography", "inset", "primary", "primaryTypographyProps", "secondary", "secondaryTypographyProps"]); 7141 const isDefined = (v) => v !== void 0 && v !== null; 7142 const isTypography = (v) => v instanceof HTMLElement && v.classList.contains(Typography_default.toString()); 7143 const Primary = () => { 7144 const $primary = children(() => primary() ?? props.children); 7145 const primaryTypographyProps = props.primaryTypographyProps; 7146 return createComponent(Show, { 7147 get when() { 7148 return isDefined($primary()) && !isTypography($primary()) && !props.disableTypography; 7149 }, 7150 get fallback() { 7151 return $primary(); 7152 }, 7153 get children() { 7154 return createComponent(Typography_default, mergeProps({ 7155 get variant() { 7156 return context.dense ? "body2" : "body1"; 7157 }, 7158 get ["class"]() { 7159 return classes.primary; 7160 }, 7161 component: "span", 7162 display: "block" 7163 }, primaryTypographyProps, { 7164 get children() { 7165 return $primary(); 7166 } 7167 })); 7168 } 7169 }); 7170 }; 7171 const Secondary = () => { 7172 const secondaryTypographyProps = props.secondaryTypographyProps; 7173 return createComponent(Show, { 7174 get when() { 7175 return isDefined(secondary()) && !isTypography(secondary()) && !props.disableTypography; 7176 }, 7177 get fallback() { 7178 return secondary(); 7179 }, 7180 get children() { 7181 return createComponent(Typography_default, mergeProps({ 7182 variant: "body2", 7183 get ["class"]() { 7184 return classes.secondary; 7185 }, 7186 sx: { 7187 display: "block", 7188 color: "text.secondary" 7189 } 7190 }, secondaryTypographyProps, { 7191 get component() { 7192 return secondaryTypographyProps?.component ?? "p"; 7193 }, 7194 get children() { 7195 return secondary(); 7196 } 7197 })); 7198 } 7199 }); 7200 }; 7201 return createComponent(ListItemTextRoot, mergeProps(otherProps, { 7202 get ["class"]() { 7203 return clsx_m_default(classes.root, otherProps.class); 7204 }, 7205 ownerState, 7206 get children() { 7207 return [createComponent(Primary, {}), createComponent(Secondary, {})]; 7208 } 7209 })); 7210}); 7211var ListItemText_default = ListItemText; 7212
vendor: 360 bytes, lines 7213-7227
7213// node_modules/@suid/material/MenuItem/menuItemClasses.js 7214function getMenuItemUtilityClass(slot) { 7215 return generateUtilityClass("MuiMenuItem", slot); 7216} 7217var menuItemClasses = generateUtilityClasses("MuiMenuItem", [ 7218 "root", 7219 "focusVisible", 7220 "dense", 7221 "disabled", 7222 "divider", 7223 "gutters", 7224 "selected" 7225]); 7226var menuItemClasses_default = menuItemClasses; 7227
vendor: 5,357 bytes, lines 7228-7403
7228// node_modules/@suid/material/MenuItem/MenuItem.jsx 7229var $30 = createComponentFactory_default()({ 7230 name: "MuiMenuItem", 7231 selfPropNames: ["autoFocus", "classes", "dense", "disabled", "disableGutters", "divider", "selected"], 7232 utilityClass: getMenuItemUtilityClass, 7233 slotClasses: (ownerState) => ({ 7234 root: ["root", ownerState.dense && "dense", ownerState.disabled && "disabled", !ownerState.disableGutters && "gutters", ownerState.divider && "divider", ownerState.selected && "selected"] 7235 }) 7236}); 7237var MenuItemRoot = styled_default(ButtonBase_default, { 7238 skipProps: skipRootProps.filter((v) => v !== "classes"), 7239 name: "MuiMenuItem", 7240 slot: "Root", 7241 overridesResolver: (props, styles3) => { 7242 const { 7243 ownerState 7244 } = props; 7245 return [styles3.root, ownerState.dense && styles3.dense, ownerState.divider && styles3.divider, !ownerState.disableGutters && styles3.gutters]; 7246 } 7247})(({ 7248 theme, 7249 ownerState 7250}) => ({ 7251 ...theme.typography.body1, 7252 display: "flex", 7253 justifyContent: "flex-start", 7254 alignItems: "center", 7255 position: "relative", 7256 textDecoration: "none", 7257 minHeight: 48, 7258 paddingTop: 6, 7259 paddingBottom: 6, 7260 boxSizing: "border-box", 7261 whiteSpace: "nowrap", 7262 ...!ownerState.disableGutters && { 7263 paddingLeft: 16, 7264 paddingRight: 16 7265 }, 7266 ...ownerState.divider && { 7267 borderBottom: `1px solid ${theme.palette.divider}`, 7268 backgroundClip: "padding-box" 7269 }, 7270 "&:hover": { 7271 textDecoration: "none", 7272 backgroundColor: theme.palette.action.hover, 7273 // Reset on touch devices, it doesn't add specificity 7274 "@media (hover: none)": { 7275 backgroundColor: "transparent" 7276 } 7277 }, 7278 [`&.${menuItemClasses_default.selected}`]: { 7279 backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity), 7280 [`&.${menuItemClasses_default.focusVisible}`]: { 7281 backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity) 7282 } 7283 }, 7284 [`&.${menuItemClasses_default.selected}:hover`]: { 7285 backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity), 7286 // Reset on touch devices, it doesn't add specificity 7287 "@media (hover: none)": { 7288 backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity) 7289 } 7290 }, 7291 [`&.${menuItemClasses_default.focusVisible}`]: { 7292 backgroundColor: theme.palette.action.focus 7293 }, 7294 [`&.${menuItemClasses_default.disabled}`]: { 7295 opacity: theme.palette.action.disabledOpacity 7296 }, 7297 [`& + .${dividerClasses_default.root}`]: { 7298 marginTop: theme.spacing(1), 7299 marginBottom: theme.spacing(1) 7300 }, 7301 [`& + .${dividerClasses_default.inset}`]: { 7302 marginLeft: 52 7303 }, 7304 [`& .${listItemTextClasses_default.root}`]: { 7305 marginTop: 0, 7306 marginBottom: 0 7307 }, 7308 [`& .${listItemTextClasses_default.inset}`]: { 7309 paddingLeft: 36 7310 }, 7311 [`& .${listItemIconClasses_default.root}`]: { 7312 minWidth: 36 7313 }, 7314 ...!ownerState.dense && { 7315 [theme.breakpoints.up("sm")]: { 7316 minHeight: "auto" 7317 } 7318 }, 7319 ...ownerState.dense && { 7320 minHeight: 32, 7321 paddingTop: 4, 7322 paddingBottom: 4, 7323 ...theme.typography.body2, 7324 [`& .${listItemIconClasses_default.root} svg`]: { 7325 fontSize: "1.25rem" 7326 } 7327 } 7328})); 7329var MenuItem = $30.defineComponent(function MenuItem2(inProps) { 7330 const menuItemRef = createRef_default(inProps); 7331 const props = $30.useThemeProps({ 7332 props: inProps 7333 }); 7334 const [, other] = splitProps(props, ["autoFocus", "component", "dense", "divider", "disableGutters", "focusVisibleClassName", "role", "tabIndex"]); 7335 const baseProps = mergeProps({ 7336 autoFocus: false, 7337 component: "li", 7338 dense: false, 7339 divider: false, 7340 disableGutters: false, 7341 role: "menuitem" 7342 }, props); 7343 const context = useContext(ListContext_default); 7344 const childContext = { 7345 get dense() { 7346 return baseProps.dense || context.dense || false; 7347 }, 7348 get disableGutters() { 7349 return baseProps.disableGutters; 7350 } 7351 }; 7352 createEffect(() => { 7353 if (baseProps.autoFocus) { 7354 if (menuItemRef.current) { 7355 untrack(() => menuItemRef.current.focus()); 7356 } else if (true) { 7357 console.error("MUI: Unable to set focus to a MenuItem whose component has not been rendered."); 7358 } 7359 } 7360 }); 7361 const ownerState = mergeProps(props, { 7362 get dense() { 7363 return childContext.dense; 7364 }, 7365 get divider() { 7366 return baseProps.divider; 7367 }, 7368 get disableGutters() { 7369 return baseProps.disableGutters; 7370 } 7371 }); 7372 const classes = $30.useClasses(props); 7373 const tabIndex = () => { 7374 if (!props.disabled) { 7375 return props.tabIndex !== void 0 ? props.tabIndex : -1; 7376 } 7377 }; 7378 return createComponent(ListContext_default.Provider, { 7379 value: childContext, 7380 get children() { 7381 return createComponent(MenuItemRoot, mergeProps({ 7382 ref: menuItemRef, 7383 get role() { 7384 return baseProps.role; 7385 }, 7386 get tabIndex() { 7387 return tabIndex(); 7388 }, 7389 get component() { 7390 return baseProps.component; 7391 }, 7392 get focusVisibleClassName() { 7393 return clsx_m_default(ownerState.classes?.focusVisible, props.focusVisibleClassName); 7394 } 7395 }, other, { 7396 ownerState, 7397 classes 7398 })); 7399 } 7400 }); 7401}); 7402var MenuItem_default = MenuItem; 7403
vendor: 161 bytes, lines 7404-7407
7404// node_modules/@suid/material/FormControl/FormControlContext.js 7405var FormControlContext = createContext(); 7406var FormControlContext_default = FormControlContext; 7407
vendor: 831 bytes, lines 7408-7438
7408// node_modules/@suid/material/FormControl/formControlState.js 7409function formControlState(data) { 7410 const compose = () => { 7411 return data.states.reduce((acc, state) => { 7412 acc[state] = data.props[state]; 7413 if (data.muiFormControl) { 7414 if (typeof data.props[state] === "undefined") { 7415 acc[state] = data.muiFormControl[state]; 7416 } 7417 } 7418 return acc; 7419 }, {}); 7420 }; 7421 const object = createMutable({}); 7422 createComputed(() => { 7423 const newObject = compose(); 7424 batch(() => { 7425 for (const key in newObject) { 7426 if (object[key] !== newObject[key]) 7427 object[key] = newObject[key]; 7428 } 7429 const newKeys = Object.keys(newObject); 7430 for (const key in object) { 7431 if (!newKeys.includes(key)) 7432 delete object[key]; 7433 } 7434 }); 7435 }); 7436 return object; 7437} 7438
vendor: 141 bytes, lines 7439-7443
7439// node_modules/@suid/material/FormControl/useFormControl.js 7440function useFormControl() { 7441 return useContext(FormControlContext_default); 7442} 7443
vendor: 367 bytes, lines 7444-7458
7444// node_modules/@suid/material/GlobalStyles/GlobalStyles.jsx 7445var $31 = createComponentFactory_default()({ 7446 name: "MuiGlobalStyles", 7447 selfPropNames: ["styles"] 7448}); 7449var GlobalStyles = $31.component(function GlobalStyles2({ 7450 props 7451}) { 7452 createStyle_default(() => ({ 7453 "@global": props.styles || {} 7454 })); 7455 return []; 7456}); 7457var GlobalStyles_default = GlobalStyles; 7458
vendor: 1,720 bytes, lines 7459-7499
7459// node_modules/@suid/material/utils/useControlled.js 7460function useControlled(props) { 7461 const isControlled = props.controlled() !== void 0; 7462 const [valueState, setValue] = createSignal(props.default()); 7463 const value = createMemo(() => isControlled ? props.controlled() : valueState()); 7464 if (isControlled) 7465 createEffect(() => { 7466 setValue(() => value()); 7467 }); 7468 if (true) { 7469 createEffect(() => { 7470 if (isControlled !== (props.controlled() !== void 0)) { 7471 console.error([ 7472 `MUI: A component is changing the ${isControlled ? "" : "un"}controlled ${props.state ?? "value"} state of ${props.name} to be ${isControlled ? "un" : ""}controlled.`, 7473 "Elements should not switch from uncontrolled to controlled (or vice versa).", 7474 `Decide between using a controlled or uncontrolled ${props.name} element for the lifetime of the component.`, 7475 "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 7476 "More info: https://fb.me/react-controlled-components" 7477 ].join("\n")); 7478 } 7479 }); 7480 let first = true; 7481 createEffect(on(() => props.default(), () => { 7482 if (first) { 7483 first = false; 7484 return; 7485 } else if (!isControlled) { 7486 console.error([ 7487 `MUI: A component is changing the default ${props.state ?? "value"} state of an uncontrolled ${props.name} after being initialized. To suppress this warning opt to use a controlled ${props.name}.` 7488 ].join("\n")); 7489 } 7490 })); 7491 } 7492 const setValueIfUncontrolled = (newValue) => { 7493 if (!isControlled) { 7494 setValue(newValue); 7495 } 7496 }; 7497 return [value, setValueIfUncontrolled]; 7498} 7499
vendor: 594 bytes, lines 7500-7526
7500// node_modules/@suid/material/InputBase/inputBaseClasses.js 7501function getInputBaseUtilityClass(slot) { 7502 return generateUtilityClass("MuiInputBase", slot); 7503} 7504var inputBaseClasses = generateUtilityClasses("MuiInputBase", [ 7505 "root", 7506 "formControl", 7507 "focused", 7508 "disabled", 7509 "adornedStart", 7510 "adornedEnd", 7511 "error", 7512 "sizeSmall", 7513 "multiline", 7514 "colorSecondary", 7515 "fullWidth", 7516 "hiddenLabel", 7517 "input", 7518 "inputSizeSmall", 7519 "inputMultiline", 7520 "inputTypeSearch", 7521 "inputAdornedStart", 7522 "inputAdornedEnd", 7523 "inputHiddenLabel" 7524]); 7525var inputBaseClasses_default = inputBaseClasses; 7526
vendor: 316 bytes, lines 7527-7534
7527// node_modules/@suid/material/InputBase/utils.js 7528function hasValue(value) { 7529 return value != null && !(Array.isArray(value) && value.length === 0); 7530} 7531function isFilled(obj, SSR = false) { 7532 return obj && (hasValue(obj.value) && obj.value !== "" || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ""); 7533} 7534
vendor: 379 bytes, lines 7535-7548
7535// node_modules/@suid/system/createEffectWithCleaning.js 7536function createEffectWithCleaning(effect) { 7537 let lastCleanup; 7538 onCleanup(() => lastCleanup?.()); 7539 createEffect((prevCleanup) => { 7540 if (prevCleanup) { 7541 lastCleanup = void 0; 7542 prevCleanup?.(); 7543 } 7544 return lastCleanup = effect(); 7545 }); 7546} 7547var createEffectWithCleaning_default = createEffectWithCleaning; 7548
vendor: 4,888 bytes, lines 7549-7692
7549// node_modules/@suid/base/TextareaAutosize/TextareaAutosize.jsx 7550var _tmpl$5 = /* @__PURE__ */ template(`<textarea>`); 7551var _tmpl$22 = /* @__PURE__ */ template(`<textarea aria-hidden readonly tabindex="-1">`); 7552var $32 = createComponentFactory_default()({ 7553 name: "MuiTextareaAutosize", 7554 selfPropNames: ["ref", "maxRows", "minRows"] 7555}); 7556function getStyleValue(computedStyle, property) { 7557 return parseInt(computedStyle[property], 10) || 0; 7558} 7559var styles2 = { 7560 shadow: { 7561 // Visibility needed to hide the extra text area on iPads 7562 visibility: "hidden", 7563 // Remove from the content flow 7564 position: "absolute", 7565 // Ignore the scrollbar width 7566 overflow: "hidden", 7567 height: 0, 7568 top: 0, 7569 left: 0, 7570 // Create a new layer, increase the isolation of the computed values 7571 transform: "translateZ(0)" 7572 } 7573}; 7574var TextareaAutosize = $32.defineComponent(function(props) { 7575 const ref = createRef_default(props); 7576 const [, other] = splitProps(props, ["maxRows", "minRows", "style", "value"]); 7577 const baseProps = mergeProps({ 7578 minRows: 1 7579 }, props); 7580 let shadowRef; 7581 const renders = { 7582 current: 0 7583 }; 7584 const [state, setState] = createSignal({}); 7585 const syncHeight = () => { 7586 const input = ref.current; 7587 const containerWindow = ownerWindow(input); 7588 const computedStyle = containerWindow.getComputedStyle(input); 7589 if (computedStyle.width === "0px") { 7590 return; 7591 } 7592 shadowRef.style.width = computedStyle.width; 7593 shadowRef.value = input.value || props.placeholder || "x"; 7594 if (shadowRef.value.slice(-1) === "\n") { 7595 shadowRef.value += " "; 7596 } 7597 const boxSizing = computedStyle["boxSizing"]; 7598 const padding = getStyleValue(computedStyle, "paddingBottom") + getStyleValue(computedStyle, "paddingTop"); 7599 const border = getStyleValue(computedStyle, "borderBottomWidth") + getStyleValue(computedStyle, "borderTopWidth"); 7600 const innerHeight = shadowRef.scrollHeight; 7601 shadowRef.value = "x"; 7602 const singleRowHeight = shadowRef.scrollHeight; 7603 let outerHeight = innerHeight; 7604 if (baseProps.minRows) { 7605 outerHeight = Math.max(Number(baseProps.minRows) * singleRowHeight, outerHeight); 7606 } 7607 if (props.maxRows) { 7608 outerHeight = Math.min(Number(props.maxRows) * singleRowHeight, outerHeight); 7609 } 7610 outerHeight = Math.max(outerHeight, singleRowHeight); 7611 const outerHeightStyle = outerHeight + (boxSizing === "border-box" ? padding + border : 0); 7612 const overflow = Math.abs(outerHeight - innerHeight) <= 1; 7613 setState((prevState) => { 7614 if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) { 7615 renders.current += 1; 7616 return { 7617 overflow, 7618 outerHeightStyle 7619 }; 7620 } 7621 if (true) { 7622 if (renders.current === 20) { 7623 console.error(["MUI: Too many re-renders. The layout is unstable.", "TextareaAutosize limits the number of renders to prevent an infinite loop."].join("\n")); 7624 } 7625 } 7626 return prevState; 7627 }); 7628 }; 7629 createEffectWithCleaning_default(() => { 7630 syncHeight(); 7631 const handleResize = debounce(() => { 7632 renders.current = 0; 7633 syncHeight(); 7634 }); 7635 const containerWindow = ownerWindow(ref.current); 7636 containerWindow.addEventListener("resize", handleResize); 7637 let resizeObserver; 7638 if (typeof ResizeObserver !== "undefined") { 7639 resizeObserver = new ResizeObserver(handleResize); 7640 resizeObserver.observe(ref.current); 7641 } 7642 return () => { 7643 handleResize.clear(); 7644 containerWindow.removeEventListener("resize", handleResize); 7645 if (resizeObserver) { 7646 resizeObserver.disconnect(); 7647 } 7648 }; 7649 }); 7650 createEffect(on(() => [props.value], () => { 7651 renders.current = 0; 7652 syncHeight(); 7653 })); 7654 const style1 = mergeProps({ 7655 get height() { 7656 return `${state().outerHeightStyle}px`; 7657 }, 7658 get overflow() { 7659 return state().overflow ? "hidden" : null; 7660 } 7661 }, () => props.style); 7662 const style2 = mergeProps(styles2.shadow, () => props.style, { 7663 padding: 0 7664 }); 7665 return [(() => { 7666 const _el$ = _tmpl$5(); 7667 use(ref, _el$); 7668 spread(_el$, mergeProps({ 7669 get rows() { 7670 return baseProps.minRows; 7671 } 7672 }, other), false, false); 7673 createRenderEffect((_$p) => style(_el$, style1, _$p)); 7674 return _el$; 7675 })(), (() => { 7676 const _el$2 = _tmpl$22(); 7677 const _ref$ = shadowRef; 7678 typeof _ref$ === "function" ? use(_ref$, _el$2) : shadowRef = _el$2; 7679 createRenderEffect((_p$) => { 7680 const _v$ = props.class, _v$2 = style2; 7681 _v$ !== _p$._v$ && className(_el$2, _p$._v$ = _v$); 7682 _p$._v$2 = style(_el$2, _v$2, _p$._v$2); 7683 return _p$; 7684 }, { 7685 _v$: void 0, 7686 _v$2: void 0 7687 }); 7688 return _el$2; 7689 })()]; 7690}, false); 7691var TextareaAutosize_default = TextareaAutosize; 7692
vendor: 16,716 bytes, lines 7693-8173
7693// node_modules/@suid/material/InputBase/InputBase.jsx 7694var $33 = createComponentFactory_default()({ 7695 name: "MuiInputBase", 7696 propDefaults: ({ 7697 set 7698 }) => set({ 7699 components: {}, 7700 componentsProps: {}, 7701 fullWidth: false, 7702 inputComponent: "input", 7703 inputProps: {}, 7704 multiline: false, 7705 type: "text", 7706 disableInjectingGlobalStyles: false 7707 }), 7708 selfPropNames: ["aria-describedby", "autoComplete", "autoFocus", "classes", "color", "components", "componentsProps", "defaultValue", "disableInjectingGlobalStyles", "disabled", "endAdornment", "error", "fullWidth", "id", "inputComponent", "inputProps", "inputProps", "inputRef", "margin", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onFocus", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "renderSuffix", "required", "rows", "size", "startAdornment", "type", "value"], 7709 utilityClass: getInputBaseUtilityClass, 7710 autoCallUseClasses: false, 7711 slotClasses: (ownerState) => ({ 7712 root: ["root", `color${capitalize_default(ownerState.color)}`, !!ownerState.disabled && "disabled", !!ownerState.error && "error", !!ownerState.fullWidth && "fullWidth", ownerState.focused && "focused", !!ownerState.formControl && "formControl", ownerState.size === "small" && "sizeSmall", ownerState.multiline && "multiline", !!ownerState.startAdornment && "adornedStart", !!ownerState.endAdornment && "adornedEnd", !!ownerState.hiddenLabel && "hiddenLabel"], 7713 input: ["input", !!ownerState.disabled && "disabled", ownerState.type === "search" && "inputTypeSearch", ownerState.multiline && "inputMultiline", ownerState.size === "small" && "inputSizeSmall", !!ownerState.hiddenLabel && "inputHiddenLabel", !!ownerState.startAdornment && "inputAdornedStart", !!ownerState.endAdornment && "inputAdornedEnd"] 7714 }) 7715}); 7716var rootOverridesResolver = (props, styles3) => { 7717 const ownerState = props.ownerState; 7718 return [styles3.root, !!ownerState.formControl && styles3.formControl, !!ownerState.startAdornment && styles3.adornedStart, !!ownerState.endAdornment && styles3.adornedEnd, !!ownerState.error && styles3.error, ownerState.size === "small" && styles3.sizeSmall, ownerState.multiline && styles3.multiline, ownerState.color && styles3[`color${capitalize_default(ownerState.color)}`], !!ownerState.fullWidth && styles3.fullWidth, !!ownerState.hiddenLabel && styles3.hiddenLabel]; 7719}; 7720var inputOverridesResolver = (props, styles3) => { 7721 const ownerState = props.ownerState; 7722 return [styles3.input, ownerState.size === "small" && styles3.inputSizeSmall, ownerState.multiline && styles3.inputMultiline, ownerState.type === "search" && styles3.inputTypeSearch, !!ownerState.startAdornment && styles3.inputAdornedStart, !!ownerState.endAdornment && styles3.inputAdornedEnd, !!ownerState.hiddenLabel && styles3.inputHiddenLabel]; 7723}; 7724var InputBaseRoot = styled_default("div", { 7725 name: "MuiInputBase", 7726 slot: "Root", 7727 overridesResolver: rootOverridesResolver 7728})(({ 7729 theme, 7730 ownerState 7731}) => ({ 7732 ...theme.typography.body1, 7733 color: theme.palette.text.primary, 7734 lineHeight: "1.4375em", 7735 boxSizing: "border-box", 7736 position: "relative", 7737 cursor: "text", 7738 display: "inline-flex", 7739 alignItems: "center", 7740 [`&.${inputBaseClasses_default.disabled}`]: { 7741 color: theme.palette.text.disabled, 7742 cursor: "default" 7743 }, 7744 ...ownerState.multiline && { 7745 padding: "4px 0 5px", 7746 ...ownerState.size === "small" && { 7747 paddingTop: 1 7748 } 7749 }, 7750 ...ownerState.fullWidth && { 7751 width: "100%" 7752 } 7753})); 7754var InputBaseComponent = styled_default("input", { 7755 name: "MuiInputBase", 7756 slot: "Input", 7757 overridesResolver: inputOverridesResolver 7758})(({ 7759 theme, 7760 ownerState 7761}) => { 7762 const light = theme.palette.mode === "light"; 7763 const placeholder = { 7764 color: "currentColor", 7765 opacity: light ? 0.42 : 0.5, 7766 transition: theme.transitions.create("opacity", { 7767 duration: theme.transitions.duration.shorter 7768 }) 7769 }; 7770 const placeholderHidden = { 7771 opacity: "0 !important" 7772 }; 7773 const placeholderVisible = { 7774 opacity: light ? 0.42 : 0.5 7775 }; 7776 return { 7777 font: "inherit", 7778 letterSpacing: "inherit", 7779 color: "currentColor", 7780 padding: "4px 0 5px", 7781 border: 0, 7782 boxSizing: "content-box", 7783 background: "none", 7784 height: "1.4375em", 7785 margin: 0, 7786 WebkitTapHighlightColor: "transparent", 7787 display: "block", 7788 // Make the flex item shrink with Firefox 7789 minWidth: 0, 7790 width: "100%", 7791 animationName: "mui-auto-fill-cancel", 7792 animationDuration: "10ms", 7793 "&::-webkit-input-placeholder": placeholder, 7794 "&::-moz-placeholder": placeholder, 7795 "&:-ms-input-placeholder": placeholder, 7796 "&::-ms-input-placeholder": placeholder, 7797 "&:focus": { 7798 outline: 0 7799 }, 7800 // Reset Firefox invalid required input style 7801 "&:invalid": { 7802 boxShadow: "none" 7803 }, 7804 "&::-webkit-search-decoration": { 7805 // Remove the padding when type=search. 7806 WebkitAppearance: "none" 7807 }, 7808 // Show and hide the placeholder logic 7809 [`label[data-shrink=false] + .${inputBaseClasses_default.formControl} &`]: { 7810 "&::-webkit-input-placeholder": placeholderHidden, 7811 "&::-moz-placeholder": placeholderHidden, 7812 "&:-ms-input-placeholder": placeholderHidden, 7813 "&::-ms-input-placeholder": placeholderHidden, 7814 "&:focus::-webkit-input-placeholder": placeholderVisible, 7815 "&:focus::-moz-placeholder": placeholderVisible, 7816 "&:focus:-ms-input-placeholder": placeholderVisible, 7817 "&:focus::-ms-input-placeholder": placeholderVisible 7818 // Edge 7819 }, 7820 [`&.${inputBaseClasses_default.disabled}`]: { 7821 opacity: 1, 7822 WebkitTextFillColor: theme.palette.text.disabled 7823 // Fix opacity Safari bug 7824 }, 7825 "&:-webkit-autofill": { 7826 animationDuration: "5000s", 7827 animationName: "mui-auto-fill" 7828 }, 7829 ...ownerState.size === "small" && { 7830 paddingTop: 1 7831 }, 7832 ...ownerState.multiline && { 7833 height: "auto", 7834 resize: "none", 7835 padding: 0, 7836 paddingTop: 0 7837 }, 7838 ...ownerState.type === "search" && { 7839 // Improve type search style. 7840 MozAppearance: "textfield" 7841 } 7842 }; 7843}); 7844var inputGlobalStyles = () => createComponent(GlobalStyles_default, { 7845 styles: { 7846 "@keyframes mui-auto-fill": { 7847 from: { 7848 display: "block" 7849 } 7850 }, 7851 "@keyframes mui-auto-fill-cancel": { 7852 from: { 7853 display: "block" 7854 } 7855 } 7856 } 7857}); 7858var selectionTypes = /* @__PURE__ */ new Set(["text", "search", "password", "tel", "url"]); 7859var InputBase = $33.component(function InputBase2({ 7860 allProps, 7861 otherProps, 7862 props 7863}) { 7864 const inputValue = () => props.inputProps.value != null ? props.inputProps.value : props.value; 7865 const isControlled = (inputValue() ?? null) !== null; 7866 const [value, setValue] = useControlled({ 7867 controlled: () => inputValue(), 7868 default: () => props.defaultValue, 7869 name: "InputBase" 7870 }); 7871 const inputRef = createRef_default({ 7872 ref: (instance) => { 7873 if (true) { 7874 if (instance && instance.nodeName !== "INPUT" && !instance.focus) { 7875 console.error(["MUI: You have provided a `inputComponent` to the input component", "that does not correctly handle the `ref` prop.", "Make sure the `ref` prop is called with a HTMLInputElement."].join("\n")); 7876 } 7877 } 7878 if (typeof props.inputRef === "function") props.inputRef(instance); 7879 } 7880 }); 7881 let lastSelectionStart; 7882 let controlledValueUpdated = false; 7883 onMount(() => { 7884 const isElement = inputRef.ref instanceof HTMLElement; 7885 inputRef.ref.addEventListener("input", (event) => { 7886 const nodeValue = inputRef.ref.value; 7887 if (isElement) { 7888 const start = inputRef.ref.selectionStart ?? nodeValue.length; 7889 lastSelectionStart = start; 7890 } 7891 controlledValueUpdated = false; 7892 if (typeof props.inputProps.onChange === "function") { 7893 props.inputProps.onChange(event); 7894 } 7895 setValue(nodeValue); 7896 if (typeof props.onChange === "function") { 7897 props.onChange(event, nodeValue); 7898 } 7899 if (isControlled && !controlledValueUpdated) { 7900 const v = value(); 7901 inputRef.ref.value = isElement ? v ?? "" : v; 7902 } 7903 }); 7904 }); 7905 createEffect((loadDefaultValue) => { 7906 if (isControlled || loadDefaultValue) { 7907 controlledValueUpdated = true; 7908 const v = value(); 7909 const isElement = inputRef.ref instanceof HTMLElement; 7910 if (!isElement) { 7911 if (v !== inputRef.ref.value) { 7912 inputRef.ref.value = v; 7913 } 7914 } else if (typeof v === "string") { 7915 const inputElement = inputRef.ref; 7916 const type = inputElement.type ?? "text"; 7917 const isSelectionType = inputElement.nodeName === "TEXTAREA" || selectionTypes.has(type); 7918 const selectionStart = lastSelectionStart ?? v.length; 7919 if (v !== inputRef.ref.value) { 7920 inputRef.ref.value = v; 7921 } 7922 if (!isSelectionType) inputElement.type = "text"; 7923 if (inputRef.ref.selectionStart !== selectionStart) { 7924 inputRef.ref.setSelectionRange(selectionStart, selectionStart); 7925 } 7926 if (!isSelectionType) inputElement.type = type; 7927 } 7928 } 7929 return false; 7930 }, true); 7931 const [focused, setFocused] = createSignal(false); 7932 const muiFormControl = useFormControl(); 7933 if (true) { 7934 createEffect(() => { 7935 muiFormControl?.registerEffect?.(); 7936 }); 7937 } 7938 const partialFcs = formControlState({ 7939 props: allProps, 7940 muiFormControl, 7941 states: ["color", "disabled", "error", "hiddenLabel", "size", "required", "filled"] 7942 }); 7943 const fcs = mergeProps(partialFcs, { 7944 get focused() { 7945 return muiFormControl ? muiFormControl.focused : focused(); 7946 } 7947 }); 7948 createEffect(() => { 7949 if (!muiFormControl && props.disabled && focused()) { 7950 setFocused(false); 7951 if (typeof props.onBlur === "function") props.onBlur?.(null); 7952 } 7953 }); 7954 const onFilled = () => muiFormControl && muiFormControl.onFilled; 7955 const onEmpty = () => muiFormControl && muiFormControl.onEmpty; 7956 const checkDirty = (obj) => { 7957 if (isFilled(obj)) { 7958 onFilled()?.(); 7959 } else { 7960 onEmpty()?.(); 7961 } 7962 }; 7963 createRenderEffect(() => { 7964 if (isControlled) { 7965 checkDirty({ 7966 value: value() 7967 }); 7968 } 7969 }); 7970 onMount(() => { 7971 checkDirty(inputRef.ref); 7972 }); 7973 const isMultilineInput = () => props.multiline && props.inputComponent === "input"; 7974 const InputComponent = () => isMultilineInput() ? TextareaAutosize_default : props.inputComponent; 7975 const inputProps = createMemo(() => { 7976 let inputProps2 = props.inputProps; 7977 if (isMultilineInput()) { 7978 if (props.rows) { 7979 if (true) { 7980 if (props.minRows || props.maxRows) { 7981 console.warn("MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set."); 7982 } 7983 } 7984 inputProps2 = { 7985 type: void 0, 7986 ["minRows"]: props.rows, 7987 ["maxRows"]: props.rows, 7988 ...inputProps2 7989 }; 7990 } else { 7991 inputProps2 = { 7992 type: void 0, 7993 ["maxRows"]: props.maxRows, 7994 ["minRows"]: props.minRows, 7995 ...inputProps2 7996 }; 7997 } 7998 } 7999 return mergeProps(inputProps2, () => props.componentsProps.input || {}); 8000 }); 8001 createEffect(() => { 8002 muiFormControl?.setAdornedStart(Boolean(props.startAdornment)); 8003 }); 8004 const ownerState = mergeProps(allProps, { 8005 get color() { 8006 return fcs.color || "primary"; 8007 }, 8008 get disabled() { 8009 return fcs.disabled; 8010 }, 8011 get error() { 8012 return fcs.error; 8013 }, 8014 get focused() { 8015 return fcs.focused; 8016 }, 8017 get formControl() { 8018 return muiFormControl; 8019 }, 8020 get hiddenLabel() { 8021 return fcs.hiddenLabel; 8022 }, 8023 get size() { 8024 return fcs.size; 8025 } 8026 }); 8027 const classes = $33.useClasses(ownerState); 8028 const Root = () => props.components.Root || InputBaseRoot; 8029 const rootProps = () => props.componentsProps.root || {}; 8030 const Input3 = () => props.components.Input || InputBaseComponent; 8031 const rootOwnerState = mergeProps(ownerState, () => rootProps()["ownerState"] || {}); 8032 const inputOwnerState = mergeProps(ownerState, () => inputProps()["ownerState"] || {}); 8033 const renderSuffixProps = mergeProps(fcs, { 8034 get startAdornment() { 8035 return props.startAdornment; 8036 } 8037 }); 8038 const suffix = createMemo(() => props.renderSuffix?.(renderSuffixProps)); 8039 return [memo((() => { 8040 const _c$ = memo(() => !!!props.disableInjectingGlobalStyles); 8041 return () => _c$() && inputGlobalStyles(); 8042 })()), createComponent(Dynamic_default, mergeProps(rootProps, otherProps, { 8043 get $component() { 8044 return Root(); 8045 } 8046 }, () => !isHostComponent_default(Root()) && { 8047 ownerState: rootOwnerState 8048 }, { 8049 onClick: (event) => { 8050 if (inputRef.ref && event.currentTarget === event.target) { 8051 inputRef.ref.focus(); 8052 } 8053 if (typeof otherProps.onClick === "function") { 8054 otherProps.onClick(event); 8055 } 8056 }, 8057 get ["class"]() { 8058 return clsx_m_default(classes.root, rootProps().class, otherProps.class); 8059 }, 8060 get children() { 8061 return [memo(() => props.startAdornment), createComponent(FormControlContext_default.Provider, { 8062 value: void 0, 8063 get children() { 8064 return createComponent(Dynamic_default, mergeProps({ 8065 get $component() { 8066 return Input3(); 8067 }, 8068 ownerState, 8069 get ["aria-invalid"]() { 8070 return fcs.error; 8071 }, 8072 get ["aria-describedby"]() { 8073 return props["aria-describedby"]; 8074 }, 8075 get autocomplete() { 8076 return props.autoComplete; 8077 }, 8078 get autofocus() { 8079 return props.autoFocus; 8080 }, 8081 get disabled() { 8082 return fcs.disabled; 8083 }, 8084 get id() { 8085 return props.id; 8086 }, 8087 onAnimationStart: (event) => { 8088 checkDirty(event.animationName === "mui-auto-fill-cancel" ? inputRef.ref : { 8089 value: "x" 8090 }); 8091 }, 8092 get name() { 8093 return props.name; 8094 }, 8095 get placeholder() { 8096 return props.placeholder; 8097 }, 8098 get readOnly() { 8099 return props.readOnly; 8100 }, 8101 get required() { 8102 return fcs.required; 8103 } 8104 }, () => ({ 8105 rows: props.rows 8106 }), { 8107 get value() { 8108 return value(); 8109 }, 8110 get onKeyDown() { 8111 return props.onKeyDown; 8112 }, 8113 get onKeyUp() { 8114 return props.onKeyUp; 8115 }, 8116 get type() { 8117 return props.type; 8118 } 8119 }, inputProps, () => !isHostComponent_default(Input3()) && { 8120 as: InputComponent(), 8121 ownerState: inputOwnerState 8122 }, { 8123 ref: inputRef, 8124 get ["class"]() { 8125 return clsx_m_default(classes.input, inputProps().class); 8126 }, 8127 onBlur: (event) => { 8128 props.onBlur?.(event); 8129 if (typeof props.inputProps.onBlur === "function") { 8130 props.inputProps.onBlur(event); 8131 } 8132 if (muiFormControl && muiFormControl.onBlur) { 8133 muiFormControl.onBlur(); 8134 } else { 8135 setFocused(false); 8136 } 8137 }, 8138 onInput: (event) => { 8139 if (!isControlled) { 8140 const element = event.target || inputRef.ref; 8141 if (element == null) { 8142 throw new Error("MUI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info."); 8143 } 8144 checkDirty({ 8145 value: element.value 8146 }); 8147 } 8148 }, 8149 onFocus: (event) => { 8150 if (fcs.disabled) { 8151 event.stopPropagation(); 8152 return; 8153 } 8154 if (typeof props.onFocus === "function") { 8155 props.onFocus(event); 8156 } 8157 if (typeof props.inputProps.onFocus === "function") { 8158 props.inputProps.onFocus(event); 8159 } 8160 if (muiFormControl && muiFormControl.onFocus) { 8161 muiFormControl.onFocus(); 8162 } else { 8163 setFocused(true); 8164 } 8165 } 8166 })); 8167 } 8168 }), memo(() => props.endAdornment), memo(() => suffix())]; 8169 } 8170 }))]; 8171}); 8172var InputBase_default = InputBase; 8173
vendor: 359 bytes, lines 8174-8183
8174// node_modules/@suid/material/FilledInput/filledInputClasses.js 8175function getFilledInputUtilityClass(slot) { 8176 return generateUtilityClass("MuiFilledInput", slot); 8177} 8178var filledInputClasses = { 8179 ...inputBaseClasses_default, 8180 ...generateUtilityClasses("MuiFilledInput", ["root", "underline", "input"]) 8181}; 8182var filledInputClasses_default = filledInputClasses; 8183
vendor: 6,057 bytes, lines 8184-8386
8184// node_modules/@suid/material/FilledInput/FilledInput.jsx 8185var $34 = createComponentFactory_default()({ 8186 name: "MuiFilledInput", 8187 propDefaults: ({ 8188 set 8189 }) => set({ 8190 components: {}, 8191 fullWidth: false, 8192 inputComponent: "input", 8193 multiline: false, 8194 type: "text", 8195 hiddenLabel: false 8196 }), 8197 selfPropNames: ["classes", "disableUnderline", "hiddenLabel"], 8198 utilityClass: getFilledInputUtilityClass, 8199 slotClasses: (ownerState) => ({ 8200 root: ["root", !ownerState.disableUnderline && "underline"], 8201 input: ["input"] 8202 }) 8203}); 8204var FilledInputRoot = styled_default(InputBaseRoot, { 8205 /*shouldForwardProp: (prop) => 8206 rootShouldForwardProp(prop) || prop === "classes",*/ 8207 name: "MuiFilledInput", 8208 slot: "Root", 8209 overridesResolver: (props, styles3) => { 8210 const { 8211 ownerState 8212 } = props; 8213 return [...rootOverridesResolver(props, styles3), !ownerState.disableUnderline && styles3.underline]; 8214 } 8215})(({ 8216 theme, 8217 ownerState 8218}) => { 8219 const light = theme.palette.mode === "light"; 8220 const bottomLineColor = light ? "rgba(0, 0, 0, 0.42)" : "rgba(255, 255, 255, 0.7)"; 8221 const backgroundColor = light ? "rgba(0, 0, 0, 0.06)" : "rgba(255, 255, 255, 0.09)"; 8222 return { 8223 position: "relative", 8224 backgroundColor, 8225 borderTopLeftRadius: theme.shape.borderRadius, 8226 borderTopRightRadius: theme.shape.borderRadius, 8227 transition: theme.transitions.create("background-color", { 8228 duration: theme.transitions.duration.shorter, 8229 easing: theme.transitions.easing.easeOut 8230 }), 8231 "&:hover": { 8232 backgroundColor: light ? "rgba(0, 0, 0, 0.09)" : "rgba(255, 255, 255, 0.13)", 8233 // Reset on touch devices, it doesn't add specificity 8234 "@media (hover: none)": { 8235 backgroundColor 8236 } 8237 }, 8238 [`&.${filledInputClasses_default.focused}`]: { 8239 backgroundColor 8240 }, 8241 [`&.${filledInputClasses_default.disabled}`]: { 8242 backgroundColor: light ? "rgba(0, 0, 0, 0.12)" : "rgba(255, 255, 255, 0.12)" 8243 }, 8244 ...!ownerState.disableUnderline && { 8245 "&:after": { 8246 borderBottom: `2px solid ${theme.palette[ownerState.color].main}`, 8247 left: 0, 8248 bottom: 0, 8249 // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 8250 content: '""', 8251 position: "absolute", 8252 right: 0, 8253 transform: "scaleX(0)", 8254 transition: theme.transitions.create("transform", { 8255 duration: theme.transitions.duration.shorter, 8256 easing: theme.transitions.easing.easeOut 8257 }), 8258 pointerEvents: "none" 8259 // Transparent to the hover style. 8260 }, 8261 [`&.${filledInputClasses_default.focused}:after`]: { 8262 transform: "scaleX(1)" 8263 }, 8264 [`&.${filledInputClasses_default.error}:after`]: { 8265 borderBottomColor: theme.palette.error.main, 8266 transform: "scaleX(1)" 8267 // error is always underlined in red 8268 }, 8269 "&:before": { 8270 borderBottom: `1px solid ${bottomLineColor}`, 8271 left: 0, 8272 bottom: 0, 8273 // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 8274 content: '"\\00a0"', 8275 position: "absolute", 8276 right: 0, 8277 transition: theme.transitions.create("border-bottom-color", { 8278 duration: theme.transitions.duration.shorter 8279 }), 8280 pointerEvents: "none" 8281 // Transparent to the hover style. 8282 }, 8283 [`&:hover:not(.${filledInputClasses_default.disabled}):before`]: { 8284 borderBottom: `1px solid ${theme.palette.text.primary}` 8285 }, 8286 [`&.${filledInputClasses_default.disabled}:before`]: { 8287 borderBottomStyle: "dotted" 8288 } 8289 }, 8290 ...ownerState.startAdornment && { 8291 paddingLeft: 12 8292 }, 8293 ...ownerState.endAdornment && { 8294 paddingRight: 12 8295 }, 8296 ...ownerState.multiline && { 8297 padding: "25px 12px 8px", 8298 ...ownerState.size === "small" && { 8299 paddingTop: 21, 8300 paddingBottom: 4 8301 }, 8302 ...ownerState.hiddenLabel && { 8303 paddingTop: 16, 8304 paddingBottom: 17 8305 } 8306 } 8307 }; 8308}); 8309var FilledInputInput = styled_default(InputBaseComponent, { 8310 name: "MuiFilledInput", 8311 slot: "Input", 8312 overridesResolver: inputOverridesResolver 8313})(({ 8314 theme, 8315 ownerState 8316}) => ({ 8317 paddingTop: 25, 8318 paddingRight: 12, 8319 paddingBottom: 8, 8320 paddingLeft: 12, 8321 "&:-webkit-autofill": { 8322 WebkitBoxShadow: theme.palette.mode === "light" ? null : "0 0 0 100px #266798 inset", 8323 WebkitTextFillColor: theme.palette.mode === "light" ? null : "#fff", 8324 caretColor: theme.palette.mode === "light" ? null : "#fff", 8325 borderTopLeftRadius: "inherit", 8326 borderTopRightRadius: "inherit" 8327 }, 8328 ...ownerState.size === "small" && { 8329 paddingTop: 21, 8330 paddingBottom: 4 8331 }, 8332 ...ownerState.hiddenLabel && { 8333 paddingTop: 16, 8334 paddingBottom: 17 8335 }, 8336 ...ownerState.multiline && { 8337 paddingTop: 0, 8338 paddingBottom: 0, 8339 paddingLeft: 0, 8340 paddingRight: 0 8341 }, 8342 ...ownerState.startAdornment && { 8343 paddingLeft: 0 8344 }, 8345 ...ownerState.endAdornment && { 8346 paddingRight: 0 8347 }, 8348 ...ownerState.hiddenLabel && ownerState.size === "small" && { 8349 paddingTop: 8, 8350 paddingBottom: 9 8351 } 8352})); 8353var FilledInput = $34.component(function FilledInput2({ 8354 allProps, 8355 classes, 8356 otherProps, 8357 props 8358}) { 8359 const componentProps = createMemo(() => { 8360 const filledInputComponentsProps = { 8361 root: { 8362 ownerState: allProps 8363 }, 8364 input: { 8365 ownerState: allProps 8366 } 8367 }; 8368 return otherProps.componentsProps ? deepmerge(otherProps.componentsProps, filledInputComponentsProps) : filledInputComponentsProps; 8369 }); 8370 const allClasses = mergeProps(() => props.classes || {}, classes); 8371 return createComponent(InputBase_default, mergeProps(otherProps, { 8372 get components() { 8373 return { 8374 Root: FilledInputRoot, 8375 Input: FilledInputInput, 8376 ...otherProps.components || {} 8377 }; 8378 }, 8379 get componentsProps() { 8380 return componentProps(); 8381 }, 8382 classes: allClasses 8383 })); 8384}); 8385var FilledInput_default = FilledInput; 8386
vendor: 316 bytes, lines 8387-8392
8387// node_modules/@suid/material/FormControl/formControlClasses.js 8388function getFormControlUtilityClasses(slot) { 8389 return generateUtilityClass("MuiFormControl", slot); 8390} 8391var formControlClasses = generateUtilityClasses("MuiFormControl", ["root", "marginNone", "marginNormal", "marginDense", "fullWidth", "disabled"]); 8392
vendor: 3,791 bytes, lines 8393-8545
8393// node_modules/@suid/material/FormControl/FormControl.jsx 8394var $35 = createComponentFactory_default()({ 8395 name: "MuiFormControl", 8396 selfPropNames: ["children", "classes", "color", "disabled", "error", "focused", "fullWidth", "hiddenLabel", "margin", "required", "size", "variant"], 8397 propDefaults: ({ 8398 set 8399 }) => set({ 8400 color: "primary", 8401 component: "div", 8402 disabled: false, 8403 error: false, 8404 fullWidth: false, 8405 hiddenLabel: false, 8406 margin: "none", 8407 required: false, 8408 size: "medium", 8409 variant: "outlined" 8410 }), 8411 utilityClass: getFormControlUtilityClasses, 8412 slotClasses: (ownerState) => ({ 8413 root: ["root", ownerState.margin !== "none" && `margin${capitalize_default(ownerState.margin)}`, ownerState.fullWidth && "fullWidth"] 8414 }) 8415}); 8416var FormControlRoot = styled_default("div", { 8417 name: "MuiFormControl", 8418 slot: "Root", 8419 overridesResolver: ({ 8420 ownerState 8421 }, styles3) => { 8422 return { 8423 ...styles3.root, 8424 ...styles3[`margin${capitalize_default(ownerState.margin)}`], 8425 ...ownerState.fullWidth && styles3.fullWidth 8426 }; 8427 } 8428})(({ 8429 ownerState 8430}) => ({ 8431 display: "inline-flex", 8432 flexDirection: "column", 8433 position: "relative", 8434 // Reset fieldset default style. 8435 minWidth: 0, 8436 padding: 0, 8437 margin: 0, 8438 border: 0, 8439 verticalAlign: "top", 8440 ...ownerState.margin === "normal" && { 8441 marginTop: 16, 8442 marginBottom: 8 8443 }, 8444 ...ownerState.margin === "dense" && { 8445 marginTop: 8, 8446 marginBottom: 4 8447 }, 8448 ...ownerState.fullWidth && { 8449 width: "100%" 8450 } 8451})); 8452var FormControl = $35.component(function FormControl2({ 8453 allProps, 8454 classes, 8455 otherProps, 8456 props 8457}) { 8458 const [filled, setFilled] = createSignal(false); 8459 const [focusedState, setFocused] = createSignal(false); 8460 createEffect(() => { 8461 if (props.disabled && focusedState()) setFocused(false); 8462 }); 8463 const focused = () => props.focused !== void 0 && !props.disabled ? props.focused : focusedState(); 8464 let registerEffect; 8465 if (true) { 8466 const registeredInput = { 8467 ref: false 8468 }; 8469 registerEffect = () => { 8470 if (registeredInput.ref) { 8471 console.error(["MUI: There are multiple `InputBase` components inside a FormControl.", "This creates visual inconsistencies, only use one `InputBase`."].join("\n")); 8472 } 8473 registeredInput.ref = true; 8474 }; 8475 } 8476 return createComponent(FormControlContext_default.Provider, { 8477 value: { 8478 get adornedStart() { 8479 return false; 8480 }, 8481 setAdornedStart: () => { 8482 return void 0; 8483 }, 8484 get margin() { 8485 return props.margin; 8486 }, 8487 get color() { 8488 return props.color; 8489 }, 8490 get disabled() { 8491 return props.disabled; 8492 }, 8493 get error() { 8494 return props.error; 8495 }, 8496 get filled() { 8497 return filled(); 8498 }, 8499 get focused() { 8500 return focused(); 8501 }, 8502 get fullWidth() { 8503 return props.fullWidth; 8504 }, 8505 get hiddenLabel() { 8506 return props.hiddenLabel; 8507 }, 8508 get size() { 8509 return props.size; 8510 }, 8511 onBlur: () => { 8512 setFocused(false); 8513 }, 8514 onEmpty: () => { 8515 setFilled(false); 8516 }, 8517 onFilled: () => { 8518 setFilled(true); 8519 }, 8520 onFocus: () => { 8521 setFocused(true); 8522 }, 8523 registerEffect, 8524 get required() { 8525 return props.required; 8526 }, 8527 get variant() { 8528 return props.variant; 8529 } 8530 }, 8531 get children() { 8532 return createComponent(FormControlRoot, mergeProps(otherProps, { 8533 ownerState: allProps, 8534 get ["class"]() { 8535 return clsx_m_default(classes.root, otherProps.class); 8536 }, 8537 get children() { 8538 return props.children; 8539 } 8540 })); 8541 } 8542 }); 8543}); 8544var FormControl_default = FormControl; 8545
vendor: 437 bytes, lines 8546-8562
8546// node_modules/@suid/material/FormHelperText/formHelperTextClasses.js 8547function getFormHelperTextUtilityClasses(slot) { 8548 return generateUtilityClass("MuiFormHelperText", slot); 8549} 8550var formHelperTextClasses = generateUtilityClasses("MuiFormHelperText", [ 8551 "root", 8552 "error", 8553 "disabled", 8554 "sizeSmall", 8555 "sizeMedium", 8556 "contained", 8557 "focused", 8558 "filled", 8559 "required" 8560]); 8561var formHelperTextClasses_default = formHelperTextClasses; 8562
vendor: 3,119 bytes, lines 8563-8669
8563// node_modules/@suid/material/FormHelperText/FormHelperText.jsx 8564var _tmpl$6 = /* @__PURE__ */ template(`<span class="notranslate">​`); 8565var $36 = createComponentFactory_default()({ 8566 name: "MuiFormHelperText", 8567 propDefaults: ({ 8568 set 8569 }) => set({ 8570 component: "p" 8571 }), 8572 selfPropNames: ["children", "classes", "disabled", "error", "filled", "focused", "margin", "required", "variant"], 8573 utilityClass: getFormHelperTextUtilityClasses, 8574 autoCallUseClasses: false, 8575 slotClasses: (ownerState) => ({ 8576 root: ["root", !!ownerState.disabled && "disabled", !!ownerState.error && "error", !!ownerState.size && `size${capitalize_default(ownerState.size)}`, ownerState.contained && "contained", !!ownerState.focused && "focused", !!ownerState.filled && "filled", !!ownerState.required && "required"] 8577 }) 8578}); 8579var FormHelperTextRoot = styled_default("p", { 8580 name: "MuiFormHelperText", 8581 slot: "Root", 8582 overridesResolver: (props, styles3) => { 8583 const { 8584 ownerState 8585 } = props; 8586 return [styles3.root, ownerState.size && styles3[`size${capitalize_default(ownerState.size)}`], ownerState.contained && styles3.contained, ownerState.filled && styles3.filled]; 8587 } 8588})(({ 8589 theme, 8590 ownerState 8591}) => ({ 8592 color: theme.palette.text.secondary, 8593 ...theme.typography.caption, 8594 textAlign: "left", 8595 marginTop: 3, 8596 marginRight: 0, 8597 marginBottom: 0, 8598 marginLeft: 0, 8599 [`&.${formHelperTextClasses_default.disabled}`]: { 8600 color: theme.palette.text.disabled 8601 }, 8602 [`&.${formHelperTextClasses_default.error}`]: { 8603 color: theme.palette.error.main 8604 }, 8605 ...ownerState.size === "small" && { 8606 marginTop: 4 8607 }, 8608 ...ownerState.contained && { 8609 marginLeft: 14, 8610 marginRight: 14 8611 } 8612})); 8613var FormHelperText = $36.component(function FormHelperText2({ 8614 allProps, 8615 otherProps, 8616 props 8617}) { 8618 const muiFormControl = useFormControl(); 8619 const fcs = formControlState({ 8620 props: allProps, 8621 muiFormControl, 8622 states: ["variant", "size", "disabled", "error", "filled", "focused", "required"] 8623 }); 8624 const ownerState = mergeProps(allProps, { 8625 get contained() { 8626 return fcs.variant === "filled" || fcs.variant === "outlined"; 8627 }, 8628 get variant() { 8629 return fcs.variant; 8630 }, 8631 get size() { 8632 return fcs.size; 8633 }, 8634 get disabled() { 8635 return fcs.disabled; 8636 }, 8637 get error() { 8638 return fcs.error; 8639 }, 8640 get filled() { 8641 return fcs.filled; 8642 }, 8643 get focused() { 8644 return fcs.focused; 8645 }, 8646 get required() { 8647 return fcs.required; 8648 } 8649 }); 8650 const classes = $36.useClasses(ownerState); 8651 const resolved = children(() => props.children); 8652 return createComponent(FormHelperTextRoot, mergeProps(otherProps, { 8653 get as() { 8654 return otherProps.component; 8655 }, 8656 ownerState, 8657 get ["class"]() { 8658 return clsx_m_default(classes.root, otherProps.class); 8659 }, 8660 get children() { 8661 return memo(() => resolved() === " ")() ? ( 8662 // notranslate needed while Google Translate will not fix zero-width space issue 8663 _tmpl$6() 8664 ) : resolved(); 8665 } 8666 })); 8667}); 8668var FormHelperText_default = FormHelperText; 8669
vendor: 311 bytes, lines 8670-8679
8670// node_modules/@suid/material/Input/inputClasses.js 8671function getInputUtilityClass(slot) { 8672 return generateUtilityClass("MuiInput", slot); 8673} 8674var inputClasses = { 8675 ...inputBaseClasses_default, 8676 ...generateUtilityClasses("MuiInput", ["root", "underline", "input"]) 8677}; 8678var inputClasses_default = inputClasses; 8679
vendor: 3,938 bytes, lines 8680-8811
8680// node_modules/@suid/material/Input/Input.jsx 8681var $37 = createComponentFactory_default()({ 8682 name: "MuiInput", 8683 propDefaults: ({ 8684 set 8685 }) => set({ 8686 components: {}, 8687 fullWidth: false, 8688 inputComponent: "input", 8689 multiline: false, 8690 type: "text" 8691 }), 8692 selfPropNames: ["classes", "disableUnderline"], 8693 utilityClass: getInputUtilityClass, 8694 slotClasses: (ownerState) => ({ 8695 root: ["root", !ownerState.disableUnderline && "underline"], 8696 input: ["input"] 8697 }) 8698}); 8699var InputRoot = styled_default(InputBaseRoot, { 8700 skipProps: skipRootProps.filter((v) => v !== "classes"), 8701 name: "MuiInput", 8702 slot: "Root", 8703 overridesResolver: (props, styles3) => { 8704 const { 8705 ownerState 8706 } = props; 8707 return [...rootOverridesResolver(props, styles3), !ownerState.disableUnderline && styles3.underline]; 8708 } 8709})(({ 8710 theme, 8711 ownerState 8712}) => { 8713 const light = theme.palette.mode === "light"; 8714 const bottomLineColor = light ? "rgba(0, 0, 0, 0.42)" : "rgba(255, 255, 255, 0.7)"; 8715 return { 8716 position: "relative", 8717 ...ownerState.formControl && { 8718 "label + &": { 8719 marginTop: 16 8720 } 8721 }, 8722 ...!ownerState.disableUnderline && { 8723 "&:after": { 8724 borderBottom: `2px solid ${theme.palette[ownerState.color].main}`, 8725 left: 0, 8726 bottom: 0, 8727 // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 8728 content: '""', 8729 position: "absolute", 8730 right: 0, 8731 transform: "scaleX(0)", 8732 transition: theme.transitions.create("transform", { 8733 duration: theme.transitions.duration.shorter, 8734 easing: theme.transitions.easing.easeOut 8735 }), 8736 pointerEvents: "none" 8737 // Transparent to the hover style. 8738 }, 8739 [`&.${inputClasses_default.focused}:after`]: { 8740 transform: "scaleX(1)" 8741 }, 8742 [`&.${inputClasses_default.error}:after`]: { 8743 borderBottomColor: theme.palette.error.main, 8744 transform: "scaleX(1)" 8745 // error is always underlined in red 8746 }, 8747 "&:before": { 8748 borderBottom: `1px solid ${bottomLineColor}`, 8749 left: 0, 8750 bottom: 0, 8751 // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242 8752 content: '"\\00a0"', 8753 position: "absolute", 8754 right: 0, 8755 transition: theme.transitions.create("border-bottom-color", { 8756 duration: theme.transitions.duration.shorter 8757 }), 8758 pointerEvents: "none" 8759 // Transparent to the hover style. 8760 }, 8761 [`&:hover:not(.${inputClasses_default.disabled}):before`]: { 8762 borderBottom: `2px solid ${theme.palette.text.primary}`, 8763 // Reset on touch devices, it doesn't add specificity 8764 "@media (hover: none)": { 8765 borderBottom: `1px solid ${bottomLineColor}` 8766 } 8767 }, 8768 [`&.${inputClasses_default.disabled}:before`]: { 8769 borderBottomStyle: "dotted" 8770 } 8771 } 8772 }; 8773}); 8774var InputInput = styled_default(InputBaseComponent, { 8775 name: "MuiInput", 8776 slot: "Input", 8777 overridesResolver: inputOverridesResolver 8778})({}); 8779var Input = $37.component(function Input2({ 8780 classes, 8781 otherProps, 8782 props 8783}) { 8784 const componentsProps = createMemo(() => { 8785 const ownerState = { 8786 disableUnderline: props.disableUnderline 8787 }; 8788 const inputComponentsProps = { 8789 root: { 8790 ownerState 8791 } 8792 }; 8793 return otherProps.componentsProps ? deepmerge(otherProps.componentsProps, inputComponentsProps) : inputComponentsProps; 8794 }); 8795 const allClasses = mergeProps(classes, () => props.classes || {}); 8796 return createComponent(InputBase_default, mergeProps(otherProps, { 8797 get components() { 8798 return { 8799 Root: InputRoot, 8800 Input: InputInput, 8801 ...otherProps.components || {} 8802 }; 8803 }, 8804 get componentsProps() { 8805 return componentsProps(); 8806 }, 8807 classes: allClasses 8808 })); 8809}); 8810var Input_default = Input; 8811
vendor: 385 bytes, lines 8812-8827
8812// node_modules/@suid/material/FormLabel/formLabelClasses.js 8813function getFormLabelUtilityClasses(slot) { 8814 return generateUtilityClass("MuiFormLabel", slot); 8815} 8816var formLabelClasses = generateUtilityClasses("MuiFormLabel", [ 8817 "root", 8818 "colorSecondary", 8819 "focused", 8820 "disabled", 8821 "error", 8822 "filled", 8823 "required", 8824 "asterisk" 8825]); 8826var formLabelClasses_default = formLabelClasses; 8827
vendor: 3,211 bytes, lines 8828-8948
8828// node_modules/@suid/material/FormLabel/FormLabel.jsx 8829var $38 = createComponentFactory_default()({ 8830 name: "MuiFormLabel", 8831 propDefaults: ({ 8832 set 8833 }) => set({ 8834 component: "label" 8835 }), 8836 selfPropNames: ["children", "classes", "color", "disabled", "error", "filled", "focused", "required"], 8837 autoCallUseClasses: false, 8838 utilityClass: getFormLabelUtilityClasses, 8839 slotClasses: (ownerState) => ({ 8840 root: ["root", `color${capitalize_default(ownerState.color)}`, !!ownerState.disabled && "disabled", !!ownerState.error && "error", !!ownerState.filled && "filled", !!ownerState.focused && "focused", !!ownerState.required && "required"], 8841 asterisk: ["asterisk", !!ownerState.error && "error"] 8842 }) 8843}); 8844var FormLabelRoot = styled_default("label", { 8845 name: "MuiFormLabel", 8846 slot: "Root", 8847 overridesResolver: ({ 8848 ownerState 8849 }, styles3) => { 8850 return { 8851 ...styles3.root, 8852 ...ownerState.color === "secondary" && styles3.colorSecondary, 8853 ...ownerState.filled && styles3.filled 8854 }; 8855 } 8856})(({ 8857 theme, 8858 ownerState 8859}) => ({ 8860 color: theme.palette.text.secondary, 8861 ...theme.typography.body1, 8862 lineHeight: "1.4375em", 8863 padding: 0, 8864 position: "relative", 8865 [`&.${formLabelClasses_default.focused}`]: { 8866 color: theme.palette[ownerState.color].main 8867 }, 8868 [`&.${formLabelClasses_default.disabled}`]: { 8869 color: theme.palette.text.disabled 8870 }, 8871 [`&.${formLabelClasses_default.error}`]: { 8872 color: theme.palette.error.main 8873 } 8874})); 8875var AsteriskComponent = styled_default("span", { 8876 name: "MuiFormLabel", 8877 slot: "Asterisk", 8878 overridesResolver: (props, styles3) => styles3.asterisk 8879})(({ 8880 theme 8881}) => ({ 8882 [`&.${formLabelClasses_default.error}`]: { 8883 color: theme.palette.error.main 8884 } 8885})); 8886var FormLabel = $38.component(function FormLabel2({ 8887 allProps, 8888 otherProps, 8889 props 8890}) { 8891 const muiFormControl = useFormControl(); 8892 const fcs = formControlState({ 8893 props: allProps, 8894 muiFormControl, 8895 states: ["color", "required", "focused", "disabled", "error", "filled"] 8896 }); 8897 const ownerState = mergeProps(allProps, { 8898 get color() { 8899 return fcs.color || "primary"; 8900 }, 8901 get disabled() { 8902 return fcs.disabled; 8903 }, 8904 get error() { 8905 return fcs.error; 8906 }, 8907 get filled() { 8908 return fcs.filled; 8909 }, 8910 get focused() { 8911 return fcs.focused; 8912 }, 8913 get required() { 8914 return fcs.required; 8915 } 8916 }); 8917 const classes = $38.useClasses(ownerState); 8918 return createComponent(FormLabelRoot, mergeProps(otherProps, { 8919 get as() { 8920 return otherProps.component; 8921 }, 8922 ownerState, 8923 get ["class"]() { 8924 return clsx_m_default(classes.root, otherProps.class); 8925 }, 8926 get children() { 8927 return [memo(() => props.children), createComponent(Show, { 8928 get when() { 8929 return fcs.required; 8930 }, 8931 get children() { 8932 return createComponent(AsteriskComponent, { 8933 ownerState, 8934 "aria-hidden": true, 8935 get ["class"]() { 8936 return classes.asterisk; 8937 }, 8938 get children() { 8939 return ["\u2009", "*"]; 8940 } 8941 }); 8942 } 8943 })]; 8944 } 8945 })); 8946}); 8947var FormLabel_default = FormLabel; 8948
vendor: 408 bytes, lines 8949-8968
8949// node_modules/@suid/material/InputLabel/inputLabelClasses.js 8950function getInputLabelUtilityClasses(slot) { 8951 return generateUtilityClass("MuiInputLabel", slot); 8952} 8953var inputLabelClasses = generateUtilityClasses("MuiInputLabel", [ 8954 "root", 8955 "focused", 8956 "disabled", 8957 "error", 8958 "required", 8959 "asterisk", 8960 "formControl", 8961 "sizeSmall", 8962 "shrink", 8963 "animated", 8964 "standard", 8965 "filled", 8966 "outlined" 8967]); 8968
vendor: 4,803 bytes, lines 8969-9114
8969// node_modules/@suid/material/InputLabel/InputLabel.jsx 8970var $39 = createComponentFactory_default()({ 8971 name: "MuiInputLabel", 8972 propDefaults: ({ 8973 set 8974 }) => set({ 8975 disableAnimation: false 8976 }), 8977 selfPropNames: ["children", "classes", "color", "disableAnimation", "disabled", "error", "focused", "margin", "required", "shrink", "variant"], 8978 autoCallUseClasses: false, 8979 utilityClass: getInputLabelUtilityClasses, 8980 slotClasses: (ownerState) => ({ 8981 root: ["root", !!ownerState.formControl && "formControl", !ownerState.disableAnimation && "animated", !!ownerState.shrink && "shrink", ownerState.size === "small" && "sizeSmall", !!ownerState.variant && ownerState.variant], 8982 asterisk: [!!ownerState.required && "asterisk"] 8983 }) 8984}); 8985var InputLabelRoot = styled_default(FormLabel_default, { 8986 skipProps: skipRootProps.filter((v) => v !== "classes"), 8987 name: "MuiInputLabel", 8988 slot: "Root", 8989 overridesResolver: (props, styles3) => { 8990 const { 8991 ownerState 8992 } = props; 8993 return [{ 8994 [`& .${formLabelClasses_default.asterisk}`]: styles3.asterisk 8995 }, styles3.root, ownerState.formControl && styles3.formControl, ownerState.size === "small" && styles3.sizeSmall, ownerState.shrink && styles3.shrink, !ownerState.disableAnimation && styles3.animated, styles3[ownerState.variant]]; 8996 } 8997})(({ 8998 theme, 8999 ownerState 9000}) => ({ 9001 display: "block", 9002 transformOrigin: "top left", 9003 whiteSpace: "nowrap", 9004 overflow: "hidden", 9005 textOverflow: "ellipsis", 9006 maxWidth: "100%", 9007 ...ownerState.formControl && { 9008 position: "absolute", 9009 left: 0, 9010 top: 0, 9011 // slight alteration to spec spacing to match visual spec result 9012 transform: "translate(0, 20px) scale(1)" 9013 }, 9014 ...ownerState.size === "small" && { 9015 // Compensation for the `Input.inputSizeSmall` style. 9016 transform: "translate(0, 17px) scale(1)" 9017 }, 9018 ...ownerState.shrink && { 9019 transform: "translate(0, -1.5px) scale(0.75)", 9020 transformOrigin: "top left", 9021 maxWidth: "133%" 9022 }, 9023 ...!ownerState.disableAnimation && { 9024 transition: theme.transitions.create(["color", "transform", "max-width"], { 9025 duration: theme.transitions.duration.shorter, 9026 easing: theme.transitions.easing.easeOut 9027 }) 9028 }, 9029 ...ownerState.variant === "filled" && { 9030 // Chrome's autofill feature gives the input field a yellow background. 9031 // Since the input field is behind the label in the HTML tree, 9032 // the input field is drawn last and hides the label with an opaque background color. 9033 // zIndex: 1 will raise the label above opaque background-colors of input. 9034 zIndex: 1, 9035 pointerEvents: "none", 9036 transform: "translate(12px, 16px) scale(1)", 9037 maxWidth: "calc(100% - 24px)", 9038 ...ownerState.size === "small" && { 9039 transform: "translate(12px, 13px) scale(1)" 9040 }, 9041 ...ownerState.shrink && { 9042 userSelect: "none", 9043 pointerEvents: "auto", 9044 transform: "translate(12px, 7px) scale(0.75)", 9045 maxWidth: "calc(133% - 24px)", 9046 ...ownerState.size === "small" && { 9047 transform: "translate(12px, 4px) scale(0.75)" 9048 } 9049 } 9050 }, 9051 ...ownerState.variant === "outlined" && { 9052 // see comment above on filled.zIndex 9053 zIndex: 1, 9054 pointerEvents: "none", 9055 transform: "translate(14px, 16px) scale(1)", 9056 maxWidth: "calc(100% - 24px)", 9057 ...ownerState.size === "small" && { 9058 transform: "translate(14px, 9px) scale(1)" 9059 }, 9060 ...ownerState.shrink && { 9061 userSelect: "none", 9062 pointerEvents: "auto", 9063 maxWidth: "calc(133% - 24px)", 9064 transform: "translate(14px, -9px) scale(0.75)" 9065 } 9066 } 9067})); 9068var InputLabel = $39.component(function InputLabel2({ 9069 allProps, 9070 props 9071}) { 9072 const muiFormControl = useFormControl(); 9073 const [, baseProps] = splitProps(allProps, ["disableAnimation", "margin", "shrink", "variant"]); 9074 const shrink = () => { 9075 let shrink2 = props.shrink; 9076 if (typeof shrink2 === "undefined" && muiFormControl) { 9077 shrink2 = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart; 9078 } 9079 return shrink2; 9080 }; 9081 const fcs = formControlState({ 9082 props: allProps, 9083 muiFormControl, 9084 states: ["size", "variant", "required"] 9085 }); 9086 const ownerState = mergeProps(allProps, { 9087 get formControl() { 9088 return muiFormControl; 9089 }, 9090 get shrink() { 9091 return shrink(); 9092 }, 9093 get size() { 9094 return fcs.size; 9095 }, 9096 get variant() { 9097 return fcs.variant; 9098 }, 9099 get required() { 9100 return fcs.required; 9101 } 9102 }); 9103 const classes = $39.useClasses(ownerState); 9104 const allClasses = mergeProps(classes, () => props.classes || {}); 9105 return createComponent(InputLabelRoot, mergeProps(baseProps, { 9106 get ["data-shrink"]() { 9107 return shrink(); 9108 }, 9109 ownerState, 9110 classes: allClasses 9111 })); 9112}); 9113var InputLabel_default = InputLabel; 9114
vendor: 2,762 bytes, lines 9115-9222
9115// node_modules/@suid/material/OutlinedInput/NotchedOutline.jsx 9116var _tmpl$7 = /* @__PURE__ */ template(`<span>`); 9117var _tmpl$23 = /* @__PURE__ */ template(`<span class="notranslate">​`); 9118var $40 = createComponentFactory_default()({ 9119 name: "MuiNotchedOutline", 9120 selfPropNames: ["disabled", "error", "focused", "label", "notched"] 9121}); 9122var NotchedOutlineRoot = styled_default("fieldset")({ 9123 textAlign: "left", 9124 position: "absolute", 9125 bottom: 0, 9126 right: 0, 9127 top: -5, 9128 left: 0, 9129 margin: 0, 9130 padding: "0 8px", 9131 pointerEvents: "none", 9132 borderRadius: "inherit", 9133 borderStyle: "solid", 9134 borderWidth: 1, 9135 overflow: "hidden", 9136 minWidth: "0%" 9137}); 9138var NotchedOutlineLegend = styled_default("legend")(({ 9139 ownerState, 9140 theme 9141}) => ({ 9142 float: "unset", 9143 ...!ownerState.withLabel && { 9144 padding: 0, 9145 lineHeight: "11px", 9146 transition: theme.transitions.create("width", { 9147 duration: 150, 9148 easing: theme.transitions.easing.easeOut 9149 }) 9150 }, 9151 ...ownerState.withLabel && { 9152 display: "block", 9153 width: "auto", 9154 padding: 0, 9155 height: 11, 9156 fontSize: "0.75em", 9157 visibility: "hidden", 9158 maxWidth: 0.01, 9159 transition: theme.transitions.create("max-width", { 9160 duration: 50, 9161 easing: theme.transitions.easing.easeOut 9162 }), 9163 whiteSpace: "nowrap", 9164 "& > span": { 9165 paddingLeft: 5, 9166 paddingRight: 5, 9167 display: "inline-block" 9168 }, 9169 ...ownerState.notched && { 9170 maxWidth: "100%", 9171 transition: theme.transitions.create("max-width", { 9172 duration: 100, 9173 easing: theme.transitions.easing.easeOut, 9174 delay: 50 9175 }) 9176 } 9177 } 9178})); 9179var NotchedOutline = $40.component(function NotchedOutline2({ 9180 allProps, 9181 otherProps, 9182 props 9183}) { 9184 const withLabel = () => props.label != null && props.label !== ""; 9185 const ownerState = mergeProps(allProps, { 9186 get withLabel() { 9187 return withLabel(); 9188 } 9189 }); 9190 return createComponent(NotchedOutlineRoot, mergeProps(otherProps, { 9191 "aria-hidden": true, 9192 get ["class"]() { 9193 return otherProps.class; 9194 }, 9195 ownerState, 9196 get children() { 9197 return createComponent(NotchedOutlineLegend, { 9198 ownerState, 9199 get children() { 9200 return createComponent(Show, { 9201 get when() { 9202 return withLabel(); 9203 }, 9204 get fallback() { 9205 return ( 9206 // notranslate needed while Google Translate will not fix zero-width space issue 9207 _tmpl$23() 9208 ); 9209 }, 9210 get children() { 9211 const _el$ = _tmpl$7(); 9212 insert(_el$, () => props.label); 9213 return _el$; 9214 } 9215 }); 9216 } 9217 }); 9218 } 9219 })); 9220}); 9221var NotchedOutline_default = NotchedOutline; 9222
vendor: 396 bytes, lines 9223-9236
9223// node_modules/@suid/material/OutlinedInput/outlinedInputClasses.js 9224function getOutlinedInputUtilityClass(slot) { 9225 return generateUtilityClass("MuiOutlinedInput", slot); 9226} 9227var outlinedInputClasses = { 9228 ...inputBaseClasses_default, 9229 ...generateUtilityClasses("MuiOutlinedInput", [ 9230 "root", 9231 "notchedOutline", 9232 "input" 9233 ]) 9234}; 9235var outlinedInputClasses_default = outlinedInputClasses; 9236
vendor: 4,360 bytes, lines 9237-9384
9237// node_modules/@suid/material/OutlinedInput/OutlinedInput.jsx 9238var $41 = createComponentFactory_default()({ 9239 name: "MuiOutlinedInput", 9240 propDefaults: ({ 9241 set 9242 }) => set({ 9243 components: {}, 9244 fullWidth: false, 9245 inputComponent: "input", 9246 multiline: false, 9247 type: "text" 9248 }), 9249 selfPropNames: ["classes", "label", "notched"], 9250 utilityClass: getOutlinedInputUtilityClass, 9251 slotClasses: () => ({ 9252 root: ["root"], 9253 notchedOutline: ["notchedOutline"], 9254 input: ["input"] 9255 }) 9256}); 9257var OutlinedInputRoot = styled_default(InputBaseRoot, { 9258 skipProps: skipRootProps.filter((v) => v !== "classes"), 9259 name: "MuiOutlinedInput", 9260 slot: "Root", 9261 overridesResolver: rootOverridesResolver 9262})(({ 9263 theme, 9264 ownerState 9265}) => { 9266 const borderColor = theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.23)" : "rgba(255, 255, 255, 0.23)"; 9267 return { 9268 position: "relative", 9269 borderRadius: theme.shape.borderRadius, 9270 [`&:hover .${outlinedInputClasses_default.notchedOutline}`]: { 9271 borderColor: theme.palette.text.primary 9272 }, 9273 // Reset on touch devices, it doesn't add specificity 9274 "@media (hover: none)": { 9275 [`&:hover .${outlinedInputClasses_default.notchedOutline}`]: { 9276 borderColor 9277 } 9278 }, 9279 [`&.${outlinedInputClasses_default.focused} .${outlinedInputClasses_default.notchedOutline}`]: { 9280 // [review] ownerState.color is not required by MUI 9281 borderColor: theme.palette[ownerState.color].main, 9282 borderWidth: 2 9283 }, 9284 [`&.${outlinedInputClasses_default.error} .${outlinedInputClasses_default.notchedOutline}`]: { 9285 borderColor: theme.palette.error.main 9286 }, 9287 [`&.${outlinedInputClasses_default.disabled} .${outlinedInputClasses_default.notchedOutline}`]: { 9288 borderColor: theme.palette.action.disabled 9289 }, 9290 ...ownerState.startAdornment && { 9291 paddingLeft: 14 9292 }, 9293 ...ownerState.endAdornment && { 9294 paddingRight: 14 9295 }, 9296 ...ownerState.multiline && { 9297 padding: "16.5px 14px", 9298 ...ownerState.size === "small" && { 9299 padding: "8.5px 14px" 9300 } 9301 } 9302 }; 9303}); 9304var NotchedOutlineRoot2 = styled_default(NotchedOutline_default, { 9305 name: "MuiOutlinedInput", 9306 slot: "NotchedOutline", 9307 overridesResolver: (props, styles3) => styles3.notchedOutline 9308})(({ 9309 theme 9310}) => ({ 9311 borderColor: theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.23)" : "rgba(255, 255, 255, 0.23)" 9312})); 9313var OutlinedInputInput = styled_default(InputBaseComponent, { 9314 name: "MuiOutlinedInput", 9315 slot: "Input", 9316 overridesResolver: inputOverridesResolver 9317})(({ 9318 theme, 9319 ownerState 9320}) => ({ 9321 padding: "16.5px 14px", 9322 "&:-webkit-autofill": { 9323 WebkitBoxShadow: theme.palette.mode === "light" ? null : "0 0 0 100px #266798 inset", 9324 WebkitTextFillColor: theme.palette.mode === "light" ? null : "#fff", 9325 caretColor: theme.palette.mode === "light" ? null : "#fff", 9326 borderRadius: "inherit" 9327 }, 9328 ...ownerState.size === "small" && { 9329 padding: "8.5px 14px" 9330 }, 9331 ...ownerState.multiline && { 9332 padding: 0 9333 }, 9334 ...ownerState.startAdornment && { 9335 paddingLeft: 0 9336 }, 9337 ...ownerState.endAdornment && { 9338 paddingRight: 0 9339 } 9340})); 9341var OutlinedInput = $41.component(function OutlinedInput2({ 9342 allProps, 9343 classes, 9344 otherProps, 9345 props 9346}) { 9347 const muiFormControl = useFormControl(); 9348 const fcs = formControlState({ 9349 props: allProps, 9350 muiFormControl, 9351 states: ["required"] 9352 }); 9353 const label = createMemo(() => { 9354 const label2 = props.label; 9355 return label2 != null && label2 !== "" && fcs.required ? [label2, "\xA0", "*"] : label2; 9356 }); 9357 const allClasses = mergeProps(classes, () => props.classes || {}, { 9358 notchedOutline: null 9359 }); 9360 return createComponent(InputBase_default, mergeProps({ 9361 renderSuffix: (state) => createComponent(NotchedOutlineRoot2, { 9362 get ["class"]() { 9363 return classes.notchedOutline; 9364 }, 9365 get label() { 9366 return label(); 9367 }, 9368 get notched() { 9369 return memo(() => typeof props.notched !== "undefined")() ? props.notched : Boolean(state.startAdornment || state.filled || state.focused); 9370 } 9371 }) 9372 }, otherProps, { 9373 get components() { 9374 return { 9375 Root: OutlinedInputRoot, 9376 Input: OutlinedInputInput, 9377 ...otherProps.components || {} 9378 }; 9379 }, 9380 classes: allClasses 9381 })); 9382}); 9383var OutlinedInput_default = OutlinedInput; 9384
vendor: 232 bytes, lines 9385-9390
9385// node_modules/@suid/material/TextField/textFieldClasses.js 9386function getTextFieldUtilityClass(slot) { 9387 return generateUtilityClass("MuiTextField", slot); 9388} 9389var textFieldClasses = generateUtilityClasses("MuiTextField", ["root"]); 9390
vendor: 4,665 bytes, lines 9391-9567
9391// node_modules/@suid/material/TextField/TextField.jsx 9392var $42 = createComponentFactory_default()({ 9393 name: "MuiTextField", 9394 propDefaults: ({ 9395 set 9396 }) => set({ 9397 autoFocus: false, 9398 color: "primary", 9399 disabled: false, 9400 error: false, 9401 fullWidth: false, 9402 multiline: false, 9403 required: false, 9404 select: false, 9405 variant: "outlined" 9406 }), 9407 selfPropNames: ["FormHelperTextProps", "InputLabelProps", "InputProps", "autoComplete", "autoFocus", "children", "classes", "color", "defaultValue", "disabled", "error", "fullWidth", "helperText", "id", "inputProps", "inputRef", "label", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onFocus", "placeholder", "required", "rows", "select", "size", "type", "value", "variant"], 9408 utilityClass: getTextFieldUtilityClass, 9409 slotClasses: () => ({ 9410 root: ["root"] 9411 }) 9412}); 9413var variantComponent = { 9414 standard: Input_default, 9415 filled: FilledInput_default, 9416 outlined: OutlinedInput_default 9417}; 9418var TextFieldRoot = styled_default(FormControl_default, { 9419 name: "MuiTextField", 9420 slot: "Root", 9421 overridesResolver: (props, styles3) => styles3.root 9422})({}); 9423var TextField = $42.component(function TextField2({ 9424 allProps, 9425 classes, 9426 otherProps, 9427 props 9428}) { 9429 if (true) { 9430 createEffect(() => { 9431 if (props.select && !props.children) { 9432 console.error("MUI: `children` must be passed when using the `TextField` component with `select`."); 9433 } 9434 }); 9435 } 9436 const id = createUniqueId3(() => props.id); 9437 const helperTextId = () => props.helperText && id() ? `${id()}-helper-text` : void 0; 9438 const inputLabelId = () => props.label && id() ? `${id()}-label` : void 0; 9439 const InputComponent = () => variantComponent[props.variant]; 9440 const InputElement = () => createComponent(Dynamic_default, mergeProps({ 9441 get $component() { 9442 return InputComponent(); 9443 }, 9444 get ["aria-describedby"]() { 9445 return helperTextId(); 9446 }, 9447 get autoComplete() { 9448 return props.autoComplete; 9449 }, 9450 get autoFocus() { 9451 return props.autoFocus; 9452 }, 9453 get defaultValue() { 9454 return props.defaultValue; 9455 }, 9456 get fullWidth() { 9457 return props.fullWidth; 9458 }, 9459 get multiline() { 9460 return props.multiline; 9461 }, 9462 get name() { 9463 return props.name; 9464 }, 9465 get rows() { 9466 return props.rows; 9467 }, 9468 get maxRows() { 9469 return props.maxRows; 9470 }, 9471 get minRows() { 9472 return props.minRows; 9473 }, 9474 get type() { 9475 return props.type; 9476 }, 9477 get value() { 9478 return props.value; 9479 }, 9480 get id() { 9481 return id(); 9482 }, 9483 get inputRef() { 9484 return props.inputRef; 9485 }, 9486 get onBlur() { 9487 return props.onBlur; 9488 }, 9489 get onChange() { 9490 return props.onChange; 9491 }, 9492 get onFocus() { 9493 return props.onFocus; 9494 }, 9495 get placeholder() { 9496 return props.placeholder; 9497 }, 9498 get inputProps() { 9499 return props.inputProps; 9500 }, 9501 get size() { 9502 return props.size; 9503 }, 9504 get notched() { 9505 return props.variant === "outlined" && props.InputLabelProps && typeof props.InputLabelProps.shrink !== "undefined" ? props.InputLabelProps.shrink : void 0; 9506 }, 9507 get label() { 9508 return props.variant === "outlined" ? props.label : void 0; 9509 } 9510 }, () => props.InputProps || {})); 9511 const label = () => { 9512 const label2 = props.label; 9513 return label2 != null && label2 !== "" && createComponent(InputLabel_default, mergeProps({ 9514 get ["for"]() { 9515 return id(); 9516 }, 9517 get id() { 9518 return inputLabelId(); 9519 } 9520 }, () => props.InputLabelProps || {}, { 9521 children: label2 9522 })); 9523 }; 9524 const helperText = () => { 9525 const helperText2 = props.helperText; 9526 if (helperText2) return createComponent(FormHelperText_default, mergeProps({ 9527 get id() { 9528 return helperTextId(); 9529 } 9530 }, () => props.FormHelperTextProps || {}, { 9531 children: helperText2 9532 })); 9533 }; 9534 return createComponent(TextFieldRoot, mergeProps({ 9535 get ["class"]() { 9536 return clsx_m_default(classes.root, otherProps.class); 9537 }, 9538 get disabled() { 9539 return props.disabled; 9540 }, 9541 get error() { 9542 return props.error; 9543 }, 9544 get fullWidth() { 9545 return props.fullWidth; 9546 }, 9547 get required() { 9548 return props.required; 9549 }, 9550 get color() { 9551 return props.color; 9552 }, 9553 get variant() { 9554 return props.variant; 9555 }, 9556 get size() { 9557 return props.size; 9558 }, 9559 ownerState: allProps 9560 }, otherProps, { 9561 get children() { 9562 return [memo(() => label()), memo(() => InputElement()), memo(() => helperText())]; 9563 } 9564 })); 9565}); 9566var TextField_default = TextField; 9567
vendor: 186 bytes, lines 9568-9571
9568// node_modules/@suid/material/FormControlLabel/FormControlLabelContext.js 9569var FormControlLabelContext = createContext(); 9570var FormControlLabelContext_default = FormControlLabelContext; 9571
vendor: 453 bytes, lines 9572-9586
9572// node_modules/@suid/material/FormControlLabel/formControlLabelClasses.js 9573function getFormControlLabelUtilityClasses(slot) { 9574 return generateUtilityClass("MuiFormControlLabel", slot); 9575} 9576var formControlLabelClasses = generateUtilityClasses("MuiFormControlLabel", [ 9577 "root", 9578 "labelPlacementStart", 9579 "labelPlacementTop", 9580 "labelPlacementBottom", 9581 "disabled", 9582 "label", 9583 "error" 9584]); 9585var formControlLabelClasses_default = formControlLabelClasses; 9586
vendor: 3,930 bytes, lines 9587-9714
9587// node_modules/@suid/material/FormControlLabel/FormControlLabel.jsx 9588var $43 = createComponentFactory_default()({ 9589 name: "MuiFormControlLabel", 9590 propDefaults: ({ 9591 set 9592 }) => set({ 9593 componentsProps: {}, 9594 labelPlacement: "end" 9595 }), 9596 selfPropNames: ["checked", "classes", "componentsProps", "control", "disableTypography", "disabled", "inputRef", "label", "labelPlacement", "name", "onChange", "value"], 9597 autoCallUseClasses: false, 9598 utilityClass: getFormControlLabelUtilityClasses, 9599 slotClasses: (ownerState) => ({ 9600 root: ["root", !!ownerState.disabled && "disabled", `labelPlacement${capitalize_default(ownerState.labelPlacement)}`, !!ownerState.error && "error"], 9601 label: ["label", !!ownerState.disabled && "disabled"] 9602 }) 9603}); 9604var FormControlLabelRoot = styled_default("label", { 9605 name: "MuiFormControlLabel", 9606 slot: "Root", 9607 overridesResolver: (props, styles3) => { 9608 const { 9609 ownerState 9610 } = props; 9611 return [{ 9612 [`& .${formControlLabelClasses_default.label}`]: styles3.label 9613 }, styles3.root, styles3[`labelPlacement${capitalize_default(ownerState.labelPlacement)}`]]; 9614 } 9615})(({ 9616 theme, 9617 ownerState 9618}) => ({ 9619 display: "inline-flex", 9620 alignItems: "center", 9621 cursor: "pointer", 9622 // For correct alignment with the text. 9623 verticalAlign: "middle", 9624 WebkitTapHighlightColor: "transparent", 9625 marginLeft: -11, 9626 marginRight: 16, 9627 [`&.${formControlLabelClasses_default.disabled}`]: { 9628 cursor: "default" 9629 }, 9630 ...ownerState.labelPlacement === "start" && { 9631 flexDirection: "row-reverse", 9632 marginLeft: 16, 9633 marginRight: -11 9634 }, 9635 ...ownerState.labelPlacement === "top" && { 9636 flexDirection: "column-reverse", 9637 marginLeft: 16 9638 }, 9639 ...ownerState.labelPlacement === "bottom" && { 9640 flexDirection: "column", 9641 marginLeft: 16 9642 }, 9643 [`& .${formControlLabelClasses_default.label}`]: { 9644 [`&.${formControlLabelClasses_default.disabled}`]: { 9645 color: theme.palette.text.disabled 9646 } 9647 } 9648})); 9649var FormControlLabel = $43.component(function FormControlLabel2({ 9650 allProps, 9651 otherProps, 9652 props 9653}) { 9654 const muiFormControl = useFormControl(); 9655 const [partialContextProps] = splitProps(props, ["checked", "name", "onChange", "value", "inputRef", "disabled"]); 9656 const [childDisabled, setChildDisabled] = createSignal(props.disabled); 9657 const contextProps = mergeProps(partialContextProps, { 9658 setDisabled: (state) => setChildDisabled(state) 9659 }); 9660 const fcs = formControlState({ 9661 props: allProps, 9662 muiFormControl, 9663 states: ["error"] 9664 }); 9665 const ownerState = mergeProps(allProps, { 9666 get error() { 9667 return fcs.error; 9668 }, 9669 get disabled() { 9670 return childDisabled(); 9671 } 9672 }); 9673 const classes = $43.useClasses(ownerState); 9674 const isTypography = (v) => v instanceof HTMLElement && v.classList.contains(Typography_default.toString()); 9675 const Label = () => { 9676 const label = children(() => props.label); 9677 return createComponent(Show, { 9678 get when() { 9679 return isTypography(label()) || props.disableTypography; 9680 }, 9681 get fallback() { 9682 return createComponent(Typography_default, mergeProps({ 9683 component: "span", 9684 get ["class"]() { 9685 return classes.label; 9686 } 9687 }, () => props.componentsProps.typography, { 9688 get children() { 9689 return label(); 9690 } 9691 })); 9692 }, 9693 get children() { 9694 return label(); 9695 } 9696 }); 9697 }; 9698 return createComponent(FormControlLabelContext_default.Provider, { 9699 value: contextProps, 9700 get children() { 9701 return createComponent(FormControlLabelRoot, mergeProps(otherProps, { 9702 get ["class"]() { 9703 return clsx_m_default(classes.root, otherProps.class); 9704 }, 9705 ownerState, 9706 get children() { 9707 return [memo(() => props.control), createComponent(Label, {})]; 9708 } 9709 })); 9710 } 9711 }); 9712}); 9713var FormControlLabel_default = FormControlLabel; 9714
vendor: 248 bytes, lines 9715-9720
9715// node_modules/@suid/material/FormGroup/formGroupClasses.js 9716function getFormGroupUtilityClass(slot) { 9717 return generateUtilityClass("MuiFormGroup", slot); 9718} 9719var formGroupClasses = generateUtilityClasses("MuiFormGroup", ["root", "row", "error"]); 9720
vendor: 1,400 bytes, lines 9721-9782
9721// node_modules/@suid/material/FormGroup/FormGroup.jsx 9722var $44 = createComponentFactory_default()({ 9723 name: "MuiFormGroup", 9724 propDefaults: ({ 9725 set 9726 }) => set({ 9727 row: false 9728 }), 9729 selfPropNames: ["children", "classes", "row"], 9730 utilityClass: getFormGroupUtilityClass, 9731 slotClasses: (ownerState) => ({ 9732 root: ["root", ownerState.row && "row", !!ownerState.error && "error"] 9733 }) 9734}); 9735var FormGroupRoot = styled_default("div", { 9736 name: "MuiFormGroup", 9737 slot: "Root", 9738 overridesResolver: (props, styles3) => { 9739 const { 9740 ownerState 9741 } = props; 9742 return [styles3.root, ownerState.row && styles3.row]; 9743 } 9744})(({ 9745 ownerState 9746}) => ({ 9747 display: "flex", 9748 flexDirection: "column", 9749 flexWrap: "wrap", 9750 ...ownerState.row && { 9751 flexDirection: "row" 9752 } 9753})); 9754var FormGroup = $44.component(function FormGroup2({ 9755 props, 9756 allProps, 9757 classes, 9758 otherProps 9759}) { 9760 const muiFormControl = useFormControl(); 9761 const fcs = formControlState({ 9762 props: allProps, 9763 muiFormControl, 9764 states: ["error"] 9765 }); 9766 const ownerState = mergeProps(allProps, { 9767 get error() { 9768 return fcs.error; 9769 } 9770 }); 9771 return createComponent(FormGroupRoot, mergeProps(otherProps, { 9772 get ["class"]() { 9773 return clsx_m_default(classes.root, otherProps.class); 9774 }, 9775 ownerState, 9776 get children() { 9777 return props.children; 9778 } 9779 })); 9780}); 9781var FormGroup_default = FormGroup; 9782
vendor: 162 bytes, lines 9783-9786
9783// node_modules/@suid/material/RadioGroup/RadioGroupContext.js 9784var RadioGroupContext = createContext(void 0); 9785var RadioGroupContext_default = RadioGroupContext; 9786
vendor: 1,163 bytes, lines 9787-9831
9787// node_modules/@suid/material/RadioGroup/RadioGroup.jsx 9788var $45 = createComponentFactory_default()({ 9789 name: "MuiRadioGroup", 9790 selfPropNames: ["defaultValue", "name", "onChange", "value"] 9791}); 9792var RadioGroup = $45.component(function RadioGroup2({ 9793 props, 9794 otherProps 9795}) { 9796 const element = createRef_default(); 9797 const [value, setValueState] = useControlled({ 9798 controlled: () => props.value, 9799 default: () => props.defaultValue, 9800 name: "RadioGroup" 9801 }); 9802 const name = createUniqueId3(() => props.name); 9803 return createComponent(RadioGroupContext_default.Provider, { 9804 value: { 9805 get name() { 9806 return name(); 9807 }, 9808 onChange(event) { 9809 setValueState(event.target.value); 9810 if (props.onChange) { 9811 props.onChange(event, event.target.value); 9812 } 9813 }, 9814 get value() { 9815 return value(); 9816 } 9817 }, 9818 get children() { 9819 return createComponent(FormGroup_default, mergeProps({ 9820 role: "radiogroup", 9821 ref: element 9822 }, otherProps, { 9823 get children() { 9824 return otherProps.children; 9825 } 9826 })); 9827 } 9828 }); 9829}); 9830var RadioGroup_default = RadioGroup; 9831
vendor: 137 bytes, lines 9832-9836
9832// node_modules/@suid/material/RadioGroup/useRadioGroup.js 9833function useRadioGroup() { 9834 return useContext(RadioGroupContext_default); 9835} 9836
vendor: 145 bytes, lines 9837-9840
9837// node_modules/@suid/material/SvgIcon/SvgIconContext.jsx 9838var SvgIconContext2 = createContext(); 9839var SvgIconContext_default2 = SvgIconContext2; 9840
vendor: 161 bytes, lines 9841-9845
9841// node_modules/@suid/material/FormControlLabel/useFormControlLabel.js 9842function useFormControlLabel() { 9843 return useContext(FormControlLabelContext_default); 9844} 9845
vendor: 300 bytes, lines 9846-9851
9846// node_modules/@suid/material/internal/switchBaseClasses.js 9847function getSwitchBaseUtilityClass(slot) { 9848 return generateUtilityClass("PrivateSwitchBase", slot); 9849} 9850var switchBaseClasses = generateUtilityClasses("PrivateSwitchBase", ["root", "checked", "disabled", "input", "edgeStart", "edgeEnd"]); 9851
vendor: 5,144 bytes, lines 9852-10023
9852// node_modules/@suid/material/internal/SwitchBase.jsx 9853var $46 = createComponentFactory_default()({ 9854 name: "MuiSwitchBase", 9855 selfPropNames: ["autoFocus", "checked", "checkedIcon", "classes", "defaultChecked", "disableFocusRipple", "disableRipple", "disabled", "edge", "icon", "id", "inputProps", "inputRef", "name", "onChange", "readOnly", "required", "tabIndex", "type", "value"], 9856 autoCallUseClasses: false, 9857 propDefaults: ({ 9858 set 9859 }) => set({ 9860 disableFocusRipple: false, 9861 edge: false 9862 }), 9863 utilityClass: getSwitchBaseUtilityClass, 9864 slotClasses: (ownerState) => ({ 9865 root: ["root", !!ownerState.checked && "checked", !!ownerState.disabled && "disabled", ownerState.edge && `edge${capitalize_default(ownerState.edge)}`], 9866 input: ["input"] 9867 }) 9868}); 9869var SwitchBaseRoot = styled_default(ButtonBase_default)(({ 9870 ownerState 9871}) => ({ 9872 padding: 9, 9873 borderRadius: "50%", 9874 ...ownerState.edge === "start" && { 9875 marginLeft: ownerState.size === "small" ? -3 : -12 9876 }, 9877 ...ownerState.edge === "end" && { 9878 marginRight: ownerState.size === "small" ? -3 : -12 9879 } 9880})); 9881var SwitchBaseInput = styled_default("input")({ 9882 cursor: "inherit", 9883 position: "absolute", 9884 opacity: 0, 9885 width: "100%", 9886 height: "100%", 9887 top: 0, 9888 left: 0, 9889 margin: 0, 9890 padding: 0, 9891 zIndex: 1 9892}); 9893var SwitchBase = $46.component(function SwitchBase2({ 9894 allProps, 9895 otherProps, 9896 props 9897}) { 9898 const formControlLabel = useFormControlLabel(); 9899 const [checked, setCheckedState] = useControlled({ 9900 controlled: () => props.checked ?? formControlLabel?.checked, 9901 default: () => Boolean(props.defaultChecked), 9902 name: "SwitchBase", 9903 state: "checked" 9904 }); 9905 const muiFormControl = useFormControl(); 9906 const disabled = () => { 9907 if (typeof formControlLabel?.disabled !== "undefined") { 9908 return formControlLabel.disabled; 9909 } else if (muiFormControl && typeof props.disabled === "undefined") { 9910 return muiFormControl.disabled; 9911 } else { 9912 return props.disabled; 9913 } 9914 }; 9915 createEffect(() => { 9916 if (formControlLabel) { 9917 formControlLabel.setDisabled(!!disabled()); 9918 } 9919 }); 9920 const hasLabelFor = () => props.type === "checkbox" || props.type === "radio"; 9921 const ownerState = mergeProps(allProps, { 9922 get checked() { 9923 return checked(); 9924 }, 9925 get disabled() { 9926 return disabled(); 9927 } 9928 }); 9929 const classes = $46.useClasses(ownerState); 9930 const element = createRef_default(() => props.inputRef); 9931 const inputValue = () => props.value ?? formControlLabel?.value; 9932 createEffect(() => { 9933 if (typeof props.defaultChecked === "boolean") element.ref.defaultChecked = props.defaultChecked; 9934 }); 9935 createEffect(() => { 9936 const value = checked(); 9937 if (typeof value === "boolean") element.ref.checked = value; 9938 }); 9939 return createComponent(SwitchBaseRoot, mergeProps(otherProps, { 9940 component: "span", 9941 get ["class"]() { 9942 return clsx_m_default(classes.root, otherProps.class); 9943 }, 9944 centerRipple: true, 9945 get focusRipple() { 9946 return !props.disableFocusRipple; 9947 }, 9948 get disabled() { 9949 return disabled(); 9950 }, 9951 tabIndex: null, 9952 role: void 0, 9953 onFocus: (event) => { 9954 if (typeof otherProps.onFocus === "function") { 9955 otherProps.onFocus(event); 9956 } 9957 muiFormControl?.onFocus?.(); 9958 }, 9959 onBlur: (event) => { 9960 if (typeof otherProps.onBlur === "function") { 9961 otherProps.onBlur(event); 9962 } 9963 muiFormControl?.onBlur?.(); 9964 }, 9965 ownerState, 9966 get children() { 9967 return [createComponent(SwitchBaseInput, mergeProps({ 9968 as: "input", 9969 get autofocus() { 9970 return props.autoFocus; 9971 }, 9972 get ["class"]() { 9973 return classes.input; 9974 }, 9975 get disabled() { 9976 return disabled(); 9977 }, 9978 get id() { 9979 return hasLabelFor() ? props.id : void 0; 9980 }, 9981 get name() { 9982 return props.name ?? formControlLabel?.name; 9983 }, 9984 onClick: (event) => { 9985 if (event.defaultPrevented) { 9986 return; 9987 } 9988 const newChecked = event.currentTarget.checked; 9989 event.currentTarget.checked = !newChecked; 9990 setCheckedState(newChecked); 9991 if (typeof props.onChange === "function") { 9992 props.onChange(event, newChecked); 9993 } else { 9994 formControlLabel?.onChange?.(event, newChecked); 9995 } 9996 if (typeof otherProps.onClick === "function") otherProps.onClick(event); 9997 }, 9998 get readOnly() { 9999 return props.readOnly; 10000 }, 10001 ref: (e) => { 10002 element(e); 10003 if (!props.inputRef) formControlLabel?.inputRef?.(e); 10004 }, 10005 get required() { 10006 return props.required; 10007 }, 10008 ownerState, 10009 get tabIndex() { 10010 return props.tabIndex; 10011 }, 10012 get type() { 10013 return props.type; 10014 }, 10015 get value() { 10016 return inputValue(); 10017 } 10018 }, () => props.inputProps || {})), memo(() => checked() ? props.checkedIcon : props.icon), memo(() => otherProps.children)]; 10019 } 10020 })); 10021}); 10022var SwitchBase_default = SwitchBase; 10023
vendor: 395 bytes, lines 10024-10040
10024// node_modules/@suid/material/SvgIcon/svgIconClasses.js 10025function getSvgIconUtilityClass2(slot) { 10026 return generateUtilityClass("MuiSvgIcon", slot); 10027} 10028var svgIconClasses2 = generateUtilityClasses("MuiSvgIcon", [ 10029 "root", 10030 "colorPrimary", 10031 "colorSecondary", 10032 "colorAction", 10033 "colorError", 10034 "colorDisabled", 10035 "fontSizeInherit", 10036 "fontSizeSmall", 10037 "fontSizeMedium", 10038 "fontSizeLarge" 10039]); 10040
vendor: 2,863 bytes, lines 10041-10142
10041// node_modules/@suid/material/SvgIcon/SvgIcon.jsx 10042var _tmpl$8 = /* @__PURE__ */ template(`<title>`); 10043var $47 = createComponentFactory_default()({ 10044 name: "MuiSvgIcon", 10045 selfPropNames: ["children", "classes", "color", "fontSize", "htmlColor", "inheritViewBox", "shapeRendering", "titleAccess", "viewBox"], 10046 propDefaults: ({ 10047 set 10048 }) => { 10049 const context = useContext(SvgIconContext_default2); 10050 return set({ 10051 component: "svg", 10052 color: "inherit", 10053 get fontSize() { 10054 return context?.fontSize ?? "medium"; 10055 }, 10056 inheritViewBox: false, 10057 viewBox: "0 0 24 24" 10058 }); 10059 }, 10060 utilityClass: getSvgIconUtilityClass2, 10061 slotClasses: (o) => ({ 10062 root: ["root", o.color !== "inherit" && `color${capitalize(o.color)}`, `fontSize${capitalize(o.fontSize)}`] 10063 }) 10064}); 10065var SvgIconRoot2 = styled_default("svg", { 10066 name: "MuiSvgIcon", 10067 slot: "Root", 10068 overridesResolver: (props, styles3) => { 10069 const { 10070 ownerState 10071 } = props; 10072 return [styles3.root, ownerState.color !== "inherit" && styles3[`color${capitalize(ownerState.color)}`], styles3[`fontSize${capitalize(ownerState.fontSize)}`]]; 10073 } 10074})(({ 10075 theme, 10076 ownerState 10077}) => ({ 10078 userSelect: "none", 10079 width: "1em", 10080 height: "1em", 10081 display: "inline-block", 10082 fill: "currentColor", 10083 flexShrink: 0, 10084 transition: theme.transitions?.create?.("fill", { 10085 duration: theme.transitions?.duration?.shorter 10086 }), 10087 fontSize: { 10088 inherit: "inherit", 10089 small: theme.typography?.pxToRem?.(20) || "1.25rem", 10090 medium: theme.typography?.pxToRem?.(24) || "1.5rem", 10091 large: theme.typography?.pxToRem?.(35) || "2.1875" 10092 }[ownerState.fontSize], 10093 // TODO v5 deprecate, v6 remove for sx 10094 color: theme.palette?.[ownerState.color]?.main ?? { 10095 action: theme.palette?.action?.active, 10096 disabled: theme.palette?.action?.disabled, 10097 inherit: void 0 10098 }[ownerState.color] 10099})); 10100var SvgIcon3 = $47.component(function SvgIcon4({ 10101 allProps, 10102 props, 10103 otherProps, 10104 classes 10105}) { 10106 return createComponent(SvgIconRoot2, mergeProps({ 10107 get ["aria-hidden"]() { 10108 return props.titleAccess ? void 0 : true; 10109 }, 10110 get role() { 10111 return props.titleAccess ? "img" : void 0; 10112 }, 10113 get viewBox() { 10114 return !props.inheritViewBox ? props.viewBox : void 0; 10115 } 10116 }, { 10117 ["focusable"]: "false" 10118 }, { 10119 get color() { 10120 return props.htmlColor; 10121 } 10122 }, otherProps, { 10123 get ["class"]() { 10124 return clsx_m_default(classes.root, otherProps.class); 10125 }, 10126 ownerState: allProps, 10127 get children() { 10128 return [memo(() => props.children), createComponent(Show, { 10129 get when() { 10130 return props.titleAccess; 10131 }, 10132 children: (titleAccess) => (() => { 10133 const _el$ = _tmpl$8(); 10134 insert(_el$, titleAccess); 10135 return _el$; 10136 })() 10137 })]; 10138 } 10139 })); 10140}); 10141var SvgIcon_default2 = SvgIcon3; 10142
vendor: 310 bytes, lines 10143-10154
10143// node_modules/@suid/material/utils/createSvgIcon.jsx 10144function createSvgIcon2(path, displayName) { 10145 const Component = (props) => createComponent(SvgIcon_default2, mergeProps({ 10146 "data-testid": `${displayName}Icon` 10147 }, props, { 10148 get children() { 10149 return path(); 10150 } 10151 })); 10152 return Component; 10153} 10154
vendor: 412 bytes, lines 10155-10158
10155// node_modules/@suid/material/internal/svg-icons/RadioButtonChecked.jsx 10156var _tmpl$9 = /* @__PURE__ */ template(`<svg><path d="M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"></svg>`, false, true); 10157var RadioButtonChecked_default = createSvgIcon2(() => _tmpl$9(), "RadioButtonChecked"); 10158
vendor: 373 bytes, lines 10159-10162
10159// node_modules/@suid/material/internal/svg-icons/RadioButtonUnchecked.jsx 10160var _tmpl$10 = /* @__PURE__ */ template(`<svg><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></svg>`, false, true); 10161var RadioButtonUnchecked_default = createSvgIcon2(() => _tmpl$10(), "RadioButtonUnchecked"); 10162
vendor: 1,651 bytes, lines 10163-10223
10163// node_modules/@suid/material/Radio/RadioButtonIcon.jsx 10164var RadioButtonIconRoot = styled_default("span")({ 10165 position: "relative", 10166 display: "flex" 10167}); 10168var RadioButtonIconBackground = styled_default(RadioButtonUnchecked_default)({ 10169 // Scale applied to prevent dot misalignment in Safari 10170 transform: "scale(1)" 10171}); 10172var RadioButtonIconDot = styled_default(RadioButtonChecked_default)(({ 10173 theme, 10174 ownerState 10175}) => ({ 10176 left: 0, 10177 position: "absolute", 10178 transform: "scale(0)", 10179 transition: theme.transitions.create("transform", { 10180 easing: theme.transitions.easing.easeIn, 10181 duration: theme.transitions.duration.shortest 10182 }), 10183 ...ownerState.checked && { 10184 transform: "scale(1)", 10185 transition: theme.transitions.create("transform", { 10186 easing: theme.transitions.easing.easeOut, 10187 duration: theme.transitions.duration.shortest 10188 }) 10189 } 10190})); 10191function RadioButtonIcon(props) { 10192 const ownerState = mergeProps({ 10193 checked: false, 10194 classes: {} 10195 }, props); 10196 return createComponent(RadioButtonIconRoot, { 10197 get ["class"]() { 10198 return ownerState.classes.root; 10199 }, 10200 ownerState, 10201 get children() { 10202 return [createComponent(RadioButtonIconBackground, { 10203 get fontSize() { 10204 return props.fontSize; 10205 }, 10206 get ["class"]() { 10207 return ownerState.classes.background; 10208 }, 10209 ownerState 10210 }), createComponent(RadioButtonIconDot, { 10211 get fontSize() { 10212 return props.fontSize; 10213 }, 10214 get ["class"]() { 10215 return ownerState.classes.dot; 10216 }, 10217 ownerState 10218 })]; 10219 } 10220 }); 10221} 10222var RadioButtonIcon_default = RadioButtonIcon; 10223
vendor: 318 bytes, lines 10224-10236
10224// node_modules/@suid/material/Radio/radioClasses.js 10225function getRadioUtilityClass(slot) { 10226 return generateUtilityClass("MuiRadio", slot); 10227} 10228var radioClasses = generateUtilityClasses("MuiRadio", [ 10229 "root", 10230 "checked", 10231 "disabled", 10232 "colorPrimary", 10233 "colorSecondary" 10234]); 10235var radioClasses_default = radioClasses; 10236
vendor: 3,551 bytes, lines 10237-10356
10237// node_modules/@suid/material/Radio/Radio.jsx 10238var $48 = createComponentFactory_default()({ 10239 name: "MuiRadio", 10240 propDefaults: ({ 10241 set 10242 }) => set({ 10243 checkedIcon: defaultCheckedIcon, 10244 color: "primary", 10245 icon: defaultIcon, 10246 size: "medium" 10247 }), 10248 selfPropNames: ["checkedIcon", "classes", "color", "disabled", "icon", "size"], 10249 utilityClass: getRadioUtilityClass, 10250 slotClasses: (ownerState) => ({ 10251 root: ["root", `color${capitalize_default(ownerState.color)}`] 10252 }) 10253}); 10254var RadioRoot = styled_default(SwitchBase_default, { 10255 skipProps: skipRootProps.filter((v) => v !== "classes"), 10256 name: "MuiRadio", 10257 slot: "Root", 10258 overridesResolver: (props, styles3) => { 10259 return [styles3.root, styles3[`color${capitalize_default(props.ownerState.color)}`]]; 10260 } 10261})(({ 10262 theme, 10263 ownerState 10264}) => ({ 10265 color: theme.palette.text.secondary, 10266 "&:hover": { 10267 backgroundColor: alpha(ownerState.color === "default" ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity), 10268 // Reset on touch devices, it doesn't add specificity 10269 "@media (hover: none)": { 10270 backgroundColor: "transparent" 10271 } 10272 }, 10273 ...ownerState.color !== "default" && { 10274 [`&.${radioClasses_default.checked}`]: { 10275 color: theme.palette[ownerState.color].main 10276 } 10277 }, 10278 [`&.${radioClasses_default.disabled}`]: { 10279 color: theme.palette.action.disabled 10280 } 10281})); 10282function areEqualValues(a, b) { 10283 if (typeof b === "object" && b !== null) { 10284 return a === b; 10285 } 10286 return String(a) === String(b); 10287} 10288var defaultCheckedIcon = () => createComponent(RadioButtonIcon_default, { 10289 checked: true 10290}); 10291var defaultIcon = () => createComponent(RadioButtonIcon_default, {}); 10292var Radio = $48.component(function Radio2({ 10293 classes, 10294 allProps, 10295 otherProps, 10296 props 10297}) { 10298 const radioGroup = useRadioGroup(); 10299 const formControlLabelContext = useContext(FormControlLabelContext_default); 10300 const name = () => otherProps.name ?? formControlLabelContext?.name ?? radioGroup?.name; 10301 const value = () => otherProps.value ?? formControlLabelContext?.value; 10302 const checked = () => otherProps.checked ?? formControlLabelContext?.checked ?? areEqualValues(radioGroup?.value, value()); 10303 const haveDefaultIcons = () => props.checkedIcon === defaultCheckedIcon && props.icon === defaultIcon; 10304 return createComponent(SvgIconContext_default2.Provider, { 10305 value: { 10306 get fontSize() { 10307 return props.size; 10308 } 10309 }, 10310 get children() { 10311 return createComponent(RadioRoot, mergeProps({ 10312 type: "radio" 10313 }, otherProps, { 10314 ownerState: allProps, 10315 classes, 10316 get name() { 10317 return name(); 10318 }, 10319 get value() { 10320 return value(); 10321 }, 10322 get checked() { 10323 return checked(); 10324 }, 10325 onChange: (event, checked2) => { 10326 otherProps.onChange?.(event, checked2); 10327 formControlLabelContext?.onChange?.(event, checked2); 10328 radioGroup?.onChange?.(event, checked2); 10329 } 10330 }, () => haveDefaultIcons() ? { 10331 get children() { 10332 return createComponent(RadioButtonIcon_default, { 10333 get checked() { 10334 return checked(); 10335 } 10336 }); 10337 }, 10338 get icon() { 10339 return []; 10340 }, 10341 get checkedIcon() { 10342 return []; 10343 } 10344 } : { 10345 get icon() { 10346 return props.icon; 10347 }, 10348 get checkedIcon() { 10349 return props.checkedIcon; 10350 } 10351 })); 10352 } 10353 }); 10354}); 10355var Radio_default = Radio; 10356
10357// src/app/classic/dialogs/shapes.jsx 10358var ShapesDialog = (props) => { 10359 const { 10360 controllerAction 10361 } = useEditor(); 10362 const styles3 = () => controllerProperty(props.controller, "styles", "styles", true); 10363 const currStyle = () => controllerProperty(props.controller, "renderingStyle", "renderingStyle", false) || ""; 10364 const handleChange = (event) => { 10365 controllerAction(props.controller, `setStyle.${event.target.value}`); 10366 }; 10367 return createComponent(Dialog_default, { 10368 onClose: () => props.close(), 10369 get open() { 10370 return props.open; 10371 }, 10372 get children() { 10373 return [createComponent(DialogTitle_default, { 10374 id: "shapes-dialog", 10375 children: "Select Shapes" 10376 }), createComponent(DialogContent_default, { 10377 get children() { 10378 return createComponent(FormControl_default, { 10379 get children() { 10380 return createComponent(RadioGroup_default, { 10381 "aria-labelledby": "shapes-dialog", 10382 name: "shapes-dialog-radio-buttons-group", 10383 get value() { 10384 return currStyle(); 10385 }, 10386 onChange: handleChange, 10387 get children() { 10388 return createComponent(For, { 10389 get each() { 10390 return styles3(); 10391 }, 10392 children: (style2) => createComponent(FormControlLabel_default, { 10393 value: style2, 10394 get control() { 10395 return createComponent(Radio_default, {}); 10396 }, 10397 label: style2 10398 }) 10399 }); 10400 } 10401 }); 10402 } 10403 }); 10404 } 10405 }), createComponent(DialogActions_default, { 10406 get children() { 10407 return createComponent(Button_default, { 10408 size: "small", 10409 onClick: () => props.close(), 10410 color: "primary", 10411 children: "Close" 10412 }); 10413 } 10414 })]; 10415 } 10416 }); 10417}; 10418
vendor: 275 bytes, lines 10419-10427
10419// node_modules/@suid/system/mergeSxObjects.js 10420function mergeSxObjects(object, ...sources) { 10421 return sources.reduce((target, source, index) => deepmerge2(target, source, { 10422 clone: !!index, 10423 sortKeys: true 10424 }), object); 10425} 10426var mergeSxObjects_default = mergeSxObjects; 10427
vendor: 2,839 bytes, lines 10428-10537
10428// node_modules/@suid/material/Stack/Stack.jsx 10429var $49 = createComponentFactory_default()({ 10430 name: "MuiStack", 10431 selfPropNames: ["children", "direction", "divider", "spacing"], 10432 propDefaults: ({ 10433 set 10434 }) => set({ 10435 component: "div", 10436 direction: "column", 10437 spacing: 0 10438 }) 10439}); 10440function joinChildren(children2, separator) { 10441 const childrenArray = (Array.isArray(children2) ? children2 : [children2]).filter(Boolean); 10442 return childrenArray.reduce((output, child, index) => { 10443 output.push(child); 10444 if (index < childrenArray.length - 1) { 10445 output.push(separator()); 10446 } 10447 return output; 10448 }, []); 10449} 10450var getSideFromDirection = (direction) => { 10451 return { 10452 row: "Left", 10453 "row-reverse": "Right", 10454 column: "Top", 10455 "column-reverse": "Bottom" 10456 }[direction]; 10457}; 10458var StackRoot = styled_default("div", { 10459 name: "MuiStack", 10460 slot: "Root", 10461 overridesResolver: (props, styles3) => { 10462 return [styles3.root]; 10463 } 10464})(({ 10465 theme, 10466 ownerState 10467}) => { 10468 let styles3 = { 10469 display: "flex", 10470 ...handleBreakpoints({ 10471 theme 10472 }, resolveBreakpointValues({ 10473 values: ownerState.direction, 10474 breakpoints: theme.breakpoints.values 10475 }), (propValue) => ({ 10476 flexDirection: propValue 10477 })) 10478 }; 10479 if (ownerState.spacing) { 10480 const transformer = createUnarySpacing(theme); 10481 const base = theme.breakpoints.keys.reduce((acc, breakpoint) => { 10482 if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) { 10483 acc[breakpoint] = true; 10484 } 10485 return acc; 10486 }, {}); 10487 const directionValues = resolveBreakpointValues({ 10488 values: ownerState.direction, 10489 base 10490 }); 10491 const spacingValues = resolveBreakpointValues({ 10492 values: ownerState.spacing, 10493 base 10494 }); 10495 const styleFromPropValue = (propValue, breakpoint) => { 10496 return { 10497 "& > :not(style) + :not(style)": { 10498 margin: 0, 10499 [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: transformer(propValue) 10500 } 10501 }; 10502 }; 10503 styles3 = mergeSxObjects_default(styles3, handleBreakpoints({ 10504 theme 10505 }, spacingValues, styleFromPropValue)); 10506 } 10507 return styles3; 10508}); 10509var Stack = $49.component(function Stack2({ 10510 allProps, 10511 otherProps, 10512 props 10513}) { 10514 otherProps = extendSxProp(otherProps); 10515 return createComponent(StackRoot, mergeProps({ 10516 get as() { 10517 return otherProps.component; 10518 }, 10519 ownerState: allProps 10520 }, otherProps, { 10521 get children() { 10522 return createComponent(Show, { 10523 get when() { 10524 return props.divider; 10525 }, 10526 get fallback() { 10527 return props.children; 10528 }, 10529 get children() { 10530 return joinChildren(props.children, () => props.divider); 10531 } 10532 }); 10533 } 10534 })); 10535}); 10536var Stack_default = Stack; 10537
vendor: 434 bytes, lines 10538-10558
10538// node_modules/@suid/material/Switch/switchClasses.js 10539function getSwitchUtilityClass(slot) { 10540 return generateUtilityClass("MuiSwitch", slot); 10541} 10542var switchClasses = generateUtilityClasses("MuiSwitch", [ 10543 "root", 10544 "edgeStart", 10545 "edgeEnd", 10546 "switchBase", 10547 "colorPrimary", 10548 "colorSecondary", 10549 "sizeSmall", 10550 "sizeMedium", 10551 "checked", 10552 "disabled", 10553 "input", 10554 "thumb", 10555 "track" 10556]); 10557var switchClasses_default = switchClasses; 10558
vendor: 6,164 bytes, lines 10559-10778
10559// node_modules/@suid/material/Switch/Switch.jsx 10560var $50 = createComponentFactory_default()({ 10561 name: "MuiSwitch", 10562 selfPropNames: ["checkedIcon", "classes", "color", "disabled", "icon", "size", "value"], 10563 propDefaults: ({ 10564 set 10565 }) => set({ 10566 color: "primary", 10567 size: "medium" 10568 }), 10569 utilityClass: getSwitchUtilityClass, 10570 slotClasses: (ownerState) => ({ 10571 root: ["root", !!ownerState.edge && `edge${capitalize_default(ownerState.edge)}`, `size${capitalize_default(ownerState.size)}`], 10572 switchBase: ["switchBase", `color${capitalize_default(ownerState.color)}`, !!ownerState.checked && "checked", !!ownerState.disabled && "disabled"], 10573 thumb: ["thumb"], 10574 track: ["track"], 10575 input: ["input"] 10576 }) 10577}); 10578var SwitchRoot = styled_default("span", { 10579 name: "MuiSwitch", 10580 slot: "Root", 10581 overridesResolver: (props, styles3) => { 10582 const { 10583 ownerState 10584 } = props; 10585 return [styles3.root, ownerState.edge && styles3[`edge${capitalize_default(ownerState.edge)}`], styles3[`size${capitalize_default(ownerState.size)}`]]; 10586 } 10587})(({ 10588 ownerState 10589}) => ({ 10590 display: "inline-flex", 10591 width: 34 + 12 * 2, 10592 height: 14 + 12 * 2, 10593 overflow: "hidden", 10594 padding: 12, 10595 boxSizing: "border-box", 10596 position: "relative", 10597 flexShrink: 0, 10598 zIndex: 0, 10599 verticalAlign: "middle", 10600 "@media print": { 10601 colorAdjust: "exact" 10602 }, 10603 ...ownerState.edge === "start" && { 10604 marginLeft: -8 10605 }, 10606 ...ownerState.edge === "end" && { 10607 marginRight: -8 10608 }, 10609 ...ownerState.size === "small" && { 10610 width: 40, 10611 height: 24, 10612 padding: 7, 10613 [`& .${switchClasses_default.thumb}`]: { 10614 width: 16, 10615 height: 16 10616 }, 10617 [`& .${switchClasses_default.switchBase}`]: { 10618 padding: 4, 10619 [`&.${switchClasses_default.checked}`]: { 10620 transform: "translateX(16px)" 10621 } 10622 } 10623 } 10624})); 10625var SwitchSwitchBase = styled_default(SwitchBase_default, { 10626 name: "MuiSwitch", 10627 slot: "SwitchBase", 10628 overridesResolver: (props, styles3) => { 10629 const { 10630 ownerState 10631 } = props; 10632 return [styles3.switchBase, { 10633 [`& .${switchClasses_default.input}`]: styles3.input 10634 }, ownerState.color !== "default" && styles3[`color${capitalize_default(ownerState.color)}`]]; 10635 } 10636})(({ 10637 theme 10638}) => ({ 10639 position: "absolute", 10640 top: 0, 10641 left: 0, 10642 zIndex: 1, 10643 color: theme.palette.mode === "light" ? theme.palette.common.white : theme.palette.grey[300], 10644 transition: theme.transitions.create(["left", "transform"], { 10645 duration: theme.transitions.duration.shortest 10646 }), 10647 [`&.${switchClasses_default.checked}`]: { 10648 transform: "translateX(20px)" 10649 }, 10650 [`&.${switchClasses_default.disabled}`]: { 10651 color: theme.palette.mode === "light" ? theme.palette.grey[100] : theme.palette.grey[600] 10652 }, 10653 [`&.${switchClasses_default.checked} + .${switchClasses_default.track}`]: { 10654 opacity: 0.5 10655 }, 10656 [`&.${switchClasses_default.disabled} + .${switchClasses_default.track}`]: { 10657 opacity: theme.palette.mode === "light" ? 0.12 : 0.2 10658 }, 10659 [`& .${switchClasses_default.input}`]: { 10660 left: "-100%", 10661 width: "300%" 10662 } 10663}), ({ 10664 theme, 10665 ownerState 10666}) => ({ 10667 "&:hover": { 10668 backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity), 10669 // Reset on touch devices, it doesn't add specificity 10670 "@media (hover: none)": { 10671 backgroundColor: "transparent" 10672 } 10673 }, 10674 ...ownerState.color !== "default" && { 10675 [`&.${switchClasses_default.checked}`]: { 10676 color: theme.palette[ownerState.color].main, 10677 "&:hover": { 10678 backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity), 10679 "@media (hover: none)": { 10680 backgroundColor: "transparent" 10681 } 10682 }, 10683 [`&.${switchClasses_default.disabled}`]: { 10684 color: theme.palette.mode === "light" ? lighten(theme.palette[ownerState.color].main, 0.62) : darken(theme.palette[ownerState.color].main, 0.55) 10685 } 10686 }, 10687 [`&.${switchClasses_default.checked} + .${switchClasses_default.track}`]: { 10688 backgroundColor: theme.palette[ownerState.color].main 10689 } 10690 } 10691})); 10692var SwitchTrack = styled_default("span", { 10693 name: "MuiSwitch", 10694 slot: "Track", 10695 overridesResolver: (props, styles3) => styles3.track 10696})(({ 10697 theme 10698}) => ({ 10699 height: "100%", 10700 width: "100%", 10701 borderRadius: 14 / 2, 10702 zIndex: -1, 10703 transition: theme.transitions.create(["opacity", "background-color"], { 10704 duration: theme.transitions.duration.shortest 10705 }), 10706 backgroundColor: theme.palette.mode === "light" ? theme.palette.common.black : theme.palette.common.white, 10707 opacity: theme.palette.mode === "light" ? 0.38 : 0.3 10708})); 10709var SwitchThumb = styled_default("span", { 10710 name: "MuiSwitch", 10711 slot: "Thumb", 10712 overridesResolver: (props, styles3) => styles3.thumb 10713})(({ 10714 theme 10715}) => ({ 10716 boxShadow: theme.shadows[1], 10717 backgroundColor: "currentColor", 10718 width: 20, 10719 height: 20, 10720 borderRadius: "50%" 10721})); 10722var Switch2 = $50.component(function Switch3({ 10723 allProps, 10724 props, 10725 classes, 10726 otherProps 10727}) { 10728 const icon = () => createComponent(SwitchThumb, { 10729 get ["class"]() { 10730 return classes.thumb; 10731 }, 10732 ownerState: allProps 10733 }); 10734 const allClasses = mergeProps(classes, { 10735 get root() { 10736 return classes.switchBase; 10737 } 10738 }); 10739 const [, otherPropsWithoutSx] = splitProps(otherProps, ["sx"]); 10740 const baseProps = mergeProps(otherPropsWithoutSx, { 10741 get checkedIcon() { 10742 return props.checkedIcon || icon; 10743 }, 10744 get disabled() { 10745 return props.disabled; 10746 }, 10747 get icon() { 10748 return props.icon || icon; 10749 }, 10750 get value() { 10751 return props.value; 10752 } 10753 }); 10754 return createComponent(SwitchRoot, { 10755 get ["class"]() { 10756 return clsx_m_default(classes.root, otherProps.class); 10757 }, 10758 get sx() { 10759 return otherProps.sx; 10760 }, 10761 ownerState: allProps, 10762 get children() { 10763 return [createComponent(SwitchSwitchBase, mergeProps({ 10764 type: "checkbox", 10765 ownerState: allProps 10766 }, baseProps, { 10767 classes: allClasses 10768 })), createComponent(SwitchTrack, { 10769 get ["class"]() { 10770 return classes.track; 10771 }, 10772 ownerState: allProps 10773 })]; 10774 } 10775 }); 10776}); 10777var Switch_default = Switch2; 10778
vendor: 484 bytes, lines 10779-10799
10779// node_modules/@suid/material/NativeSelect/nativeSelectClasses.js 10780function getNativeSelectUtilityClasses(slot) { 10781 return generateUtilityClass("MuiNativeSelect", slot); 10782} 10783var nativeSelectClasses = generateUtilityClasses("MuiNativeSelect", [ 10784 "root", 10785 "select", 10786 "multiple", 10787 "filled", 10788 "outlined", 10789 "standard", 10790 "disabled", 10791 "icon", 10792 "iconOpen", 10793 "iconFilled", 10794 "iconOutlined", 10795 "iconStandard", 10796 "nativeInput" 10797]); 10798var nativeSelectClasses_default = nativeSelectClasses; 10799
vendor: 4,214 bytes, lines 10800-10948
10800// node_modules/@suid/material/NativeSelect/NativeSelectInput.jsx 10801var useUtilityClasses = (ownerState) => { 10802 const slots = { 10803 select: ["select", ownerState.variant, ownerState.disabled && "disabled", ownerState.multiple && "multiple"], 10804 icon: ["icon", ownerState.variant && `icon${capitalize_default(ownerState.variant)}`, ownerState.open && "iconOpen", ownerState.disabled && "disabled"] 10805 }; 10806 return composeClasses(slots, getNativeSelectUtilityClasses, ownerState.classes); 10807}; 10808var nativeSelectSelectStyles = ({ 10809 ownerState, 10810 theme 10811}) => ({ 10812 MozAppearance: "none", 10813 WebkitAppearance: "none", 10814 // When interacting quickly, the text can end up selected. 10815 // Native select can't be selected either. 10816 userSelect: "none", 10817 borderRadius: 0, 10818 cursor: "pointer", 10819 "&:focus": { 10820 // Show that it's not an text input 10821 backgroundColor: theme.palette.mode === "light" ? "rgba(0, 0, 0, 0.05)" : "rgba(255, 255, 255, 0.05)", 10822 borderRadius: 0 10823 // Reset Chrome style 10824 }, 10825 // Remove IE11 arrow 10826 "&::-ms-expand": { 10827 display: "none" 10828 }, 10829 [`&.${nativeSelectClasses_default.disabled}`]: { 10830 cursor: "default" 10831 }, 10832 "&[multiple]": { 10833 height: "auto" 10834 }, 10835 "&:not([multiple]) option, &:not([multiple]) optgroup": { 10836 backgroundColor: theme.palette.background.paper 10837 }, 10838 // Bump specificity to allow extending custom inputs 10839 "&&&": { 10840 paddingRight: 24, 10841 minWidth: 16 10842 // So it doesn't collapse. 10843 }, 10844 ...ownerState.variant === "filled" && { 10845 "&&&": { 10846 paddingRight: 32 10847 } 10848 }, 10849 ...ownerState.variant === "outlined" && { 10850 borderRadius: theme.shape.borderRadius, 10851 "&:focus": { 10852 borderRadius: theme.shape.borderRadius 10853 // Reset the reset for Chrome style 10854 }, 10855 "&&&": { 10856 paddingRight: 32 10857 } 10858 } 10859}); 10860var NativeSelectSelect = styled_default("select", { 10861 name: "MuiNativeSelect", 10862 slot: "Select", 10863 skipProps: skipRootProps, 10864 overridesResolver: (props, styles3) => { 10865 const { 10866 ownerState 10867 } = props; 10868 return [styles3.select, styles3[ownerState.variant], { 10869 [`&.${nativeSelectClasses_default.multiple}`]: styles3.multiple 10870 }]; 10871 } 10872})(nativeSelectSelectStyles); 10873var nativeSelectIconStyles = ({ 10874 ownerState, 10875 theme 10876}) => ({ 10877 // We use a position absolute over a flexbox in order to forward the pointer events 10878 // to the input and to support wrapping tags.. 10879 position: "absolute", 10880 right: 0, 10881 top: "calc(50% - .5em)", 10882 pointerEvents: "none", 10883 color: theme.palette.action.active, 10884 [`&.${nativeSelectClasses_default.disabled}`]: { 10885 color: theme.palette.action.disabled 10886 }, 10887 ...ownerState.open && { 10888 transform: "rotate(180deg)" 10889 }, 10890 ...ownerState.variant === "filled" && { 10891 right: 7 10892 }, 10893 ...ownerState.variant === "outlined" && { 10894 right: 7 10895 } 10896}); 10897var NativeSelectIcon = styled_default("svg", { 10898 name: "MuiNativeSelect", 10899 slot: "Icon", 10900 overridesResolver: (props, styles3) => { 10901 const { 10902 ownerState 10903 } = props; 10904 return [styles3.icon, ownerState.variant && styles3[`icon${capitalize_default(ownerState.variant)}`], ownerState.open && styles3.iconOpen]; 10905 } 10906})(nativeSelectIconStyles); 10907var NativeSelectInput = function NativeSelectInput2(props) { 10908 const ref = createRef_default(props); 10909 const [, other] = splitProps(props, ["class", "disabled", "IconComponent", "inputRef", "variant"]); 10910 const baseProps = mergeProps({ 10911 variant: "standard" 10912 }, props); 10913 const ownerState = mergeProps(props, { 10914 get disabled() { 10915 return props.disabled; 10916 }, 10917 get variant() { 10918 return baseProps.variant; 10919 } 10920 }); 10921 const classes = useUtilityClasses(ownerState); 10922 return [createComponent(NativeSelectSelect, mergeProps({ 10923 ownerState, 10924 get ["class"]() { 10925 return clsx_m_default(classes.select, props.class); 10926 }, 10927 get disabled() { 10928 return props.disabled; 10929 } 10930 }, other)), createComponent(Show, { 10931 get when() { 10932 return !props.multiple; 10933 }, 10934 get children() { 10935 return createComponent(NativeSelectIcon, { 10936 get as() { 10937 return props.IconComponent; 10938 }, 10939 ownerState, 10940 get ["class"]() { 10941 return classes.icon; 10942 } 10943 }); 10944 } 10945 })]; 10946}; 10947var NativeSelectInput_default = NativeSelectInput; 10948
vendor: 242 bytes, lines 10949-10952
10949// node_modules/@suid/material/internal/svg-icons/ArrowDropDown.jsx 10950var _tmpl$11 = /* @__PURE__ */ template(`<svg><path d="M7 10l5 5 5-5z"></svg>`, false, true); 10951var ArrowDropDown_default = createSvgIcon2(() => _tmpl$11(), "ArrowDropDown"); 10952
vendor: 439 bytes, lines 10953-10973
10953// node_modules/@suid/material/Select/selectClasses.js 10954function getSelectUtilityClasses(slot) { 10955 return generateUtilityClass("MuiSelect", slot); 10956} 10957var selectClasses = generateUtilityClasses("MuiSelect", [ 10958 "select", 10959 "multiple", 10960 "filled", 10961 "outlined", 10962 "standard", 10963 "disabled", 10964 "focused", 10965 "icon", 10966 "iconOpen", 10967 "iconFilled", 10968 "iconOutlined", 10969 "iconStandard", 10970 "nativeInput" 10971]); 10972var selectClasses_default = selectClasses; 10973
vendor: 14,570 bytes, lines 10974-11460
10974// node_modules/@suid/material/Select/SelectInput.jsx 10975var _tmpl$12 = /* @__PURE__ */ template(`<span class="notranslate">​`); 10976var $51 = createComponentFactory_default()({ 10977 name: "MuiSelectInput", 10978 selfPropNames: ["autoFocus", "autoWidth", "defaultOpen", "disabled", "IconComponent", "inputRef", "MenuProps", "multiple", "name", "native", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "value", "variant"], 10979 utilityClass: getSelectUtilityClasses, 10980 slotClasses: (ownerState) => ({ 10981 select: ["select", ownerState.variant, ownerState.disabled && "disabled", ownerState.multiple && "multiple"], 10982 icon: ["icon", `icon${capitalize(ownerState.variant)}`, ownerState.open && "iconOpen", ownerState.disabled && "disabled"], 10983 nativeInput: ["nativeInput"] 10984 }) 10985}); 10986var SelectSelect = styled_default("div", { 10987 name: "MuiSelect", 10988 slot: "Select", 10989 overridesResolver: (props, styles3) => { 10990 const { 10991 ownerState 10992 } = props; 10993 return [ 10994 // Win specificity over the input base 10995 { 10996 [`&.${selectClasses_default.select}`]: styles3.select 10997 }, 10998 { 10999 [`&.${selectClasses_default.select}`]: styles3[ownerState.variant] 11000 }, 11001 { 11002 [`&.${selectClasses_default.multiple}`]: styles3.multiple 11003 } 11004 ]; 11005 } 11006})(nativeSelectSelectStyles, { 11007 // Win specificity over the input base 11008 [`&.${selectClasses_default.select}`]: { 11009 height: "auto", 11010 minHeight: "1.4375em", 11011 textOverflow: "ellipsis", 11012 whiteSpace: "nowrap", 11013 overflow: "hidden" 11014 } 11015}); 11016var SelectIcon = styled_default("svg", { 11017 name: "MuiSelect", 11018 slot: "Icon", 11019 overridesResolver: (props, styles3) => { 11020 const { 11021 ownerState 11022 } = props; 11023 return [styles3.icon, ownerState.variant && styles3[`icon${capitalize(ownerState.variant)}`], ownerState.open && styles3.iconOpen]; 11024 } 11025})(nativeSelectIconStyles); 11026var SelectNativeInput = styled_default("input", { 11027 skipProps: skipRootProps, 11028 name: "MuiSelect", 11029 slot: "NativeInput", 11030 overridesResolver: (props, styles3) => styles3.nativeInput 11031})({ 11032 bottom: 0, 11033 left: 0, 11034 position: "absolute", 11035 opacity: 0, 11036 pointerEvents: "none", 11037 width: "100%", 11038 boxSizing: "border-box" 11039}); 11040function areEqualValues2(a, b) { 11041 if (typeof b === "object" && b !== null) { 11042 return a === b; 11043 } 11044 return String(a) === String(b); 11045} 11046function isEmpty(display) { 11047 return display == null || typeof display === "string" && !display.trim(); 11048} 11049var SelectInput = $51.defineComponent(function SelectInput2(props) { 11050 const ref = createRef_default(props); 11051 const [, other] = splitProps(props, ["ref", "sx", "aria-describedby", "aria-label", "autoFocus", "autoWidth", "children", "class", "defaultOpen", "defaultValue", "disabled", "displayEmpty", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"]); 11052 const baseProps = mergeProps({ 11053 MenuProps: {}, 11054 SelectDisplayProps: {}, 11055 variant: "standard" 11056 }, props); 11057 const [value, setValueState] = useControlled({ 11058 controlled: () => props.value, 11059 default: () => props.defaultValue, 11060 name: "Select" 11061 }); 11062 const [openState, setOpenState] = useControlled({ 11063 controlled: () => props.open, 11064 default: () => props.defaultOpen, 11065 name: "Select" 11066 }); 11067 const inputRef = createRef_default(); 11068 const displayRef = createRef_default(); 11069 const [displayNode, setDisplayNode] = createSignal(null); 11070 const isOpenControlled = props.open != null; 11071 const [menuMinWidthState, setMenuMinWidthState] = createSignal(null); 11072 const handleDisplayRef = (node) => { 11073 displayRef.current = node; 11074 setDisplayNode(node); 11075 }; 11076 const action = { 11077 nodeName: "INPUT", 11078 get node() { 11079 return inputRef.current; 11080 }, 11081 addEventListener(eventName, callback) { 11082 if (eventName !== "input") throw new Error(`Invalid event name: ${eventName}`); 11083 inputRef.current.addEventListener(eventName, callback); 11084 }, 11085 get value() { 11086 return value(); 11087 }, 11088 set value(v) { 11089 setValueState(v); 11090 }, 11091 focus() { 11092 inputRef.current.focus(); 11093 } 11094 }; 11095 createEffect(on(() => [displayNode(), props.autoWidth], () => { 11096 if (props.defaultOpen && openState() && displayNode() && !isOpenControlled) { 11097 setMenuMinWidthState(props.autoWidth ? null : displayNode().clientWidth); 11098 displayRef.current.focus(); 11099 } 11100 })); 11101 createEffect(() => { 11102 if (props.autoFocus) { 11103 displayRef.current.focus(); 11104 } 11105 }); 11106 let clickHandler; 11107 createEffect(() => { 11108 if (!props.labelId) { 11109 return; 11110 } 11111 const label = ownerDocument2(displayRef.current).getElementById(props.labelId); 11112 if (label) { 11113 if (clickHandler) label.removeEventListener("click", clickHandler); 11114 clickHandler = () => { 11115 if (getSelection().isCollapsed) { 11116 displayRef.current.focus(); 11117 } 11118 }; 11119 label.addEventListener("click", clickHandler); 11120 } 11121 }); 11122 const update = (open2, event) => { 11123 if (!open2) displayRef.current.focus(); 11124 if (open2) { 11125 if (props.onOpen) { 11126 props.onOpen(event); 11127 } 11128 } else if (props.onClose) { 11129 props.onClose(event); 11130 } 11131 if (!isOpenControlled) { 11132 setMenuMinWidthState(props.autoWidth ? null : displayNode().clientWidth); 11133 setOpenState(open2); 11134 } 11135 }; 11136 const handleMouseDown = (event) => { 11137 if (props.disabled || props.readOnly) return; 11138 if (event.button !== 0) { 11139 return; 11140 } 11141 event.preventDefault(); 11142 displayRef.current.focus(); 11143 update(true, event); 11144 }; 11145 const handleClose = (event) => { 11146 update(false, event); 11147 }; 11148 const childrenArray = inspectChildren(() => props.children); 11149 const selected = (child) => { 11150 const v = value(); 11151 if (props.multiple) { 11152 if (!Array.isArray(v)) { 11153 throw new Error("MUI: The `value` prop must be an array when using the `Select` component with `multiple`."); 11154 } 11155 return v.some((v2) => areEqualValues2(v2, child.props.value)); 11156 } else { 11157 return areEqualValues2(v, child.props.value); 11158 } 11159 }; 11160 const items = mapArray(childrenArray, (child) => { 11161 if (isComponentObject(child, MenuItem_default)) { 11162 setMenuItemProps((prev) => [...prev, child.props]); 11163 onCleanup(() => setMenuItemProps((prev) => prev.filter((v) => v !== child.props))); 11164 const isSelected = createMemo(() => selected(child)); 11165 const childProps = mergeProps(child.props, { 11166 get "aria-selected"() { 11167 return isSelected(); 11168 }, 11169 onClick: (event) => handleItemClick(event, childProps, child.props), 11170 onKeyUp: (event) => { 11171 if (event.key === " ") { 11172 event.preventDefault(); 11173 } 11174 if (typeof child.props.onKeyUp === "function") { 11175 child.props.onKeyUp(event); 11176 } 11177 }, 11178 role: "option", 11179 get selected() { 11180 return isSelected(); 11181 }, 11182 value: void 0, 11183 "data-value": child.props.value 11184 // Instead, we provide it as a data attribute. 11185 }); 11186 return createComponent(child.Component, childProps); 11187 } else { 11188 return isComponentObject(child) ? createComponent(child.Component, child.props) : child; 11189 } 11190 }); 11191 const handleItemClick = (event, itemProps, prevProps) => { 11192 let newValue; 11193 const child = { 11194 props: itemProps 11195 }; 11196 const multiple = props.multiple; 11197 if (!event.currentTarget.hasAttribute("tabindex")) { 11198 return; 11199 } 11200 if (multiple) { 11201 newValue = Array.isArray(value()) ? value().slice() : []; 11202 const itemIndex = value().indexOf(child.props.value); 11203 if (itemIndex === -1) { 11204 newValue.push(child.props.value); 11205 } else { 11206 newValue.splice(itemIndex, 1); 11207 } 11208 } else { 11209 newValue = child.props.value; 11210 } 11211 if (typeof prevProps.onClick === "function") { 11212 prevProps.onClick(event); 11213 } 11214 if (value() !== newValue) { 11215 const inputEvent = new CustomEvent("input"); 11216 Object.defineProperty(inputEvent, "target", { 11217 writable: false, 11218 value: { 11219 name: itemProps.name, 11220 get value() { 11221 return newValue; 11222 }, 11223 set value(v) { 11224 action.value = v; 11225 } 11226 } 11227 }); 11228 inputRef.current.dispatchEvent(inputEvent); 11229 setValueState(newValue); 11230 if (typeof itemProps.onChange === "function") { 11231 itemProps.onChange(inputEvent, inputEvent.target); 11232 } 11233 } 11234 if (!multiple) { 11235 update(false, event); 11236 } 11237 }; 11238 const handleKeyDown2 = (event) => { 11239 if (!props.readOnly) { 11240 const validKeys = [ 11241 " ", 11242 "ArrowUp", 11243 "ArrowDown", 11244 // The native select doesn't respond to enter on MacOS, but it's recommended by 11245 // https://www.w3.org/TR/wai-aria-practices/examples/listbox/listbox-collapsible.html 11246 "Enter" 11247 ]; 11248 if (validKeys.indexOf(event.key) !== -1) { 11249 event.preventDefault(); 11250 update(true, event); 11251 } 11252 } 11253 }; 11254 const open = () => displayNode() !== null && !!openState(); 11255 const handleBlur = (event) => { 11256 if (!open() && props.onBlur) { 11257 Object.defineProperty(event, "target", { 11258 writable: true, 11259 value: { 11260 value: value(), 11261 name: props.name 11262 } 11263 }); 11264 props.onBlur(event); 11265 } 11266 }; 11267 const [menuItemProps, setMenuItemProps] = createStore([]); 11268 const display = () => { 11269 const v = value(); 11270 if (isFilled({ 11271 value: v 11272 }) || props.displayEmpty) { 11273 if (props.renderValue) { 11274 return props.renderValue(v); 11275 } else if (props.multiple) { 11276 const result = []; 11277 for (const itemProps of menuItemProps) { 11278 if (!Array.isArray(v)) { 11279 throw new Error("MUI: The `value` prop must be an array when using the `Select` component with `multiple`."); 11280 } 11281 if (v.some((v2) => areEqualValues2(v2, itemProps.value))) result.push(itemProps.children); 11282 } 11283 return result.reduce((output, child, index) => { 11284 output.push(child); 11285 if (index < result.length - 1) { 11286 output.push(", "); 11287 } 11288 return output; 11289 }, []); 11290 } else { 11291 for (const itemProps of menuItemProps) { 11292 if (areEqualValues2(v, itemProps.value)) { 11293 return itemProps.children; 11294 } 11295 } 11296 } 11297 } 11298 }; 11299 const menuMinWidth = () => { 11300 let menuMinWidth2 = menuMinWidthState(); 11301 if (!props.autoWidth && isOpenControlled && displayNode()) { 11302 menuMinWidth2 = displayNode().clientWidth; 11303 } 11304 return menuMinWidth2; 11305 }; 11306 const PaperProps = mergeProps(() => baseProps.MenuProps.PaperProps, { 11307 style: mergeProps({ 11308 get "min-width"() { 11309 const v = menuMinWidth(); 11310 return typeof v === "number" ? `${v}px` : void 0; 11311 } 11312 }, () => baseProps.MenuProps.PaperProps != null ? baseProps.MenuProps.PaperProps.style : null) 11313 }); 11314 const MenuListProps = mergeProps({ 11315 get "aria-labelledby"() { 11316 return props.labelId; 11317 }, 11318 ["role"]: "listbox", 11319 disableListWrap: true 11320 }, () => baseProps.MenuProps.MenuListProps); 11321 const tabIndex = () => { 11322 if (typeof props.tabIndex !== "undefined") { 11323 return props.tabIndex; 11324 } else { 11325 return props.disabled ? void 0 : 0; 11326 } 11327 }; 11328 const buttonId = () => baseProps.SelectDisplayProps.id || (props.name ? `mui-component-select-${props.name}` : void 0); 11329 const ownerState = mergeProps(props, { 11330 get variant() { 11331 return baseProps.variant; 11332 }, 11333 get value() { 11334 return value(); 11335 }, 11336 get open() { 11337 return open(); 11338 } 11339 }); 11340 const classes = $51.useClasses(ownerState); 11341 const nativeSelectValue = () => { 11342 const v = value(); 11343 return Array.isArray(v) ? v.join(",") : v; 11344 }; 11345 const displayValue = () => { 11346 const v = display(); 11347 return isEmpty(v) ? ( 11348 // notranslate needed while Google Translate will not fix zero-width space issue 11349 _tmpl$12() 11350 ) : v; 11351 }; 11352 return [createComponent(SelectSelect, mergeProps({ 11353 ref: handleDisplayRef, 11354 get tabIndex() { 11355 return tabIndex(); 11356 }, 11357 role: "button", 11358 get ["aria-disabled"]() { 11359 return props.disabled ? "true" : void 0; 11360 }, 11361 get ["aria-expanded"]() { 11362 return open() ? "true" : "false"; 11363 }, 11364 "aria-haspopup": "listbox", 11365 get ["aria-label"]() { 11366 return props["aria-label"]; 11367 }, 11368 get ["aria-labelledby"]() { 11369 return [props.labelId, buttonId()].filter(Boolean).join(" ") || void 0; 11370 }, 11371 get ["aria-describedby"]() { 11372 return props["aria-describedby"]; 11373 }, 11374 onKeyDown: handleKeyDown2, 11375 onMouseDown: handleMouseDown, 11376 onBlur: handleBlur, 11377 get onFocus() { 11378 return props.onFocus; 11379 } 11380 }, () => baseProps.SelectDisplayProps, { 11381 ownerState, 11382 get sx() { 11383 return props.sx; 11384 }, 11385 get ["class"]() { 11386 return clsx_m_default(classes.select, props.class, baseProps.SelectDisplayProps.class); 11387 }, 11388 get id() { 11389 return buttonId(); 11390 }, 11391 get children() { 11392 return displayValue(); 11393 } 11394 })), createComponent(SelectNativeInput, mergeProps({ 11395 get value() { 11396 return nativeSelectValue(); 11397 }, 11398 get ["data-value"]() { 11399 return nativeSelectValue(); 11400 }, 11401 get name() { 11402 return props.name; 11403 }, 11404 "aria-hidden": true, 11405 ref: (e) => { 11406 inputRef(e); 11407 if (typeof props.inputRef === "function") props.inputRef(action); 11408 ref(action); 11409 }, 11410 get onChange() { 11411 return props.onChange; 11412 }, 11413 tabIndex: -1, 11414 get disabled() { 11415 return props.disabled; 11416 }, 11417 get ["class"]() { 11418 return classes.nativeInput; 11419 }, 11420 get autofocus() { 11421 return props.autoFocus; 11422 }, 11423 ownerState 11424 }, other)), createComponent(SelectIcon, { 11425 get as() { 11426 return props.IconComponent; 11427 }, 11428 get ["class"]() { 11429 return classes.icon; 11430 }, 11431 ownerState 11432 }), createComponent(Menu_default, mergeProps({ 11433 get id() { 11434 return `menu-${props.name || ""}`; 11435 }, 11436 get anchorEl() { 11437 return displayNode(); 11438 }, 11439 get open() { 11440 return open(); 11441 }, 11442 onClose: handleClose, 11443 anchorOrigin: { 11444 vertical: "bottom", 11445 horizontal: "center" 11446 }, 11447 transformOrigin: { 11448 vertical: "top", 11449 horizontal: "center" 11450 } 11451 }, () => baseProps.MenuProps, { 11452 MenuListProps, 11453 PaperProps, 11454 get children() { 11455 return items(); 11456 } 11457 }))]; 11458}); 11459var SelectInput_default = SelectInput; 11460
vendor: 3,915 bytes, lines 11461-11579
11461// node_modules/@suid/material/Select/Select.jsx 11462var $52 = createComponentFactory_default()({ 11463 name: "MuiSelect", 11464 selfPropNames: ["autoWidth", "children", "classes", "defaultOpen", "defaultValue", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onChange", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "value", "variant"] 11465}); 11466var styledRootConfig = { 11467 name: "MuiSelect", 11468 overridesResolver: (props, styles3) => styles3.root, 11469 skipProps: [...skipRootProps, "variant"], 11470 slot: "Root" 11471}; 11472var StyledInput = styled_default(Input_default, styledRootConfig)({}); 11473var StyledOutlinedInput = styled_default(OutlinedInput_default, styledRootConfig)({}); 11474var StyledFilledInput = styled_default(FilledInput_default, styledRootConfig)({}); 11475var Select = $52.defineComponent(function Select2(inProps) { 11476 const props = $52.useThemeProps({ 11477 props: inProps 11478 }); 11479 const [, other] = splitProps(props, ["autoWidth", "children", "classes", "class", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"]); 11480 const baseProps = mergeProps({ 11481 autoWidth: false, 11482 classes: {}, 11483 defaultOpen: false, 11484 displayEmpty: false, 11485 IconComponent: ArrowDropDown_default, 11486 multiple: false, 11487 native: false, 11488 variant: "outlined" 11489 }, props); 11490 const inputComponent = () => baseProps.native ? NativeSelectInput_default : SelectInput_default; 11491 const muiFormControl = useFormControl(); 11492 const fcs = formControlState({ 11493 props, 11494 muiFormControl, 11495 states: ["variant"] 11496 }); 11497 const variant = () => fcs.variant || baseProps.variant; 11498 const inputElements = inspectChildren(() => props.input); 11499 const inputElement = () => { 11500 const [item] = inputElements(); 11501 if (item) { 11502 if (isComponentObject(item)) return item; 11503 throw new Error(`Invalid component`); 11504 } 11505 }; 11506 const InputComponent = () => inputElement()?.Component || { 11507 standard: StyledInput, 11508 outlined: StyledOutlinedInput, 11509 filled: StyledFilledInput 11510 }[variant()]; 11511 const ownerState = mergeProps(props, { 11512 get variant() { 11513 return variant(); 11514 }, 11515 get classes() { 11516 return baseProps.classes; 11517 } 11518 }); 11519 const classes = $52.useClasses(ownerState); 11520 const inputProps = mergeProps({ 11521 get children() { 11522 return props.children; 11523 }, 11524 get IconComponent() { 11525 return baseProps.IconComponent; 11526 }, 11527 get variant() { 11528 return variant(); 11529 }, 11530 type: void 0, 11531 get multiple() { 11532 return baseProps.multiple; 11533 } 11534 }, () => baseProps.native ? { 11535 id: props.id 11536 } : { 11537 autoWidth: baseProps.autoWidth, 11538 defaultOpen: baseProps.defaultOpen, 11539 displayEmpty: baseProps.displayEmpty, 11540 labelId: props.labelId, 11541 MenuProps: props.MenuProps, 11542 onClose: props.onClose, 11543 onOpen: props.onOpen, 11544 open: props.open, 11545 renderValue: props.renderValue, 11546 SelectDisplayProps: { 11547 id: props.id, 11548 ...props.SelectDisplayProps 11549 } 11550 }, () => props.inputProps, { 11551 get classes() { 11552 return props.inputProps ? deepmerge(classes, props.inputProps.classes) : classes; 11553 } 11554 }, () => inputElement()?.props?.inputProps); 11555 return createComponent(Dynamic_default, mergeProps({ 11556 get $component() { 11557 return InputComponent(); 11558 } 11559 }, () => inputElement()?.props, { 11560 get inputComponent() { 11561 return inputComponent(); 11562 }, 11563 inputProps, 11564 get notched() { 11565 return props.multiple && props.native && variant() === "outlined" ? true : void 0; 11566 }, 11567 get label() { 11568 return !inputElement() && variant() === "outlined" ? props.label : void 0; 11569 }, 11570 get ["class"]() { 11571 return props.class; 11572 }, 11573 get variant() { 11574 return variant(); 11575 } 11576 }, other)); 11577}); 11578var Select_default = Select; 11579
11580// src/app/classic/components/length.jsx 11581var _tmpl$13 = /* @__PURE__ */ template(`<div class="slider"><div class="slider-indicator">`); 11582var _tmpl$24 = /* @__PURE__ */ template(`<div>`); 11583var _tmpl$32 = /* @__PURE__ */ template(`<div id="scale-factors">`); 11584var _tmpl$42 = /* @__PURE__ */ template(`<span>`); 11585var _tmpl$52 = /* @__PURE__ */ template(`<math>`); 11586var _tmpl$62 = /* @__PURE__ */ template(`<div id="strut-length" class="grid-rows-fr-min"><div id="change-size" class="grid-cols-2-1"><div id="scales-and-slider" class="grid-rows-min-1"><div id="up-down-slider" class="grid-cols-min-1 orbit-scale"><div id="up-down" class="grid-rows-1-1 pad-4px"><button aria-label="scale-up" class="scale-button"><img></button><button aria-label="scale-down" class="scale-button"><img></button></div><div id="scale-slider" class="scale-slider"></div></div></div><div id="scale-predefs"></div></div><div id="length-display"><div><span>unit = </span><span class="bold"></span></div><div> unit</div><div>= <span class="bold">`); 11587var sliderLimit = 6; 11588var sliderMarks = Array.from({ 11589 length: 2 * sliderLimit + 1 11590}, (_, i) => i - sliderLimit).map((i) => ({ 11591 value: i 11592})); 11593sliderMarks[sliderLimit].label = "unit"; 11594var Slider = (props) => (() => { 11595 const _el$ = _tmpl$13(), _el$2 = _el$.firstChild; 11596 _el$2.style.setProperty("background-color", "black"); 11597 _el$2.style.setProperty("position", "absolute"); 11598 _el$2.style.setProperty("left", "25%"); 11599 _el$2.style.setProperty("height", "6px"); 11600 _el$2.style.setProperty("width", "18px"); 11601 insert(_el$, createComponent(For, { 11602 each: sliderMarks, 11603 children: ({ 11604 value, 11605 label 11606 }) => (() => { 11607 const _el$3 = _tmpl$24(); 11608 _el$3.style.setProperty("background-color", "black"); 11609 _el$3.style.setProperty("position", "absolute"); 11610 `${50 - 7 * value}%` != null ? _el$3.style.setProperty("top", `${50 - 7 * value}%`) : _el$3.style.removeProperty("top"); 11611 _el$3.style.setProperty("left", "50%"); 11612 _el$3.style.setProperty("height", "1px"); 11613 _el$3.style.setProperty("width", "12px"); 11614 return _el$3; 11615 })() 11616 }), null); 11617 createRenderEffect(() => `${50 - 7 * props.defaultValue - 2}%` != null ? _el$2.style.setProperty("top", `${50 - 7 * props.defaultValue - 2}%`) : _el$2.style.removeProperty("top")); 11618 return _el$; 11619})(); 11620var hexToWebColor = (colorHex) => { 11621 const color = colorHex.substring(2); 11622 if (color.length === 2) return `#0000${color}`; 11623 else if (color.length === 4) return `#00${color}`; 11624 else return `#${color}`; 11625}; 11626var ScaleBy = (props) => { 11627 const { 11628 controllerAction 11629 } = useEditor(); 11630 const multipliers = () => controllerProperty(props.controller, "field.multipliers", "field.multipliers", true) || [" "]; 11631 const number = () => multipliers().length; 11632 const setMultiplier = (evt) => { 11633 const multiplier = evt.target.value; 11634 controllerAction(props.controller, `setMultiplier.${multiplier}`); 11635 }; 11636 return (() => { 11637 const _el$4 = _tmpl$32(); 11638 _el$4.style.setProperty("background-color", "whitesmoke"); 11639 _el$4.style.setProperty("padding", "0.4em"); 11640 _el$4.style.setProperty("margin", "0.4em"); 11641 insert(_el$4, createComponent(FormControl_default, { 11642 sx: { 11643 m: 1, 11644 minWidth: 90, 11645 margin: "3px" 11646 }, 11647 size: "small", 11648 get children() { 11649 return [createComponent(FormLabel_default, { 11650 id: "scale-by-label", 11651 children: "Scale by" 11652 }), createComponent(Switch, { 11653 get fallback() { 11654 return (() => { 11655 const _el$5 = _tmpl$42(); 11656 insert(_el$5, () => multipliers()[0]); 11657 return _el$5; 11658 })(); 11659 }, 11660 get children() { 11661 return [createComponent(Match, { 11662 get when() { 11663 return [2, 3].includes(number()); 11664 }, 11665 get children() { 11666 return createComponent(RadioGroup_default, { 11667 row: true, 11668 name: "scale-radio-group", 11669 "aria-labelledby": "scale-by-label", 11670 defaultValue: 0, 11671 onChange: setMultiplier, 11672 get children() { 11673 return createComponent(For, { 11674 get each() { 11675 return multipliers(); 11676 }, 11677 children: (m, i) => {
11678 return createComponent(FormControlLabel_default, { 11679 get value() { 11680 return i(); 11681 }, 11682 get control() { 11683 return createComponent(Radio_default, {}); 11684 }, 11685 label: m 11686 }); 11687 } 11688 }); 11689 } 11690 }); 11691 } 11692 }), createComponent(Match, { 11693 get when() { 11694 return number() > 3; 11695 }, 11696 get children() { 11697 return createComponent(Select_default, { 11698 id: "multiplier", 11699 label: "multiplier", 11700 defaultValue: 0, 11701 onChange: setMultiplier, 11702 get children() { 11703 return createComponent(For, { 11704 get each() { 11705 return multipliers(); 11706 }, 11707 children: (m, i) => createComponent(MenuItem_default, { 11708 get value() { 11709 return i(); 11710 }, 11711 children: m 11712 }) 11713 }); 11714 } 11715 }); 11716 } 11717 })]; 11718 } 11719 })]; 11720 } 11721 })); 11722 return _el$4; 11723 })(); 11724}; 11725var resourceUrl = (resourcePath) => "/app/classic/resources/" + resourcePath; 11726var StrutLengthPanel = (props) => { 11727 const { 11728 controllerAction 11729 } = useEditor(); 11730 const orbit = () => controllerProperty(props.controller, "selectedOrbit"); 11731 const halfSizes = () => controllerProperty(props.controller, "halfSizes", "selectedOrbit", false) === "true"; 11732 const color = () => controllerProperty(props.controller, "color", "selectedOrbit", false); 11733 const backgroundColor = () => color() && hexToWebColor(color()) || "whitesmoke"; 11734 const longName = () => controllerProperty(props.controller, "scaleName.long", "selectedOrbit", false); 11735 const mediumName = () => controllerProperty(props.controller, "scaleName.medium", "selectedOrbit", false); 11736 const shortName = () => controllerProperty(props.controller, "scaleName.short", "selectedOrbit", false); 11737 const supershortName = () => controllerProperty(props.controller, "scaleName.superShort", "selectedOrbit", false); 11738 const lengthController = () => subController(props.controller, `length.${orbit()}`); 11739 const realScale = () => controllerProperty(lengthController(), "scale", "length", false); 11740 const unitText = () => controllerProperty(lengthController(), "unitText", "length", false); 11741 const scaleFactorHtml = () => controllerProperty(lengthController(), "scaleFactorHtml", "length", false); 11742 const lengthText = () => controllerProperty(lengthController(), "lengthMathML", "length", false); 11743 const mathML = createMemo(() => { 11744 if (!orbit()) return; 11745 const el = _tmpl$52(); 11746 el.innerHTML = lengthText(); 11747 return el; 11748 }); 11749 const [scale, setScale] = createSignal(0); 11750 createEffect(() => { 11751 if (orbit()) { 11752 const value = realScale(); 11753 value && setScale(value); 11754 } 11755 }); 11756 const changeScale = (change) => (evt) => { 11757 setScale(change); 11758 controllerAction(lengthController(), "setProperty", { 11759 name: "scale", 11760 value: scale() 11761 }); 11762 }; 11763 const scaleUp = () => { 11764 setScale((s) => ++s); 11765 controllerAction(lengthController(), "scaleUp"); 11766 }; 11767 const scaleDown = () => { 11768 setScale((s) => --s); 11769 controllerAction(lengthController(), "scaleDown"); 11770 }; 11771 const predefinedScale = (scale2, action) => (evt) => { 11772 setScale(scale2); 11773 controllerAction(lengthController(), action); 11774 }; 11775 const half = () => controllerProperty(lengthController(), "half", "length", false) === "true"; 11776 const toggleHalf = () => controllerAction(lengthController(), "toggleHalf"); 11777 const PredefButton = (props2) => createComponent(Button_default, { 11778 variant: "outlined", 11779 sx: { 11780 padding: "2px 9px", 11781 color: "black", 11782 border: "1px solid black", 11783 margin: "4px", 11784 backgroundColor: "whitesmoke" 11785 }, 11786 get onClick() { 11787 return predefinedScale(props2.scale, props2.action); 11788 }, 11789 get children() { 11790 return props2.label; 11791 } 11792 }); 11793 return createComponent(Show, { 11794 get when() { 11795 return orbit(); 11796 }, 11797 get children() { 11798 const _el$7 = _tmpl$62(), _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$10 = _el$9.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$12.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$11.nextSibling, _el$17 = _el$9.nextSibling, _el$18 = _el$8.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$20.nextSibling, _el$22 = _el$19.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling, _el$25 = _el$24.firstChild, _el$26 = _el$25.nextSibling; 11799 _el$9.style.setProperty("border-radius", "5px"); 11800 insert(_el$9, createComponent(ScaleBy, { 11801 get controller() { 11802 return lengthController(); 11803 } 11804 }), _el$10); 11805 _el$12.$$click = scaleUp; 11806 _el$14.$$click = scaleDown; 11807 insert(_el$16, createComponent(Slider, { 11808 orientation: "vertical", 11809 get defaultValue() { 11810 return realScale(); 11811 }, 11812 "aria-labelledby": "strut-scale-slider", 11813 valueLabelDisplay: "off", 11814 step: 1, 11815 marks: sliderMarks, 11816 track: false, 11817 min: -sliderLimit, 11818 max: sliderLimit 11819 })); 11820 _el$17.style.setProperty("grid-template-rows", "1fr 1fr 1fr 1fr 1fr"); 11821 _el$17.style.setProperty("margin-block-start", "auto"); 11822 _el$17.style.setProperty("align-content", "space-around"); 11823 _el$17.style.setProperty("display", "grid"); 11824 insert(_el$17, createComponent(Show, { 11825 get when() { 11826 return halfSizes(); 11827 }, 11828 get fallback() { 11829 return _tmpl$24(); 11830 }, 11831 get children() {
11832 return createComponent(FormControlLabel_default, { 11833 label: "half", 11834 sx: { 11835 margin: "auto" 11836 }, 11837 get control() { 11838 return createComponent(Switch_default, { 11839 get checked() { 11840 return half(); 11841 }, 11842 onChange: toggleHalf, 11843 size: "small", 11844 inputProps: { 11845 "aria-label": "half-sizes" 11846 } 11847 }); 11848 } 11849 }); 11850 } 11851 }), null); 11852 insert(_el$17, createComponent(PredefButton, { 11853 scale: 3, 11854 action: "long", 11855 get label() { 11856 return longName(); 11857 } 11858 }), null); 11859 insert(_el$17, createComponent(PredefButton, { 11860 scale: 2, 11861 action: "medium", 11862 get label() { 11863 return mediumName(); 11864 } 11865 }), null); 11866 insert(_el$17, createComponent(PredefButton, { 11867 scale: 1, 11868 action: "short", 11869 get label() { 11870 return shortName(); 11871 } 11872 }), null); 11873 insert(_el$17, createComponent(PredefButton, { 11874 scale: 0, 11875 action: "supershort", 11876 get label() { 11877 return supershortName(); 11878 } 11879 }), null); 11880 _el$18.style.setProperty("background-color", "whitesmoke"); 11881 _el$18.style.setProperty("margin-left", "1em"); 11882 _el$19.style.setProperty("min-height", "22px"); 11883 insert(_el$21, unitText); 11884 _el$22.style.setProperty("min-height", "22px"); 11885 insert(_el$22, scaleFactorHtml, _el$23); 11886 _el$24.style.setProperty("min-height", "30px"); 11887 _el$24.style.setProperty("margin-left", "1em"); 11888 insert(_el$26, mathML); 11889 createRenderEffect((_p$) => { 11890 const _v$ = backgroundColor(), _v$2 = resourceUrl("org/vorthmann/zome/ui/scaleUp.gif"), _v$3 = resourceUrl("org/vorthmann/zome/ui/scaleDown.gif"); 11891 _v$ !== _p$._v$ && ((_p$._v$ = _v$) != null ? _el$9.style.setProperty("background-color", _v$) : _el$9.style.removeProperty("background-color")); 11892 _v$2 !== _p$._v$2 && setAttribute(_el$13, "src", _p$._v$2 = _v$2); 11893 _v$3 !== _p$._v$3 && setAttribute(_el$15, "src", _p$._v$3 = _v$3); 11894 return _p$; 11895 }, { 11896 _v$: void 0, 11897 _v$2: void 0, 11898 _v$3: void 0 11899 }); 11900 return _el$7; 11901 } 11902 }); 11903}; 11904delegateEvents(["click"]); 11905
11906// src/app/classic/components/orbitpanel.jsx 11907var _tmpl$14 = /* @__PURE__ */ template(`<svg><circle r="0.05"></svg>`, false, true); 11908var _tmpl$25 = /* @__PURE__ */ template(`<svg><circle r="0.0185" fill="black"></svg>`, false, true); 11909var _tmpl$33 = /* @__PURE__ */ template(`<svg><circle r="0.07850000000000001" fill="none"></svg>`, false, true); 11910var _tmpl$43 = /* @__PURE__ */ template(`<div class="orbit-panel"><div><svg viewBox="-0.1 -0.1 1.2 0.792" stroke="black" stroke-width="0.005"><g><polygon fill="none" points="0,0.6 1,0.6 0,0"></polygon> `); 11911var OrbitDot = (props) => { 11912 const { 11913 controllerAction 11914 } = useEditor(); 11915 const propName = () => `orbitDot.${props.orbit}`; 11916 const orbits = () => controllerProperty(props.controller, "orbits", "orbits", true) || []; 11917 const selectedOrbit = () => controllerProperty(props.controller, "selectedOrbit", "orbits", false); 11918 const selected = () => orbits().indexOf(props.orbit) >= 0; 11919 const isLastSelected = () => props.orbit === selectedOrbit(); 11920 const details = () => { 11921 const value = controllerProperty(props.controller, propName(), "orbits", false) || ""; 11922 const [colorHex, x2 = 0, y2 = 0] = value.split("/"); 11923 const color2 = colorHex && hexToWebColor(colorHex); 11924 return { 11925 color: color2, 11926 x: x2, 11927 y: y2 11928 }; 11929 }; 11930 const r = 0.05; 11931 const color = () => details().color; 11932 const x = () => details().x; 11933 const y = () => props.relativeHeight * (1 - details().y); 11934 const toggleDot = (evt) => controllerAction(props.controller, `toggleDirection.${props.orbit}`); 11935 return createComponent(Show, { 11936 get when() { 11937 return color(); 11938 }, 11939 get children() { 11940 return [(() => { 11941 const _el$ = _tmpl$14(); 11942 _el$.$$click = toggleDot; 11943 createRenderEffect((_p$) => { 11944 const _v$ = x(), _v$2 = y(), _v$3 = color(); 11945 _v$ !== _p$._v$ && setAttribute(_el$, "cx", _p$._v$ = _v$); 11946 _v$2 !== _p$._v$2 && setAttribute(_el$, "cy", _p$._v$2 = _v$2); 11947 _v$3 !== _p$._v$3 && setAttribute(_el$, "fill", _p$._v$3 = _v$3); 11948 return _p$; 11949 }, { 11950 _v$: void 0, 11951 _v$2: void 0, 11952 _v$3: void 0 11953 }); 11954 return _el$; 11955 })(), memo(() => memo(() => !!selected())() && (() => { 11956 const _el$2 = _tmpl$25(); 11957 _el$2.$$click = toggleDot; 11958 createRenderEffect((_p$) => { 11959 const _v$4 = x(), _v$5 = y(); 11960 _v$4 !== _p$._v$4 && setAttribute(_el$2, "cx", _p$._v$4 = _v$4); 11961 _v$5 !== _p$._v$5 && setAttribute(_el$2, "cy", _p$._v$5 = _v$5); 11962 return _p$; 11963 }, { 11964 _v$4: void 0, 11965 _v$5: void 0 11966 }); 11967 return _el$2; 11968 })()), memo(() => memo(() => !!isLastSelected())() && (() => { 11969 const _el$3 = _tmpl$33(); 11970 createRenderEffect((_p$) => { 11971 const _v$6 = x(), _v$7 = y(); 11972 _v$6 !== _p$._v$6 && setAttribute(_el$3, "cx", _p$._v$6 = _v$6); 11973 _v$7 !== _p$._v$7 && setAttribute(_el$3, "cy", _p$._v$7 = _v$7); 11974 return _p$; 11975 }, { 11976 _v$6: void 0, 11977 _v$7: void 0 11978 }); 11979 return _el$3; 11980 })())]; 11981 } 11982 }); 11983}; 11984var OrbitPanel = (props) => { 11985 const { 11986 controllerAction 11987 } = useEditor(); 11988 const oneAtATime = () => controllerProperty(props.controller, "oneAtATime", "orbits", false) === "true"; 11989 const selectNone = () =>
11989 controllerAction(props.controller, "setNoDirections"); 11990 const selectAll = () => controllerAction(props.controller, "setAllDirections"); 11991 const singleAction = (evt, value) => controllerAction(props.controller, `setSingleOrbit.${value}`); 11992 const marginedStyle = { 11993 padding: "0px", 11994 margin: "5px" 11995 }; 11996 const relativeHeight = 0.6; 11997 const triangleCorners = `0,${relativeHeight} 1,${relativeHeight} 0,0`; 11998 const viewBox = `-0.1 -0.1 1.2 ${relativeHeight * 1.32}`; 11999 return (() => { 12000 const _el$4 = _tmpl$43(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling; 12001 insert(_el$4, createComponent(InputLabel_default, { 12002 id: "orbits-label", 12003 get children() { 12004 return props.label; 12005 } 12006 }), _el$5); 12007 insert(_el$4, createComponent(Stack_default, { 12008 spacing: 2, 12009 direction: "row", 12010 get children() { 12011 return [createComponent(Button_default, { 12012 variant: "outlined", 12013 size: "small", 12014 style: marginedStyle, 12015 onClick: selectNone, 12016 children: "None" 12017 }), createComponent(Button_default, { 12018 variant: "outlined", 12019 size: "small", 12020 style: marginedStyle, 12021 onClick: selectAll, 12022 children: "All" 12023 }), createComponent(Show, { 12024 get when() { 12025 return props.lastSelected; 12026 }, 12027 get children() { 12028 return createComponent(FormControlLabel_default, { 12029 style: marginedStyle, 12030 label: "single", 12031 get control() { 12032 return createComponent(Switch_default, { 12033 get checked() { 12034 return oneAtATime(); 12035 }, 12036 onChange: singleAction, 12037 size: "small", 12038 inputProps: { 12039 "aria-label": "controlled" 12040 } 12041 }); 12042 } 12043 }); 12044 } 12045 })]; 12046 } 12047 }), _el$5); 12048 _el$5.style.setProperty("background-color", "white"); 12049 insert(_el$7, createComponent(For, { 12050 get each() { 12051 return props.orbits; 12052 }, 12053 children: (orbit) => createComponent(OrbitDot, { 12054 orbit, 12055 relativeHeight, 12056 get controller() { 12057 return props.controller; 12058 } 12059 }) 12060 }), null); 12061 insert(_el$5, () => props.children, null); 12062 return _el$4; 12063 })(); 12064}; 12065delegateEvents(["click"]); 12066
12067// src/app/classic/dialogs/orbits.jsx 12068var _tmpl$15 = /* @__PURE__ */ template(`<div>`); 12069var OrbitsDialog = (props) => { 12070 const availableOrbits = () => subController(props.controller, "availableOrbits"); 12071 const snapOrbits = () => subController(props.controller, "snapOrbits"); 12072 const allOrbits = () => controllerProperty(props.controller, "orbits", "orbits", true); 12073 const orbits = () => controllerProperty(availableOrbits(), "orbits", "orbits", true); 12074 const lastAvailable = () => controllerProperty(availableOrbits(), "selectedOrbit", "orbits", false); 12075 const lastSnap = () => controllerProperty(snapOrbits(), "selectedOrbit", "orbits", false); 12076 return createComponent(Dialog_default, { 12077 onClose: () => props.close(), 12078 get open() { 12079 return props.open; 12080 }, 12081 maxWidth: "md", 12082 fullWidth: "true", 12083 get children() { 12084 return [createComponent(DialogTitle_default, { 12085 id: "orbits-dialog", 12086 children: "Direction Configuration" 12087 }), createComponent(DialogContent_default, { 12088 get children() { 12089 const _el$ = _tmpl$15(); 12090 _el$.style.setProperty("display", "grid"); 12091 _el$.style.setProperty("grid-template-columns", "1fr 1fr"); 12092 _el$.style.setProperty("min-width", "550px"); 12093 insert(_el$, createComponent(OrbitPanel, { 12094 get orbits() { 12095 return allOrbits(); 12096 }, 12097 get controller() { 12098 return availableOrbits(); 12099 }, 12100 get lastSelected() { 12101 return lastAvailable(); 12102 }, 12103 label: "available directions", 12104 style: { 12105 height: "100%" 12106 } 12107 }), null); 12108 insert(_el$, createComponent(OrbitPanel, { 12109 get orbits() { 12110 return orbits(); 12111 }, 12112 get controller() { 12113 return snapOrbits(); 12114 }, 12115 get lastSelected() { 12116 return lastSnap(); 12117 }, 12118 label: "snap directions", 12119 style: { 12120 height: "100%" 12121 } 12122 }), null); 12123 return _el$; 12124 } 12125 }), createComponent(DialogActions_default, { 12126 get children() { 12127 return createComponent(Button_default, { 12128 size: "small", 12129 onClick: () => props.close(), 12130 color: "primary", 12131 children: "Close" 12132 }); 12133 } 12134 })]; 12135 } 12136 }); 12137}; 12138
12139// src/app/classic/dialogs/polytopes.jsx 12140var _tmpl$16 = /* @__PURE__ */ template(`<div><svg viewBox="0 -0.5 5 3" stroke="black" stroke-width="0.03"><style>.label { font: .35px sans-serif; }</style><g><text x="1.4" y="1.5" class="label" stroke-width="0.03"></text><text x="2.4" y="1.5" class="label" stroke-width="0.03">`); 12141var _tmpl$26 = /* @__PURE__ */ template(`<svg><g><line stroke="black" stroke-width="0.05"></line><circle r="0.1" fill="black"></circle><circle r="0.5" fill="none" stroke="none" pointer-events="all"></svg>`, false, true); 12142var _tmpl$34 = /* @__PURE__ */ template(`<svg><circle r="0.3" fill="none"></svg>`, false, true); 12143var indices = [0, 1, 2, 3]; 12144var alt = Math.sqrt(3) / 2; 12145var x_D4 = [2, 2, 2.5, 3.5]; 12146var y_D4 = [1 - alt, 1 + alt, 1, 1]; 12147var x_others = [1, 2, 3, 4]; 12148var y_others = [1, 1, 1, 1]; 12149var CoxeterDiagram = (props) => { 12150 const { 12151 controllerAction 12152 } = useEditor(); 12153 const useMirror = (i) => () => controllerProperty(props.controller, `edge.${i}`) === "true"; 12154 const toggleMirror = (i) => (evt) => { 12155 controllerAction(props.controller, `edge.${i}`); 12156 }; 12157 const isD4 = () => props.group === "D4"; 12158 const x = (i) => isD4() ? x_D4[i] : x_others[i]; 12159 const y = (i) => isD4() ? y_D4[i] : y_others[i]; 12160 return (() => { 12161 const _el$ = _tmpl$16(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling; 12162 _el$.style.setProperty("position", "relative"); 12163 _el$.style.setProperty("background-color", "white"); 12164 _el$.style.setProperty("cursor", "pointer"); 12165 insert(_el$5, () => props.group === "H4" ? "5" : props.group === "B4/C4" ? "4" : ""); 12166 insert(_el$6, () => props.group === "F4" ? "4" : ""); 12167 insert(_el$4, createComponent(For, { 12168 each: indices, 12169 children: (i) => (() => { 12170 const _el$7 = _tmpl$26(), _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling, _el$10 = _el$9.nextSibling; 12171 insert(_el$7, (() => { 12172 const _c$ = memo(() => !!useMirror(3 - i)()); 12173 return () => _c$() && // reversed 12174 (() => { 12175 const _el$11 = _tmpl$34(); 12176 createRenderEffect((_p$) => { 12177 const _v$9 = x(i), _v$10 = y(i); 12178 _v$9 !== _p$._v$9 && setAttribute(_el$11, "cx", _p$._v$9 = _v$9); 12179 _v$10 !== _p$._v$10 && setAttribute(_el$11, "cy", _p$._v$10 = _v$10); 12180 return _p$; 12181 }, { 12182 _v$9: void 0, 12183 _v$10: void 0 12184 }); 12185 return _el$11; 12186 })(); 12187 })(), _el$10); 12188 addEventListener(_el$10, "click", toggleMirror(3 - i), true); 12189 createRenderEffect((_p$) => { 12190 const _v$ = x(i), _v$2 = y(i), _v$3 = x(2), _v$4 = y(2), _v$5 = x(i), _v$6 = y(i), _v$7 = x(i), _v$8 = y(i); 12191 _v$ !== _p$._v$ && setAttribute(_el$8, "x1", _p$._v$ = _v$); 12192 _v$2 !== _p$._v$2 && setAttribute(_el$8, "y1", _p$._v$2 = _v$2); 12193 _v$3 !== _p$._v$3 && setAttribute(_el$8, "x2", _p$._v$3 = _v$3); 12194 _v$4 !== _p$._v$4 && setAttribute(_el$8, "y2", _p$._v$4 = _v$4); 12195 _v$5 !== _p$._v$5 && setAttribute(_el$9, "cx", _p$._v$5 = _v$5); 12196 _v$6 !== _p$._v$6 && setAttribute(_el$9, "cy", _p$._v$6 = _v$6); 12197 _v$7 !== _p$._v$7 && setAttribute(_el$10, "cx", _p$._v$7 = _v$7); 12198 _v$8 !== _p$._v$8 && setAttribute(_el$10, "cy", _p$._v$8 = _v$8); 12199 return _p$; 12200 }, { 12201 _v$: void 0, 12202 _v$2: void 0, 12203 _v$3: void 0, 12204 _v$4: void 0, 12205 _v$5: void 0, 12206 _v$6: void 0, 12207 _v$7: void 0, 12208 _v$8: void 0 12209 }); 12210 return _el$7; 12211 })() 12212 }), null); 12213 return _el$; 12214 })(); 12215}; 12216var PolytopesDialog = (props) => { 12217 const { 12218 controllerAction 12219 } = useEditor(); 12220 const controller = () => subController(props.controller, "polytopes"); 12221 const groups = () => controllerProperty(controller(), "groups", "groups", true); 12222 const group = () => controllerProperty(controller(), "group", "group", false) || "H4"; 12223 const changeGroup = (event) => { 12224 controllerAction(controller(), `setGroup.${event.target.value}`); 12225 }; 12226 const generate = (event) => { 12227 props.close(); 12228 controllerAction(controller(), "generate"); 12229 }; 12230 return createComponent(Dialog_default, { 12231 onClose: () => props.close(), 12232 get open() { 12233 return props.open; 12234 }, 12235 get children() { 12236 return [createComponent(DialogTitle_default, { 12237 id: "polytopes-dialog", 12238 children: "Generate a 4D Polytope" 12239 }), createComponent(DialogContent_default, { 12240 sx: { 12241 "padding-bottom": "0px" 12242 }, 12243 get children() { 12244 return createComponent(FormControl_default, { 12245 fullWidth: true, 12246 sx: { 12247 "padding-top": "20px" 12248 }, 12249 get children() { 12250 return [createComponent(InputLabel_default, { 12251 id: "symmetry-group-label", 12252 sx: { 12253 "padding-top": "20px" 12254 }, 12255 children: "group" 12256 }), createComponent(Show, { 12257 get when() { 12258 return groups().length > 0; 12259 }, 12260 get children() { 12261 return [createComponent(Select_default, { 12262 labelId: "symmetry-group-label", 12263 id: "symmetry-group", 12264 label: "group", 12265 get value() { 12266 return group(); 12267 }, 12268 onChange: changeGroup, 12269 get children() { 12270 return createComponent(For, { 12271 get each() { 12272 return groups(); 12273 }, 12274 children: (g) => createComponent(MenuItem_default, { 12275 value: g, 12276 children: g 12277 }) 12278 }); 12279 } 12280 }
12280), createComponent(CoxeterDiagram, { 12281 get controller() { 12282 return controller(); 12283 }, 12284 get group() { 12285 return group(); 12286 } 12287 })]; 12288 } 12289 })]; 12290 } 12291 }); 12292 } 12293 }), createComponent(DialogActions_default, { 12294 get children() { 12295 return [createComponent(Button_default, { 12296 variant: "outlined", 12297 size: "medium", 12298 onClick: () => props.close(), 12299 color: "secondary", 12300 children: "Close" 12301 }), createComponent(Button_default, { 12302 variant: "contained", 12303 size: "medium", 12304 onClick: generate, 12305 color: "primary", 12306 children: "Apply" 12307 })]; 12308 } 12309 })]; 12310 } 12311 }); 12312}; 12313delegateEvents(["click"]); 12314
12315// src/app/classic/context/symmetry.jsx 12316var SymmetryContext = createContext(); 12317var SymmetryProvider = (props) => { 12318 const { 12319 subscribeFor 12320 } = useWorkerClient(); 12321 const { 12322 state, 12323 setCamera 12324 } = useCamera(); 12325 const { 12326 rootController, 12327 controllerAction 12328 } = useEditor(); 12329 const symmetry = () => controllerProperty(rootController(), "symmetry"); 12330 const strutBuilder = () => subController(rootController(), "strutBuilder"); 12331 const symmController = () => subController(strutBuilder(), `symmetry.${symmetry()}`); 12332 const [showShapesDialog, setShowShapesDialog] = createSignal(false); 12333 const [showOrbitsDialog, setShowOrbitsDialog] = createSignal(false); 12334 const [showPolytopesDialog, setShowPolytopesDialog] = createSignal(false); 12335 const [snapping, setSnapping] = createSignal(false); 12336 const snapCamera = () => { 12337 if (snapping()) { 12338 const { 12339 up, 12340 lookDir 12341 } = state.camera; 12342 controllerAction(symmController(), "snapCamera", { 12343 up: unwrap(up), 12344 lookDir: unwrap(lookDir) 12345 }); 12346 } 12347 }; 12348 const api = { 12349 snapping, 12350 snapCamera, 12351 toggleSnapping: () => { 12352 setSnapping((v) => !v); 12353 snapCamera(); 12354 }, 12355 symmetryDefined: () => !!symmetry(), 12356 symmetryController: () => symmController(), 12357 showShapesDialog: () => setShowShapesDialog(true), 12358 showOrbitsDialog: () => setShowOrbitsDialog(true), 12359 showPolytopesDialog: () => { 12360 controllerAction(subController(symmController(), "polytopes"), "setQuaternion"); 12361 setShowPolytopesDialog(true); 12362 } 12363 }; 12364 subscribeFor("SYMMETRY_CHANGED", () => setTimeout(() => snapCamera())); 12365 subscribeFor("CAMERA_SNAPPED", (data) => { 12366 const { 12367 up, 12368 lookDir 12369 } = data; 12370 setCamera(data); 12371 }); 12372 return createComponent(SymmetryContext.Provider, { 12373 value: api, 12374 get children() { 12375 return [memo(() => props.children), createComponent(Show, { 12376 get when() { 12377 return !!symmetry(); 12378 }, 12379 get children() { 12380 return [createComponent(ShapesDialog, { 12381 get controller() { 12382 return symmController(); 12383 }, 12384 get open() { 12385 return showShapesDialog(); 12386 }, 12387 close: () => setShowShapesDialog(false) 12388 }), createComponent(OrbitsDialog, { 12389 get controller() { 12390 return symmController(); 12391 }, 12392 get open() { 12393 return showOrbitsDialog(); 12394 }, 12395 close: () => setShowOrbitsDialog(false) 12396 }), createComponent(PolytopesDialog, { 12397 get controller() { 12398 return symmController(); 12399 }, 12400 get open() { 12401 return showPolytopesDialog(); 12402 }, 12403 close: () => setShowPolytopesDialog(false) 12404 })]; 12405 } 12406 })]; 12407 } 12408 }); 12409}; 12410var useSymmetry = () => useContext(SymmetryContext); 12411
12412// src/app/framework/keyevents.js 12413var suspended = false; 12414var suspendMenuKeyEvents = () => suspended = true; 12415var resumeMenuKeyEvents = () => suspended = false; 12416var menuKeyEventsSuspended = () => suspended; 12417
12418// src/app/classic/context/commands.jsx 12419var CommandsContext = createContext(); 12420var CommandsProvider = (props) => { 12421 const { 12422 rootController, 12423 controllerAction, 12424 state, 12425 setState, 12426 setEdited 12427 } = useEditor(); 12428 const { 12429 showPolytopesDialog, 12430 symmetryController 12431 } = useSymmetry(); 12432 const { 12433 exportAs 12434 } = useViewer(); 12435 const globalAction = (action) => () => controllerAction(rootController(), action); 12436 const undoRedoAction = (action) => () => controllerAction(subController(rootController(), "undoRedo"), action); 12437 const symmetryAction = (symm, action) => () => controllerAction(subController(rootController(), `symmetry.${symm}`), action); 12438 const doSave = (chooseFile = false) => { 12439 let name; 12440 exportAs("vZome").then((text) => { 12441 name = state?.designName || "untitled"; 12442 const mimeType = "application/xml"; 12443 if (state.fileHandle && !chooseFile) return saveTextFile(state.fileHandle, text, mimeType); 12444 else return saveTextFileAs(name + ".vZome", text, mimeType); 12445 }).then((result) => { 12446 const { 12447 handle, 12448 success 12449 } = result; 12450 if (success) { 12451 if (!!handle) { 12452 setState("fileHandle", handle); 12453 name = handle.name; 12454 if (name.toLowerCase().endsWith(".vZome".toLowerCase())) name = name.substring(0, name.length - 6); 12455 } 12456 setState("designName", name); 12457 controllerAction(rootController(), "clearChanges"); 12458 setEdited(false); 12459 } 12460 }); 12461 }; 12462 const doCut = () => { 12463 exportAs("cmesh", { 12464 selection: true 12465 }).then((text) => { 12466 navigator.clipboard.writeText(text); 12467 controllerAction(rootController(), "Delete"); 12468 }); 12469 }; 12470 const doCopy = () => { 12471 exportAs("cmesh", { 12472 selection: true 12473 }).then((text) => { 12474 navigator.clipboard.writeText(text); 12475 }); 12476 }; 12477 const doPaste = () => { 12478 if (!navigator.clipboard.readText) { 12479 console.warn("Clipboard paste is not supported in this browser."); 12480 setState("problem", "Clipboard paste is not supported in this browser."); 12481 return; 12482 } 12483 navigator.clipboard.readText().then((text) => { 12484 controllerAction(rootController(), "ImportColoredMeshJson/clipboard", { 12485 vef: text 12486 }); 12487 }); 12488 }; 12489 const commands = {}; 12490 const listeners = /* @__PURE__ */ new Set(); 12491 const registerKeyListener = (modifiers, deleteKey, key, handler) => { 12492 const listenerName = deleteKey ? "\u232B" : modifiers + key; 12493 if (!listeners.has(listenerName)) { 12494 console.log(`addEventListener ${listenerName}`); 12495 const targetCodes = deleteKey ? ["Delete", "Backspace"] : ["Key" + key.toUpperCase()]; 12496 const hasMeta = !!modifiers?.includes("\u2318"); 12497 const hasControl = !!modifiers?.includes("\u2303"); 12498 const hasShift = !!modifiers?.includes("\u21E7"); 12499 const hasOption = !!modifiers?.includes("\u2325"); 12500 document.body.addEventListener("keydown", (evt) => { 12501 if (menuKeyEventsSuspended()) return; 12502 if (targetCodes.indexOf(evt.code) < 0) return; 12503 if (hasMeta !== evt.metaKey) return; 12504 if (hasControl !== evt.ctrlKey) return; 12505 if (hasShift !== evt.shiftKey) return; 12506 if (hasOption !== evt.altKey) return; 12507 evt.preventDefault(); 12508 handler(); 12509 }); 12510 listeners.add(listenerName); 12511 } 12512 }; 12513 const isMac = navigator.userAgentData?.platform === "macOS" || navigator.userAgent.includes("Macintosh"); 12514 const createCommand = (action, keyEquiv, handler = globalAction(action)) => { 12515 let keystroke = ""; 12516 if (!!keyEquiv) { 12517 let modifiers = keyEquiv.mods; 12518 let prefix = modifiers; 12519 if (!isMac && modifiers) { 12520 modifiers = modifiers.replace("\u2318", "\u2303"); 12521 prefix = ""; 12522 if (modifiers.includes("\u2303")) prefix += "Ctrl"; 12523 if (modifiers.includes("\u21E7")) prefix += prefix ? "+Shift" : "Shift"; 12524 if (modifiers.includes("\u2325")) prefix += prefix ? "+Alt" : "Alt"; 12525 if (prefix) prefix += "-"; 12526 } 12527 registerKeyListener(modifiers, keyEquiv.deleteKey, keyEquiv.key, handler); 12528 keystroke = !keyEquiv ? "" : keyEquiv.deleteKey ? "\u232B" : prefix + keyEquiv.key; 12529 } 12530 if (!!commands[action]) { 12531 console.warn(`Command for action ${action} is being replaced; original key binding may be lost.`); 12532 } 12533 commands[action] = { 12534 keystroke, 12535 handler 12536 }; 12537 return commands[action]; 12538 }; 12539 const getCommand = (action) => {
12540 let command = commands[action]; 12541 if (!command) { 12542 command = createCommand(action); 12543 } 12544 return command; 12545 }; 12546 createCommand("Save", { 12547 mods: "\u2318", 12548 key: "S" 12549 }, doSave); 12550 createCommand("SaveAs", { 12551 mods: "\u2325\u2318", 12552 key: "S" 12553 }, () => doSave(true)); 12554 createCommand("undo", { 12555 mods: "\u2318", 12556 key: "Z" 12557 }, undoRedoAction("undo")); 12558 createCommand("undoAll", { 12559 mods: "\u2325\u2318", 12560 key: "Z" 12561 }, undoRedoAction("undoAll")); 12562 createCommand("redo", { 12563 mods: "\u2318", 12564 key: "Y" 12565 }, undoRedoAction("redo")); 12566 createCommand("redoAll", { 12567 mods: "\u2325\u2318", 12568 key: "Y" 12569 }, undoRedoAction("redoAll")); 12570 createCommand("Cut", { 12571 mods: "\u2318", 12572 key: "X" 12573 }, doCut); 12574 createCommand("Copy", { 12575 mods: "\u2318", 12576 key: "C" 12577 }, doCopy); 12578 createCommand("Paste", { 12579 mods: "\u2318", 12580 key: "V" 12581 }, doPaste); 12582 createCommand("Delete", { 12583 deleteKey: true 12584 }); 12585 createCommand("SelectAll", { 12586 mods: "\u2318", 12587 key: "A" 12588 }); 12589 createCommand("SelectNeighbors", { 12590 mods: "\u2325\u2318", 12591 key: "A" 12592 }); 12593 createCommand("InvertSelection"); 12594 createCommand("GroupSelection/group", { 12595 mods: "\u2318", 12596 key: "G" 12597 }); 12598 createCommand("GroupSelection/ungroup", { 12599 mods: "\u2325\u2318", 12600 key: "G" 12601 }); 12602 createCommand("hideball", { 12603 mods: "\u2303", 12604 key: "H" 12605 }); 12606 createCommand("ShowHidden", { 12607 mods: "\u2325\u2303", 12608 key: "H" 12609 }); 12610 createCommand("JoinPoints/CLOSED_LOOP", { 12611 mods: "\u2318", 12612 key: "J" 12613 }); 12614 createCommand("JoinPoints/CHAIN_BALLS", { 12615 mods: "\u2325\u2318", 12616 key: "J" 12617 }); 12618 createCommand("panel", { 12619 mods: "\u2318", 12620 key: "P" 12621 }); 12622 createCommand("Parallelepiped", { 12623 mods: "\u21E7\u2318", 12624 key: "P" 12625 }); 12626 createCommand("icosasymm", { 12627 mods: "\u2318", 12628 key: "I" 12629 }, symmetryAction("icosahedral", "icosasymm")); 12630 createCommand("octasymm", { 12631 mods: "\u2325\u2318", 12632 key: "C" 12633 }, symmetryAction("octahedral", "octasymm")); 12634 createCommand("tetrasymm", { 12635 mods: "\u2325\u2318", 12636 key: "T" 12637 }, symmetryAction("octahedral", "tetrasymm")); 12638 createCommand("showPolytopeDialog", { 12639 mods: "\u2325\u2318", 12640 key: "P" 12641 }, showPolytopesDialog); 12642 createCommand("ReplaceWithShape", void 0, () => controllerAction(symmetryController(), "ReplaceWithShape")); 12643 const createCustomCommands = (items) => { 12644 items.forEach((item) => { 12645 if (item.action && !commands[item.action]) { 12646 createCommand(item.action, item.key ? { 12647 mods: item.mods || "\u2325\u2303", 12648 key: item.key 12649 } : void 0); 12650 } else if (!!item.submenu) { 12651 createCustomCommands(item.submenu); 12652 } 12653 }); 12654 }; 12655 const customMenuItems = localStorage.getItem("vzome-custom-menu"); 12656 if (customMenuItems) { 12657 try { 12658 const items = JSON.parse(customMenuItems); 12659 createCustomCommands(items); 12660 } catch (e) { 12661 console.error("Error parsing custom menu items from localStorage:", e); 12662 } 12663 } 12664 return createComponent(CommandsContext.Provider, { 12665 value: { 12666 registerKeyListener, 12667 getCommand 12668 }, 12669 get children() { 12670 return props.children; 12671 } 12672 }); 12673}; 12674var useCommands = () => useContext(CommandsContext); 12675
12676// src/app/classic/dialogs/webloader.jsx 12677var UrlDialog = (props) => { 12678 const [url, setUrl] = createSignal(""); 12679 const handleCancel = () => { 12680 resumeMenuKeyEvents(); 12681 props.setShow(false); 12682 }; 12683 const handleOpen = () => { 12684 resumeMenuKeyEvents(); 12685 props.setShow(false); 12686 props.openDesign(url()); 12687 }; 12688 const handleChange = (event) => setUrl(event.target.value); 12689 return createComponent(Dialog_default, { 12690 get open() { 12691 return props.show; 12692 }, 12693 onClose: handleCancel, 12694 "aria-labelledby": "form-dialog-title", 12695 maxWidth: "lg", 12696 fullWidth: true, 12697 get children() { 12698 return [createComponent(DialogTitle_default, { 12699 id: "form-dialog-title", 12700 children: "Load a Remote vZome Design" 12701 }), createComponent(DialogContent_default, { 12702 get children() { 12703 return [createComponent(DialogContentText_default, { 12704 children: "The URL must be open to public access." 12705 }), createComponent(TextField_default, { 12706 onChange: handleChange, 12707 autoFocus: true, 12708 margin: "dense", 12709 id: "name", 12710 label: "vZome design URL", 12711 type: "url", 12712 fullWidth: true 12713 })]; 12714 } 12715 }), createComponent(DialogActions_default, { 12716 get children() { 12717 return [createComponent(Button_default, { 12718 onClick: handleCancel, 12719 color: "secondary", 12720 children: "Cancel" 12721 }), createComponent(Button_default, { 12722 onClick: handleOpen, 12723 color: "primary", 12724 children: "Open" 12725 })]; 12726 } 12727 })]; 12728 } 12729 }); 12730}; 12731
12732// src/app/framework/tooltip.jsx 12733var Tooltip = (props) => { 12734 return memo(() => props.children); 12735}; 12736
12737// src/app/classic/components/folder.jsx 12738var _tmpl$17 = /* @__PURE__ */ template(`<input type="file" accept=".vZome">`); 12739var queryParams = new URLSearchParams(window.location.search); 12740var enableDropbox = !!queryParams.get("enableDropbox"); 12741if (enableDropbox) { 12742 window.localStorage.setItem("vzome.enable.dropbox", true); 12743} 12744var models = [{ 12745 key: "vZomeLogo", 12746 label: "vZome Logo", 12747 description: "The vZome logo, one tetrahedral cell of the 4D 600-cell (cell-first projection)" 12748}, { 12749 key: "affineDodec", 12750 label: "Stretched Dodecahedron", 12751 description: "A regular dodecahedron stretched by a linear transformation" 12752}, { 12753 key: "120-cell", 12754 label: "Hyper-dodecahedron", 12755 description: "The 4D analogue of a dodecahedron, with 120 dodecahedral cells" 12756}, { 12757 key: "bluePlaneArches1", 12758 label: "Arched Rhombic Triacontahedron", 12759 description: "A sculpture built using just the blue planes" 12760}, { 12761 key: "C240", 12762 label: "C-240 Buckyball", 12763 description: "C-240 Buckyball" 12764}, { 12765 key: "orangePurpleChiral", 12766 label: "Orange and Purple Tangle", 12767 description: "A design by Brian Hall" 12768}, { 12769 key: "truncated5Cell", 12770 url: "https://www.vzome.com/models/2007/04-Apr/5cell/A4_3C.vZome", 12771 label: "Truncated 5-Cell", 12772 description: "Truncated 5-Cell" 12773}]; 12774var getModelURL = (key, pathToRoot = "./models") => new URL(`${pathToRoot}/${key}.vZome`, window.location).toString(); 12775var OpenMenu = (props) => { 12776 const { 12777 fetchDesignUrl, 12778 openDesignFile: openDesignFile2 12779 } = useEditor(); 12780 const [anchor, setAnchor] = createSignal(null); 12781 const [showDialog, setShowDialog] = createSignal(false); 12782 const acceptFiles = ".vZome"; 12783 let inputRef; 12784 const dropboxEnabled = window.Dropbox && window.localStorage.getItem("vzome.enable.dropbox"); 12785 const chooseFile = () => { 12786 setAnchor(null); 12787 inputRef.click(); 12788 }; 12789 const showDropboxChooser = () => { 12790 setAnchor(null); 12791 window.Dropbox.choose({ 12792 linkType: "direct", 12793 extensions: [".vzome"], 12794 success: (files) => { 12795 fetchDesignUrl(files[0].link, { 12796 preview: false, 12797 debug: props.forDebugger 12798 }); 12799 } 12800 }); 12801 }; 12802 const onFileSelected = (e) => { 12803 const selected = e.target.files && e.target.files[0]; 12804 if (selected) openDesignFile2(selected, props.forDebugger); 12805 inputRef.value = null; 12806 }; 12807 const openUrl = (url) => { 12808 if (url && url.endsWith(".vZome")) { 12809 fetchDesignUrl(url, { 12810 preview: false, 12811 debug: props.forDebugger 12812 }); 12813 } 12814 }; 12815 const handleClickOpen = (event) => { 12816 setAnchor(event.currentTarget); 12817 }; 12818 const handleSelectModel = (model) => { 12819 setAnchor(null); 12820 const { 12821 url, 12822 key 12823 } = model; 12824 openUrl(url || getModelURL(key, props.pathToRoot), key); 12825 }; 12826 const handleClose = () => { 12827 setAnchor(null); 12828 }; 12829 const handleShowUrlDialog = () => { 12830 setAnchor(null); 12831 setShowDialog(true); 12832 }; 12833 return [createComponent(Tooltip, { 12834 title: "Open a design", 12835 "aria-label": "open", 12836 get children() { 12837 return createComponent(IconButton_default, { 12838 color: "inherit", 12839 "aria-label": "open", 12840 onClick: handleClickOpen, 12841 get children() { 12842 return createComponent(FolderOpenRounded_default, { 12843 fontSize: "large" 12844 }); 12845 } 12846 }); 12847 } 12848 }), createComponent(Menu_default, { 12849 get anchorEl() { 12850 return anchor(); 12851 }, 12852 get open() { 12853 return Boolean(anchor()); 12854 }, 12855 onClose: handleClose, 12856 get children() { 12857 return [createComponent(MenuItem_default, { 12858 onClick: chooseFile, 12859 get children() { 12860 return ["Local vZome file", (() => { 12861 const _el$ = _tmpl$17(); 12862 _el$.addEventListener("change", onFileSelected); 12863 const _ref$ = inputRef; 12864 typeof _ref$ === "function" ? use(_ref$, _el$) : inputRef = _el$; 12865 _el$.style.setProperty("display", "none"); 12866 return _el$; 12867 })()]; 12868 } 12869 }), createComponent(MenuItem_default, { 12870 onClick: handleShowUrlDialog, 12871 children: "Remote vZome URL" 12872 }), memo(() => dropboxEnabled && createComponent(MenuItem_default, { 12873 onClick: showDropboxChooser, 12874 children: "Choose from Dropbox" 12875 })), createComponent(Divider_default, {}), createComponent(For, { 12876 each: models, 12877 children: (model) => createComponent(MenuItem_default, { 12878 onClick: () => handleSelectModel(model), 12879 get children() { 12880 return model.label; 12881 } 12882 }) 12883 })]; 12884 } 12885 }), createComponent(UrlDialog, { 12886 get show() { 12887 return showDialog(); 12888 }, 12889 setShow: setShowDialog, 12890 openDesign: openUrl 12891 })]; 12892}; 12893
12894// src/app/classic/components/logo.jsx 12895var _tmpl$18 = /* @__PURE__ */ template(`<svg><path fill="#3e3e3e" d="M 269.02 277.8 L 272.46 283.83 L 287.98 296.29 L 286.3 291.64 z"></svg>`, false, true); 12896var _tmpl$27 = /* @__PURE__ */ template(`<svg><path fill="#e7e7e1" d="M 278.1 234.58 L 267.43 243.11 L 275.89 238.56 L 287.57 229.43 z"></svg>`, false, true); 12897var _tmpl$35 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 337.14 259.25 L 331.34 244.39 L 328.71 237.77 L 334.6 252.83 z"></svg>`, false, true); 12898var _tmpl$44 = /* @__PURE__ */ template(`<svg><path fill="#7c7c7f" d="M 312.8 292.04 L 323.06 288.12 L 301.1 296.41 z"></svg>`, false, true); 12899var _tmpl$53 = /* @__PURE__ */ template(`<svg><path fill="#c7c7c3" d="M 299.53 226.34 L 287.57 229.43 L 301.91 228.56 L 312.64 225.73 z"></svg>`, false, true); 12900var _tmpl$63 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 337.14 259.25 L 334.6 252.83 L 330.46 274.92 L 333.45 279.09 z"></svg>`, false, true); 12901var _tmpl$72 = /* @__PURE__ */ template(`<svg><path fill="#231b33" d="M 247.91 235.51 L 267.43 243.11 L 275.89 238.56 L 256.03 230.78 z"></svg>`, false, true); 12902var _tmpl$82 = /* @__PURE__ */ template(`<svg><path fill="#fbfbf5" d="M 275.89 238.56 L 267.43 243.11 L 263.23 262.81 L 271.67 258.63 z"></svg>`, false, true); 12903var _tmpl$92 = /* @__PURE__ */ template(`<svg><path fill="#333333" d="M 301.1 296.41 L 299.6 291.72 L 286.3 291.64 L 287.98 296.29 z"></svg>`, false, true); 12904var _tmpl$102 = /* @__PURE__ */ template(`<svg><path fill="#ac85fa" d="M 258.98 217.29 L 275.89 238.56 L 287.57 229.43 z"></svg>`, false, true); 12905var _tmpl$112 = /* @__PURE__ */ template(`<svg><path fill="#b8b8b4" d="M 269.02 277.8 L 278.45 273.52 L 271.67 258.63 L 263.23 262.81 z"></svg>`, false, true); 12906var _tmpl$122 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 301.91 228.56 L 318.16 240.84 L 328.71 237.77 L 312.64 225.73 z"></svg>`, false, true); 12907var _tmpl$132 = /* @__PURE__ */ template(`<svg><path fill="#828280" d="M 269.02 277.8 L 286.3 291.64 L 278.45 273.52 z"></svg>`, false, true); 12908var _tmpl$142 = /* @__PURE__ */ template(`<svg><path fill="#d8d8dd" d="M 319.88 284.05 L 323.06 288.12 L 333.45 279.09 L 330.46 274.92 z"></svg>`, false, true); 12909var _tmpl$152 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 301.91 228.56 L 287.57 229.43 L 275.89 238.56 L 290.21 237.76 z"></svg>`, false, true); 12910var _tmpl$162 = /* @__PURE__ */ template(`<svg><path fill="#78787a" d="M 319.88 284.05 L 299.6 291.72 L 301.1 296.41 L 323.06 288.12 z"></svg>`, false, true); 12911var _tmpl$172 = /* @__PURE__ */ template(`<svg><path fill="#f9f9fe" d="M 318.16 240.84 L 323.09 256.52 L 334.6 252.83 L 328.71 237.77 z"></svg>`, false, true); 12912var _tmpl$182 = /* @__PURE__ */ template(`<svg><path fill="#f3f3f9" d="M 330.46 274.92 L 334.6 252.83 L 323.09 256.52 z"></svg>`, false, true); 12913var _tmpl$19 = /* @__PURE__ */ template(`<svg><path fill="#302546" d="M 146.76 150.32 L 140.67 156.75 L 247.91 235.51 L 256.03 230.78 z"></svg>`, false, true); 12914var _tmpl$20 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 275.89 238.56 L 271.67 258.63 L 285.64 260.03 L 290.21 237.76 z"></svg>`, false, true); 12915var _tmpl$21 = /* @__PURE__ */ template(`<svg><path fill="#858583" d="M 286.3 291.64 L 299.6 291.72 L 292.53 275.07 L 278.45 273.52 z"></svg>`, false, true); 12916var _tmpl$222 = /* @__PURE__ */ template(`<svg><path fill="#fffffd" d="M 301.91 228.56 L 290.21 237.76 L 308.08 251.46 L 318.16 240.84 z"></svg>`, false, true); 12917var _tmpl$232 = /* @__PURE__ */ template(`<svg><path fill="#d1d1d5" d="M 319.88 284.05 L 330.46 274.92 L 323.09 256.52 L 313.02 267.28 z"></svg>`, false, true); 12918var _tmpl$242 = /* @__PURE__ */ template(`<svg><path fill="#af87ff" d="M 146.76 150.32 L 256.03 230.78 L 275.89 238.56 L 258.98 217.29 L 150.34 136.97 L 129.32 128.43 z"></svg>`, false, true); 12919var _tmpl$252 = /* @__PURE__ */ template(`<svg><path fill="#eeeee9" d="M 278.45 273.52 L 292.53 275.07 L 285.64 260.03 L 271.67 258.63 z"></svg>`, false, true); 12920var _tmpl$262 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 308.08 251.46 L 290.21 237.76 L 285.64 260.03 z"></svg>`, false, true); 12921var _tmpl$272 = /* @__PURE__ */ template(`<svg><path fill="#838383" d="M 319.88 284.05 L 313.02 267.28 L 292.53 27
129215.07 L 299.6 291.72 z"></svg>`, false, true); 12922var _tmpl$28 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 318.16 240.84 L 308.08 251.46 L 313.02 267.28 L 323.09 256.52 z"></svg>`, false, true); 12923var _tmpl$29 = /* @__PURE__ */ template(`<svg><path fill="#434344" d="M 110.72 143.96 L 94.46 145.51 L 83.09 147.02 L 97.95 145.6 z"></svg>`, false, true); 12924var _tmpl$30 = /* @__PURE__ */ template(`<svg><path fill="#efefea" d="M 313.02 267.28 L 308.08 251.46 L 285.64 260.03 L 292.53 275.07 z"></svg>`, false, true); 12925var _tmpl$31 = /* @__PURE__ */ template(`<svg><path fill="#231b33" d="M 146.76 150.32 L 116.8 136.54 L 110.72 143.96 L 140.67 156.75 z"></svg>`, false, true); 12926var _tmpl$322 = /* @__PURE__ */ template(`<svg><path fill="#b0b0b4" d="M 123.58 135.31 L 129.32 128.43 L 116.8 136.54 L 110.72 143.96 z"></svg>`, false, true); 12927var _tmpl$332 = /* @__PURE__ */ template(`<svg><path fill="#637000" d="M 252.8 271.39 L 266.84 272.95 L 285.64 260.03 L 271.67 258.63 z"></svg>`, false, true); 12928var _tmpl$342 = /* @__PURE__ */ template(`<svg><path fill="#67002d" d="M 309.25 236.52 L 308.08 251.46 L 318.16 240.84 z"></svg>`, false, true); 12929var _tmpl$352 = /* @__PURE__ */ template(`<svg><path fill="#3e001a" d="M 309.25 236.52 L 292.66 223.95 L 290.21 237.76 L 308.08 251.46 z"></svg>`, false, true); 12930var _tmpl$36 = /* @__PURE__ */ template(`<svg><path fill="#3e3e3e" d="M 62.41 127.1 L 68.96 135.53 L 83.09 147.02 L 78.11 139.83 z"></svg>`, false, true); 12931var _tmpl$37 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 134.72 108.98 L 128.86 93.68 L 123.15 84.58 L 129.09 100.1 z"></svg>`, false, true); 12932var _tmpl$38 = /* @__PURE__ */ template(`<svg><path fill="#7c7c7f" d="M 110.72 143.96 L 116.8 136.54 L 94.46 145.51 z"></svg>`, false, true); 12933var _tmpl$39 = /* @__PURE__ */ template(`<svg><path fill="#63002b" d="M 309.25 236.52 L 318.16 240.84 L 319.12 227.83 z"></svg>`, false, true); 12934var _tmpl$40 = /* @__PURE__ */ template(`<svg><path fill="#647100" d="M 273.8 288.3 L 292.53 275.07 L 285.64 260.03 L 266.84 272.95 z"></svg>`, false, true); 12935var _tmpl$41 = /* @__PURE__ */ template(`<svg><path fill="#af87ff" d="M 146.76 150.32 L 129.32 128.43 L 116.8 136.54 z"></svg>`, false, true); 12936var _tmpl$422 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 134.72 108.98 L 129.09 100.1 L 123.02 121.74 L 129.32 128.43 z"></svg>`, false, true); 12937var _tmpl$432 = /* @__PURE__ */ template(`<svg><path fill="#fbfbf5" d="M 67.08 84.51 L 62.52 92.36 L 56.57 111.66 L 61.04 104.16 z"></svg>`, false, true); 12938var _tmpl$442 = /* @__PURE__ */ template(`<svg><path fill="#333333" d="M 94.46 145.51 L 89.61 138.22 L 78.11 139.83 L 83.09 147.02 z"></svg>`, false, true); 12939var _tmpl$45 = /* @__PURE__ */ template(`<svg><path fill="#b8b8b4" d="M 62.41 127.1 L 67.47 119.18 L 61.04 104.16 L 56.57 111.66 z"></svg>`, false, true); 12940var _tmpl$46 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 93.53 73.69 L 108.32 84.9 L 123.15 84.58 L 108.48 73.58 z"></svg>`, false, true); 12941var _tmpl$47 = /* @__PURE__ */ template(`<svg><path fill="#828280" d="M 62.41 127.1 L 78.11 139.83 L 67.47 119.18 z"></svg>`, false, true); 12942var _tmpl$48 = /* @__PURE__ */ template(`<svg><path fill="#d8d8dd" d="M 110.24 129.91 L 116.8 136.54 L 129.32 128.43 L 123.02 121.74 z"></svg>`, false, true); 12943var _tmpl$49 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 93.53 73.69 L 80.55 76.02 L 67.08 84.51 L 80.02 82.25 z"></svg>`, false, true); 12944var _tmpl$50 = /* @__PURE__ */ template(`<svg><path fill="#78787a" d="M 110.24 129.91 L 89.61 138.22 L 94.46 145.51 L 116.8 136.54 z"></svg>`, false, true); 12945var _tmpl$51 = /* @__PURE__ */ template(`<svg><path fill="#f9f9fe" d="M 108.32 84.9 L 112.87 100.77 L 129.09 100.1 L 123.15 84.58 z"></svg>`, false, true); 12946var _tmpl$522 = /* @__PURE__ */ template(`<svg><path fill="#f3f3f9" d="M 123.02 121.74 L 129.09 100.1 L 112.87 100.77 z"></svg>`, false, true); 12947var _tmpl$532 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 121.5 156.95 L 116.8 136.54 L 110.24 129.91 z"></svg>`, false, true); 12948var _tmpl$54 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 67.08 84.51 L 61.04 104.16 L 73.43 104.05 L 80.02 82.25 z"></svg>`, false, true); 12949var _tmpl$55 = /* @__PURE__ */ template(`<svg><path fill="#858583" d="M 78.11 139.83 L 89.61 138.22 L 79.96 119.22 L 67.47 119.18 z"></svg>`, false, true); 12950var _tmpl$56 = /* @__PURE__ */ template(`<svg><path fill="#fffffd" d="M 93.53 73.69 L 80.02 82.25 L 96.25 94.76 L 108.32 84.9 z"></svg>`, false, true); 12951var _tmpl$57 = /* @__PURE__ */ template(`<svg><path fill="#d1d1d5" d="M 110.24 129.91 L 123.02 121.74 L 112.87 100.77 L 100.8 110.78 z"></svg>`, false, true); 12952var _tmpl$58 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 116.44 150.41 L 121.5 156.95 L 110.24 129.91 z"></svg>`, false, true); 12953var _tmpl$59 = /* @__PURE__ */ template(`<svg><path fill="#eeeee9" d="M 67.47 119.18 L 79.96 119.22 L 73.43 104.05 L 61.04 104.16 z"></svg>`, false, true); 12954var _tmpl$60 = /* @__PURE__ */ template(`<svg><path fill="#332200" d="M 132.25 105.95 L 123.02 121.74 L 145.32 116.11 z"></svg>`, false, true); 12955var _tmpl$61 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 96.25 94.76 L 80.02 82.25 L 73.43 104.05 z"></svg>`, false, true); 12956var _tmpl$622 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 116.44 150.41 L 110.24 129.91 L 89.61 138.22 L 95.59 158.76 z"></svg>`, false, true); 12957var _tmpl$632 = /* @__PURE__ */ template(`<svg><path fill="#7d5300" d="M 132.25 105.95 L 112.87 100.77 L 123.02 121.74 z"></svg>`, false, true); 12958var _tmpl$64 = /* @__PURE__ */ template(`<svg><path fill="#838383" d="M 110.24 129.91 L 100.8 110.78 L 79.96 119.22 L 89.61 138.22 z"></svg>`, false, true); 12959var _tmpl$65 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 108.32 84.9 L 96.25 94.76 L 100.8 110.78 L 112.87 100.77 z"></svg>`, false, true); 12960var _tmpl$66 = /* @__PURE__ */ template(`<svg><path fill="#f0a000" d="M 132.25 105.95 L 143.38 94.58 L 112.87 100.77 z"></svg>`, false, true); 12961var _tmpl$67 = /* @__PURE__ */ template(`<svg><path fill="#efefea" d="M 100.8 110.78 L 96.25 94.76 L 73.43 104.05 L 79.96 119.22 z"></svg>`, false, true); 12962var _tmpl$68 = /* @__PURE__ */ template(`<svg><path fill="#586300" d="M 207.26 302.74 L 266.84 272.95 L 252.8 271.39 L 192.8 300.75 z"></svg>`, false, true); 12963var _tmpl$69 = /* @__PURE__ */ template(`<svg><path fill="#647100" d="M 273.8 288.3 L 266.84 272.95 L 207.26 302.74 L 214.56 319.34 z"></svg>`, false, true); 12964var _tmpl$70 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 149.11 268.55 L 154.05 273.81 L 121.5 156.95 L 116.44 150.41 z"></svg>`, false, true); 12965var _tmpl$71 = /* @__PURE__ */ template(`<svg><path fill="#41001b" d="M 309.25 236.52 L 324.33 145 L 305.62 131.97 L 292.66 223.95 z"></svg>`, false, true); 12966var _tmpl$722 = /* @__PURE__ */ template(`<svg><path fill="#63002b" d="M 309.25 236.52 L 319.12 227.83 L 335.25 135.97 L 324.33 145 z"></svg>`, false, true); 12967var _tmpl$73 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 149.11 268.55 L 116.44 150.41 L 95.59 158.76 L 126.62 277.24 z"></svg>`, false, true); 12968var _tmpl$74 = /* @__PURE__ */ template(`<svg><path fill="#302000" d="M 274.29 103.43 L 262.24 92 L 132.25 105.95 L 145.32 116.11 z"></svg>`, false, true); 12969var _tmpl$75 = /* @__PURE__ */ template(`<svg><path fill="#f0a000" d="M 132.25 105.95 L 262.24 92 L 272.39 79.71 L 143.38 94.58 z"></svg>`, false, true); 12970var _tmpl$76 = /* @__PURE__ */ template(`<svg><path fill="#637000" d="M 207.26 302.74 L 192.8 300.75 L 170.56 315.58 L 185.06 317.77 z"></svg>`, false, true); 12971var _tmpl$77 = /* @__PURE__ */ template(`<svg><path fill="#647100" d="M 214.56 319.34 L 207.26 302.74 L 185.06 317.77 L 192.43 334.75 z"></svg>`, false, true); 12972var _tmpl$78 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 149.11 268.55 L 161.16 297.3 L 154.05 273.81 z"></svg>`, false, true); 12973var _tmpl$79 = /* @__PURE__ */ template(`<svg><path fill="#740032" d="M 149.11 268.55 L 156.99 291.93 L 161.16 297.3 z"></svg>`, false, true); 12974var _tmpl$80 = /* @__PURE__ */ template(`<svg><path fill="#750032" d="M 149.11 268.55 L 126.62 277.24 L 131.93 301.55 L 156.99 291.93 z"></svg>`, false, true); 12975var _tmpl$81 = /* @__PURE__ */ template(`<svg><path fill="#63002b" d="M 324.33 145 L 335.25 135.97 L 325.57 127.82 z"></svg>`, false, true); 12976var _tmpl$822 = /* @__PURE__ */ template(`<svg><path fill="#370017" d="M 324.33 145 L 325.57 127.82 L 306.43 114.69 L 305.62 131.97 z"></svg>`, false, true); 12977var _tmpl$83 = /* @__PURE__ */ template(`<svg><path fill="#e7e7e1" d="M 131.93 301.55 L 117.86 312.32 L 124.41 308.54 L 139.43 297.14 z"></svg>`, false, true); 12978var _tmpl$84 = /* @__PURE__ */ template(`<svg><path fill="#5e0029" d="M 335.25 135.97 L 339.08 117.79 L 325.57 127.82 z"></svg>`, false, true); 12979var _tmpl$85 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 200.56 331.58 L 193.79 313.85 L 188.34 307.13 L 195.22 325.15 z"></svg>`, false, true); 12980var _tmpl$86 = /* @__PURE__ */ template(`<svg><path fill="#9271da" d="M 209.63 282.91 L 188.34 307.13 L 193.79 313.85 z"></svg>`, false, true); 12981var _tmpl$87 = /* @__PURE__ */ template(`<svg><path fill="#f0a000" d="M 272.39 79.71 L 262.24 92 L 291.75 73.03 z"></svg>`, false, true); 12982var _tmpl$88 = /* @__PURE__ */ template(`<svg><path fill="#513600" d="M 274.29 103.43 L 300.77 96.96 L 286.37 97.65 z"></svg>`, false, true); 12983var _tmpl$89 = /* @__PURE__ */ template(`<svg><path fill="#c7c7c3" d="M 156.99 291.93 L 139.43 297.14 L 154.97 296.82 L 170.81 292.03 z"></svg>`, false, true); 12984var _tmpl$90 = /* @__PURE__ */ template(`<svg><path fill="#2b1d00" d="M 274.29 103.43 L 286.37 97.65 L 262.24 92 z"></svg>`, false, true); 12985var _tmpl$91 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 200.56 331.58 L 195.22 325.15 L 188.9 352.23 L 194.96 355.84 z"></svg>`, false, true); 12986var _tmpl$922 = /* @__PURE__ */ template(`<svg><path fill="#a781ee" d="M 170.81 292.03 L 188.34 307.13 L 199.43 286.03 L 181.6 271.03 z"></svg>`, false, true); 12987var _tmpl$93 = /* @__PURE__ */ template(`<svg><path fill="#fbfbf5" d="M 124.41 308.54 L 117.86 312.32 L 111.54 336.38 L 117.99 333.14 z"></svg>`, false, true); 12988var _tmpl$94 = /* @__PURE__ */ template(`<svg><path fill="#333333" d="M 155.44 377.01 L 150.98 372.88 L 137 371.75 L 141.65 375.86 z"></svg>`, false, true); 12989var _tmpl$95 = /* @__PURE__ */ template(`<svg><path fill="#f0a000" d="M 286.37 97.65 L 291.75 73.03 L 262.24 92 z"></svg>`, false, true); 12990var _tmpl$96 = /* @__PURE__ */ template(`<svg><path fill="#b8b8b4" d="M 118.29 354.29 L 125.58 351.19 L 117.99 333.14 L 111.54 336.38 z"></svg>`, false, true); 12991var _tmpl$97 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 154.97 296.82 L 172.69 312.3 L 188.34 307.13 L 170.81 292.03 z"></svg>`, false, true); 12992var _tmpl$98 = /* @__PURE__ */ template(`<svg><path fill="#828280" d="M 118.29 354.29 L 137 371.75 L 125.58 351.19 z"></svg>`, false, true); 12993var _tmpl$99 = /* @__PURE__ */ template(`<svg><path fill="#d8d8dd" d="M 174.86 363.91 L 181.23 367.34 L 194.96 355.84 L 188.9 352.23 z"></svg>`, false, true); 12994var _tmpl$100 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 154.97 296.82 L 139.43 297.14 L 124.41 308.54 L 139.89 308.33 z"></svg>`, false, true); 12995var _tmpl$101 = /* @__PURE__ */ template(`<svg><path fill="#78787a" d="M 174.86 363.91 L 150.98 372.88 L 155.44 377.01 L 181.23 367.34 z"></svg>`, false, true); 12996var _tmpl$1022 = /* @__PURE__ */ template(`<svg><path fill="#f9f9fe" d="M 172.69 312.3 L 178.13 331.29 L 195.22 325.15 L 188.34 307.13 z"></svg>`, false, true); 12997var _tmpl$103 = /* @__PURE__ */ template(`<svg><path fill="#f3f3f9" d="M 188.9 352.23 L 195.22 325.15 L 178.13 331.29 z"></svg>`, false, true); 12998var _tmpl$104 = /* @__PURE__ */ template(`<svg><path fill="#9472dd" d="M 209.63 282.91 L 300.46 152.09 L 312.84 129.12 L 291.4 153.34 L 199.43 286.03 L 188.34 307.13 z"></svg>`, false, true); 12999var _tmpl$105 = /* @__PURE__ */ template(`<svg><path fill="#af87ff" d="M 181.6 271.03 L 199.43 286.03 L 291.4 153.34 L 272.15 139.57 z"></svg>`, false, true); 13000var _tmpl$106 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 124.41 308.54 L 117.99 333.14 L 132.91 335.69 L 139.89 308.33 z"></svg>`, false, true); 13001var _tmpl$107 = /* @__PURE__ */ template(`<svg><path fill="#858583" d="M 137 371.75 L 150.98 372.88 L 140.64 353.96 L 125.58 351.19 z"></svg>`, false, true); 13002var _tmpl$108 = /* @__PURE__ */ template(`<svg><path fill="#fffffd" d="M 154.97 296.82 L 139.89 308.33 L 159.36 325.64 L 172.69 312.3 z"></svg>`, false, true); 13003var _tmpl$109 = /* @__PURE__ */ template(`<svg><path fill="#434344" d="M 343.16 125.69 L 329.41 127.09 L 312.84 129.12 L 325.57 127.82 z"></svg>`, false, true); 13004var _tmpl$110 = /* @__PURE__ */ template(`<svg><path fill="#686867" d="M 286.37 97.65 L 293.44 115.7 L 289.55 105.32 L 282.36 86.97 z"></svg>`, false, true); 13005var _tmpl$111 = /* @__PURE__ */ template(`<svg><path fill="#d1d1d5" d="M 174.86 363.91 L 188.9 352.23 L 178.13 331.29 L 164.8 344.83 z"></svg>`, false, true); 13006var _tmpl$1122 = /* @__PURE__ */ template(`<svg><path fill="#eeeee9" d="M 125.58 351.19 L 140.64 353.96 L 132.91 335.69 L 117.99 333.14 z"></svg>`, false, true); 13007var _tmpl$113 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 159.36 325.64 L 139.89 308.33 L 132.91 335.69 z"></svg>`, false, true); 13008var _tmpl$114 = /* @__PURE__ */ template(`<svg><path fill="#838383" d="M 174.86 363.91 L 164.8 344.83 L 140.64 353.96 L 150.98 372.88 z"></svg>`, false, true); 13009var _tmpl$115 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 172.69 312.3 L 159.36 325.64 L 164.8 344.83 L 178.13 331.29 z"></svg>`, false, true); 13010var _tmpl$116 = /* @__PURE__ */ template(`<svg><path fill="#3e3e3e" d="M 289.55 105.32 L 293.44 115.7 L 312.84 129.12 L 311.23 120.22 z"></svg>`, false, true); 13011var _tmpl$117 = /* @__PURE__ */ template(`<svg><path fill="#efefea" d="M 164.8 344.83 L 159.36 325.64 L 132.91 335.69 L 140.64 353.96 z"></svg>`, false, true); 13012var _tmpl$118 = /* @__PURE__ */ template(`<svg><path fill="#aa83f3" d="M 272.15 139.57 L 291.4 153.34 L 311.23 120.22 L 289.55 105.32 z"></svg>`, false, true); 13013var _tmpl$119 = /* @__PURE__ */ template(`<svg><path fill="#7c7c7f" d="M 343.16 125.69 L 356.69 116.35 L 329.41 127.09 z"></svg>`, false, true); 13014var _tmpl$120 = /* @__PURE__ */ template(`<svg><path fill="#9573de" d="M 291.4 153.34 L 312.84 129.12 L 311.23 120.22 z"></svg>`, false, true); 13015var _tmpl$121 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 373.43 83.98 L 370.91 72.96 L 366.15 98.51 L 369.2 106.91 z"></svg>`, false, true); 13016var _tmpl$1222 = /* @__PURE__ */ template(`<svg><path fill="#fbfbf5" d="M 298.36 54.21 L 287.38 64.26 L 282.36 86.97 L 293.33 77.39 z"></svg>`, false, true); 13017var _tmpl$123 = /* @__PURE__ */ template(`<svg><path fill="#333333" d="M 329.41 127.09 L 328.09 118.03 L 311.23 120.22 L 312.84 129.12 z"></svg>`, false, true); 13018var _tmpl$124 = /* @__PURE__ */ template(`<svg><path fill="#b8b8b4" d="M 289.55 105.32 L 301.83 95.26 L 293.33 77.39 L 282.36 86.97 z"></svg>`, false, true); 13019var _tmpl$125 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 330.7 41.19 L 351.25 54.2 L 363.58 54.5 L 343.33 41.77 z"></svg>`, false, true); 13020var _tmpl$126 = /* @__PURE__ */ template(`<svg><path fill="#828280" d="M 289.55 105.32 L 311.23 120.22 L 301.83 95.26 z"></svg>`, false, true); 13021var _tmpl$127 = /* @__PURE__ */ template(`<svg>
13021<path fill="#d8d8dd" d="M 353.37 108.05 L 356.69 116.35 L 369.2 106.91 L 366.15 98.51 z"></svg>`, false, true); 13022var _tmpl$128 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 330.7 41.19 L 312.64 44.32 L 298.36 54.21 L 316.4 51.17 z"></svg>`, false, true); 13023var _tmpl$129 = /* @__PURE__ */ template(`<svg><path fill="#78787a" d="M 353.37 108.05 L 328.09 118.03 L 329.41 127.09 L 356.69 116.35 z"></svg>`, false, true); 13024var _tmpl$130 = /* @__PURE__ */ template(`<svg><path fill="#f9f9fe" d="M 351.25 54.2 L 357.49 73.1 L 370.91 72.96 L 363.58 54.5 z"></svg>`, false, true); 13025var _tmpl$131 = /* @__PURE__ */ template(`<svg><path fill="#f3f3f9" d="M 366.15 98.51 L 370.91 72.96 L 357.49 73.1 z"></svg>`, false, true); 13026var _tmpl$1322 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 298.36 54.21 L 293.33 77.39 L 310.98 76.93 L 316.4 51.17 z"></svg>`, false, true); 13027var _tmpl$133 = /* @__PURE__ */ template(`<svg><path fill="#858583" d="M 311.23 120.22 L 328.09 118.03 L 319.66 95.01 L 301.83 95.26 z"></svg>`, false, true); 13028var _tmpl$134 = /* @__PURE__ */ template(`<svg><path fill="#fffffd" d="M 330.7 41.19 L 316.4 51.17 L 339 65.73 L 351.25 54.2 z"></svg>`, false, true); 13029var _tmpl$135 = /* @__PURE__ */ template(`<svg><path fill="#d1d1d5" d="M 353.37 108.05 L 366.15 98.51 L 357.49 73.1 L 345.25 84.84 z"></svg>`, false, true); 13030var _tmpl$136 = /* @__PURE__ */ template(`<svg><path fill="#eeeee9" d="M 301.83 95.26 L 319.66 95.01 L 310.98 76.93 L 293.33 77.39 z"></svg>`, false, true); 13031var _tmpl$137 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 339 65.73 L 316.4 51.17 L 310.98 76.93 z"></svg>`, false, true); 13032var _tmpl$138 = /* @__PURE__ */ template(`<svg><path fill="#838383" d="M 353.37 108.05 L 345.25 84.84 L 319.66 95.01 L 328.09 118.03 z"></svg>`, false, true); 13033var _tmpl$139 = /* @__PURE__ */ template(`<svg><path fill="#ffffff" d="M 351.25 54.2 L 339 65.73 L 345.25 84.84 L 357.49 73.1 z"></svg>`, false, true); 13034var _tmpl$140 = /* @__PURE__ */ template(`<svg><path fill="#efefea" d="M 345.25 84.84 L 339 65.73 L 310.98 76.93 L 319.66 95.01 z"></svg>`, false, true); 13035var VZomeLogo = () => { 13036 return createComponent(IconButton_default, { 13037 sx: { 13038 padding: "12px" 13039 }, 13040 component: Link_default, 13041 href: "https://vzome.com", 13042 target: "_blank", 13043 rel: "noopener", 13044 get children() { 13045 return createComponent(SvgIcon_default2, { 13046 fontSize: "large", 13047 stroke: "black", 13048 strokeLinejoin: "round", 13049 strokeWidth: "0.5",
13050 viewBox: "55 40 340.0 340.0", 13051 get children() { 13052 return [_tmpl$18(), _tmpl$27(), _tmpl$35(), _tmpl$44(), _tmpl$53(), _tmpl$63(), _tmpl$72(), _tmpl$82(), _tmpl$92(), _tmpl$102(), _tmpl$112(), _tmpl$122(), _tmpl$132(), _tmpl$142(), _tmpl$152(), _tmpl$162(), _tmpl$172(), _tmpl$182(), _tmpl$19(), _tmpl$20(), _tmpl$21(), _tmpl$222(), _tmpl$232(), _tmpl$242(), _tmpl$252(), _tmpl$262(), _tmpl$272(), _tmpl$28(), _tmpl$29(), _tmpl$30(), _tmpl$31(), _tmpl$322(), _tmpl$332(), _tmpl$342(), _tmpl$352(), _tmpl$36(), _tmpl$37(), _tmpl$38(), _tmpl$39(), _tmpl$40(), _tmpl$41(), _tmpl$422(), _tmpl$432(), _tmpl$442(), _tmpl$45(), _tmpl$46(), _tmpl$47(), _tmpl$48(), _tmpl$49(), _tmpl$50(), _tmpl$51(), _tmpl$522(), _tmpl$532(), _tmpl$54(), _tmpl$55(), _tmpl$56(), _tmpl$57(), _tmpl$58(), _tmpl$59(), _tmpl$60(), _tmpl$61(), _tmpl$622(), _tmpl$632(), _tmpl$64(), _tmpl$65(), _tmpl$66(), _tmpl$67(), _tmpl$68(), _tmpl$69(), _tmpl$70(), _tmpl$71(), _tmpl$722(), _tmpl$73(), _tmpl$74(), _tmpl$75(), _tmpl$76(), _tmpl$77(), _tmpl$78(), _tmpl$79(), _tmpl$80(), _tmpl$81(), _tmpl$822(), _tmpl$83(), _tmpl$84(), _tmpl$85(), _tmpl$86(), _tmpl$87(), _tmpl$88(), _tmpl$89(), _tmpl$90(), _tmpl$91(), _tmpl$922(), _tmpl$93(), _tmpl$94(), _tmpl$95(), _tmpl$96(), _tmpl$97(), _tmpl$98(), _tmpl$99(), _tmpl$100(), _tmpl$101(), _tmpl$1022(), _tmpl$103(), _tmpl$104(), _tmpl$105(), _tmpl$106(), _tmpl$107(), _tmpl$108(), _tmpl$109(), _tmpl$110(), _tmpl$111(), _tmpl$1122(), _tmpl$113(), _tmpl$114(), _tmpl$115(), _tmpl$116(), _tmpl$117(), _tmpl$118(), _tmpl$119(), _tmpl$120(), _tmpl$121(), _tmpl$1222(), _tmpl$123(), _tmpl$124(), _tmpl$125(), _tmpl$126(), _tmpl$127(), _tmpl$128(), _tmpl$129(), _tmpl$130(), _tmpl$131(), _tmpl$1322(), _tmpl$133(), _tmpl$134(), _tmpl$135(), _tmpl$136(), _tmpl$137(), _tmpl$138(), _tmpl$139(), _tmpl$140()]; 13053 } 13054 }); 13055 } 13056 }); 13057}; 13058
vendor: 359 bytes, lines 13059-13062
13059// node_modules/@suid/icons-material/InfoRounded.jsx 13060var _tmpl$141 = /* @__PURE__ */ template(`<svg><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 15c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1-8h-2V7h2v2z"></svg>`, false, true); 13061var InfoRounded_default = createSvgIcon(() => _tmpl$141(), "InfoRounded"); 13062
13063// src/app/classic/dialogs/about.jsx 13064var AboutDialog = ({ 13065 title, 13066 about 13067}) => { 13068 const [open, setOpen] = createSignal(true); 13069 const handleClickOpen = () => { 13070 setOpen(true); 13071 }; 13072 const handleClose = () => { 13073 setOpen(false); 13074 }; 13075 return [createComponent(Tooltip, { 13076 title: `About ${title}`, 13077 "aria-label": "about", 13078 get children() { 13079 return createComponent(IconButton_default, { 13080 color: "inherit", 13081 "aria-label": "about", 13082 onClick: handleClickOpen, 13083 get children() { 13084 return createComponent(InfoRounded_default, { 13085 fontSize: "large" 13086 }); 13087 } 13088 }); 13089 } 13090 }), createComponent(Dialog_default, { 13091 onClose: handleClose, 13092 "aria-labelledby": "about-dialog-title", 13093 get open() { 13094 return open(); 13095 }, 13096 get children() { 13097 return [createComponent(DialogTitle_default, { 13098 id: "customized-dialog-title", 13099 get children() { 13100 return ["About ", title, " (rev ", REVISION, ")"]; 13101 } 13102 }), createComponent(DialogContent_default, { 13103 get children() { 13104 return createComponent(DialogContentText_default, { 13105 id: "about-dialog-description", 13106 children: about 13107 }); 13108 } 13109 }), createComponent(DialogActions_default, { 13110 get children() { 13111 return createComponent(Button_default, { 13112 onClick: handleClose, 13113 children: "Close" 13114 }); 13115 } 13116 })]; 13117 } 13118 })]; 13119}; 13120
vendor: 346 bytes, lines 13121-13124
13121// node_modules/@suid/material/internal/svg-icons/CheckBox.jsx 13122var _tmpl$143 = /* @__PURE__ */ template(`<svg><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></svg>`, false, true); 13123var CheckBox_default = createSvgIcon2(() => _tmpl$143(), "CheckBox"); 13124
vendor: 341 bytes, lines 13125-13128
13125// node_modules/@suid/material/internal/svg-icons/CheckBoxOutlineBlank.jsx 13126var _tmpl$144 = /* @__PURE__ */ template(`<svg><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></svg>`, false, true); 13127var CheckBoxOutlineBlank_default = createSvgIcon2(() => _tmpl$144(), "CheckBoxOutlineBlank"); 13128
vendor: 347 bytes, lines 13129-13132
13129// node_modules/@suid/material/internal/svg-icons/IndeterminateCheckBox.jsx 13130var _tmpl$145 = /* @__PURE__ */ template(`<svg><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"></svg>`, false, true); 13131var IndeterminateCheckBox_default = createSvgIcon2(() => _tmpl$145(), "IndeterminateCheckBox"); 13132
vendor: 361 bytes, lines 13133-13146
13133// node_modules/@suid/material/Checkbox/checkboxClasses.js 13134function getCheckboxUtilityClass(slot) { 13135 return generateUtilityClass("MuiCheckbox", slot); 13136} 13137var checkboxClasses = generateUtilityClasses("MuiCheckbox", [ 13138 "root", 13139 "checked", 13140 "disabled", 13141 "indeterminate", 13142 "colorPrimary", 13143 "colorSecondary" 13144]); 13145var checkboxClasses_default = checkboxClasses; 13146
vendor: 3,168 bytes, lines 13147-13237
13147// node_modules/@suid/material/Checkbox/Checkbox.jsx 13148var $53 = createComponentFactory_default()({ 13149 name: "MuiCheckbox", 13150 propDefaults: ({ 13151 set 13152 }) => set({ 13153 color: "primary", 13154 indeterminate: false, 13155 size: "medium", 13156 checkedIcon: () => createComponent(CheckBox_default, {}), 13157 icon: () => createComponent(CheckBoxOutlineBlank_default, {}), 13158 indeterminateIcon: () => createComponent(IndeterminateCheckBox_default, {}) 13159 }), 13160 selfPropNames: ["checked", "checkedIcon", "classes", "color", "disableRipple", "disabled", "icon", "id", "indeterminate", "indeterminateIcon", "inputProps", "inputRef", "onChange", "required", "size", "value"], 13161 utilityClass: getCheckboxUtilityClass, 13162 slotClasses: (ownerState) => ({ 13163 root: ["root", ownerState.indeterminate && "indeterminate", `color${capitalize_default(ownerState.color)}`] 13164 }) 13165}); 13166var CheckboxRoot = styled_default(SwitchBase_default, { 13167 skipProps: skipRootProps.filter((v) => v !== "classes"), 13168 name: "MuiCheckbox", 13169 slot: "Root", 13170 overridesResolver: (props, styles3) => { 13171 const { 13172 ownerState 13173 } = props; 13174 return [styles3.root, ownerState.indeterminate && styles3.indeterminate, ownerState.color !== "default" && styles3[`color${capitalize_default(ownerState.color)}`]]; 13175 } 13176})(({ 13177 theme, 13178 ownerState 13179}) => ({ 13180 color: theme.palette.text.secondary, 13181 ...!ownerState.disableRipple && { 13182 "&:hover": { 13183 backgroundColor: alpha(ownerState.color === "default" ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity), 13184 // Reset on touch devices, it doesn't add specificity 13185 "@media (hover: none)": { 13186 backgroundColor: "transparent" 13187 } 13188 } 13189 }, 13190 ...ownerState.color !== "default" && { 13191 [`&.${checkboxClasses_default.checked}, &.${checkboxClasses_default.indeterminate}`]: { 13192 color: theme.palette[ownerState.color].main 13193 }, 13194 [`&.${checkboxClasses_default.disabled}`]: { 13195 color: theme.palette.action.disabled 13196 } 13197 } 13198})); 13199var Checkbox = $53.component(function Checkbox2({ 13200 allProps, 13201 classes, 13202 props 13203}) { 13204 const icon = () => props.indeterminate ? props.indeterminateIcon : props.icon; 13205 const indeterminateIcon = () => props.indeterminate ? props.indeterminateIcon : props.checkedIcon; 13206 const [, baseProps] = splitProps(allProps, ["checkedIcon", "color", "icon", "indeterminate", "indeterminateIcon", "inputProps", "size"]); 13207 const allClasses = mergeProps(() => props.classes || {}, classes); 13208 return createComponent(SvgIconContext_default2.Provider, { 13209 value: { 13210 get fontSize() { 13211 return props.size; 13212 } 13213 }, 13214 get children() { 13215 return createComponent(CheckboxRoot, mergeProps({ 13216 type: "checkbox" 13217 }, baseProps, { 13218 classes: allClasses, 13219 get inputProps() { 13220 return { 13221 ["data-indeterminate"]: props.indeterminate, 13222 ...props.inputProps || {} 13223 }; 13224 }, 13225 get icon() { 13226 return icon(); 13227 }, 13228 get checkedIcon() { 13229 return indeterminateIcon(); 13230 }, 13231 ownerState: allProps 13232 })); 13233 } 13234 }); 13235}); 13236var Checkbox_default = Checkbox; 13237
vendor: 672 bytes, lines 13238-13242
13238// node_modules/@suid/icons-material/Share.jsx 13239var _tmpl$146 = /* @__PURE__ */ template(`<svg><path d="M0 0h24v24H0z" fill="none"></svg>`, false, true); 13240var _tmpl$210 = /* @__PURE__ */ template(`<svg><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"></svg>`, false, true); 13241var Share_default = createSvgIcon(() => [_tmpl$146(), _tmpl$210()], "Share"); 13242
13243// src/app/classic/dialogs/sharing.jsx 13244var _tmpl$147 = /* @__PURE__ */ template(`<div class="vzome-viewer-buttons"><button class="vzome-viewer-prev-button">Previous</button><button class="vzome-viewer-next-button">Next`); 13245var _tmpl$211 = /* @__PURE__ */ template(`<div><style>`); 13246var _tmpl$310 = /* @__PURE__ */ template(`<div class="sharing-config"><div class="sharing-config-controls"></div><fieldset class="viewer-preview"><legend><span>viewer preview</span></legend><div class="viewer-preview-inner">`); 13247var CONFIGURING = 1; 13248var AUTHENTICATING = 2; 13249var CHOOSING_REPO = 3; 13250var UPLOADING = 4; 13251var IndexButtons = (props) => { 13252 const { 13253 scenes 13254 } = useViewer(); 13255 const { 13256 showIndexedScene 13257 } = useSceneIndexing(); 13258 const [index, setIndex] = createSignal(1); 13259 createEffect(() => { 13260 showIndexedScene(index(), { 13261 camera: props.loadCamera 13262 }); 13263 }); 13264 const changeScene = (delta) => (evt) => setIndex((i) => i + delta); 13265 return (() => { 13266 const _el$ = _tmpl$147(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling; 13267 addEventListener(_el$2, "click", changeScene(-1), true); 13268 addEventListener(_el$3, "click", changeScene(1), true); 13269 createRenderEffect((_p$) => { 13270 const _v$ = index() === 1, _v$2 = index() === scenes.length - 1; 13271 _v$ !== _p$._v$ && (_el$2.disabled = _p$._v$ = _v$); 13272 _v$2 !== _p$._v$2 && (_el$3.disabled = _p$._v$2 = _v$2); 13273 return _p$; 13274 }, { 13275 _v$: void 0, 13276 _v$2: void 0 13277 }); 13278 return _el$; 13279 })(); 13280}; 13281var ViewerPreview = (props) => { 13282 const normalizedStyle = () => props.scenesStyle === "indexed-camera" ? "indexed" : props.scenesStyle === "zometool" ? "none" : props.scenesStyle; 13283 const viewerConfig = () => ({ 13284 allowFullViewport: true, 13285 showScenes: normalizedStyle() 13286 }); 13287 let zometoolRef; 13288 createEffect(() => { 13289 if (props.scenesStyle === "zometool") zometoolRef.textContent = urlViewerCSS + instructionsCSS; 13290 }); 13291 return createComponent(SceneIndexingProvider, { 13292 get children() { 13293 return createComponent(Show, { 13294 get when() { 13295 return props.scenesStyle !== "zometool"; 13296 }, 13297 get fallback() { 13298 return (() => { 13299 const _el$4 = _tmpl$211(), _el$5 = _el$4.firstChild; 13300 _el$4.style.setProperty("height", "100%"); 13301 const _ref$ = zometoolRef; 13302 typeof _ref$ === "function" ? use(_ref$, _el$5) : zometoolRef = _el$5; 13303 insert(_el$4, createComponent(ZometoolInstructions, { 13304 style: { 13305 position: "relative", 13306 height: "100%" 13307 }, 13308 height: "100%", 13309 width: "100%", 13310 get config() { 13311 return viewerConfig(); 13312 } 13313 }), null); 13314 return _el$4; 13315 })(); 13316 }, 13317 get children() { 13318 return [createComponent(Show, { 13319 get when() { 13320 return props.scenesStyle === "indexed"; 13321 }, 13322 get children() { 13323 return createComponent(IndexButtons, {
13324 loadCamera: false 13325 }); 13326 } 13327 }), createComponent(Show, { 13328 get when() { 13329 return props.scenesStyle === "indexed-camera"; 13330 }, 13331 get children() { 13332 return createComponent(IndexButtons, { 13333 loadCamera: true 13334 }); 13335 } 13336 }), createComponent(DesignViewer, { 13337 get config() { 13338 return viewerConfig(); 13339 }, 13340 style: { 13341 position: "relative", 13342 height: "100%" 13343 }, 13344 height: "100%", 13345 width: "100%" 13346 })]; 13347 } 13348 }); 13349 } 13350 }); 13351}; 13352var ConfigPage = () => { 13353 const { 13354 state, 13355 setState, 13356 sceneIndex 13357 } = useEditor(); 13358 const { 13359 scenes, 13360 setScenes 13361 } = useViewer(); 13362 const { 13363 state: { 13364 camera: mainCamera 13365 } 13366 } = useCamera(); 13367 const noScenes = () => scenes.length < 2; 13368 createEffect(() => { 13369 setScenes(0, "camera", unwrap(mainCamera)); 13370 }); 13371 const handleTitleEntered = (event) => { 13372 setState("sharing", "title", event.target.value); 13373 }; 13374 const handleDescriptionEntered = (event) => { 13375 setState("sharing", "description", event.target.value); 13376 }; 13377 const handleStyleChange = (event) => { 13378 setState("sharing", "style", event.target.value); 13379 }; 13380 return (() => { 13381 const _el$6 = _tmpl$310(), _el$7 = _el$6.firstChild, _el$8 = _el$7.nextSibling, _el$9 = _el$8.firstChild, _el$10 = _el$9.nextSibling; 13382 insert(_el$7, createComponent(TextField_default, { 13383 onChange: handleTitleEntered, 13384 autoFocus: true, 13385 margin: "dense", 13386 id: "title", 13387 label: "title", 13388 type: "text", 13389 get value() { 13390 return state?.sharing?.title; 13391 }, 13392 fullWidth: true 13393 }), null); 13394 insert(_el$7, createComponent(TextField_default, { 13395 onChange: handleDescriptionEntered, 13396 autoFocus: true, 13397 margin: "normal", 13398 id: "title", 13399 label: "description", 13400 type: "text", 13401 get value() { 13402 return state?.sharing?.description; 13403 }, 13404 multiline: true, 13405 rows: 4, 13406 fullWidth: true 13407 }), null); 13408 insert(_el$7, createComponent(FormControl_default, { 13409 sx: { 13410 "padding-top": "20px", 13411 m: 1, 13412 minWidth: 290 13413 }, 13414 size: "medium", 13415 get children() { 13416 return [createComponent(InputLabel_default, { 13417 id: "style-label", 13418 sx: { 13419 "padding-top": "20px" 13420 }, 13421 children: "scenes style" 13422 }), createComponent(Select_default, { 13423 labelId: "style-label", 13424 label: "scenes style", 13425 get disabled() { 13426 return noScenes(); 13427 }, 13428 get value() { 13429 return state?.sharing?.style; 13430 }, 13431 onChange: handleStyleChange, 13432 get children() { 13433 return [createComponent(MenuItem_default, { 13434 value: "indexed", 13435 children: "Next/Prev Buttons" 13436 }), createComponent(MenuItem_default, { 13437 value: "indexed-camera", 13438 children: "Next/Prev Buttons (load-camera)" 13439 }), createComponent(MenuItem_default, { 13440 value: "titled", 13441 children: "Menu (titled)" 13442 }), createComponent(MenuItem_default, { 13443 value: "all", 13444 children: "Menu (all)" 13445 }), createComponent(MenuItem_default, { 13446 value: "zometool", 13447 children: "Zometool Instructions" 13448 }), createComponent(MenuItem_default, { 13449 value: "none", 13450 children: "None" 13451 })]; 13452 } 13453 })]; 13454 } 13455 }), null); 13456 insert(_el$10, createComponent(ImageCaptureProvider, { 13457 get children() { 13458 return createComponent(CameraProvider, { 13459 get children() { 13460 return createComponent(SceneProvider, { 13461 get index() { 13462 return sceneIndex(); 13463 }, 13464 passive: true, 13465 config: { 13466 preview: true, 13467 debug: false, 13468 labels: true, 13469 source: false 13470 }, 13471 get children() { 13472 return createComponent(ViewerPreview, { 13473 get scenesStyle() { 13474 return state.sharing.style; 13475 } 13476 }); 13477 } 13478 }); 13479 } 13480 }); 13481 } 13482 })); 13483 return _el$6; 13484 })(); 13485}; 13486var SharingDialog = (props) => { 13487 const [open, setOpen] = createSignal(false); 13488 const [target, setTarget] = createSignal({}); 13489 const [repo, setRepo] = createSignal(null); 13490 const [repos, setRepos] = createSignal([]); 13491 const [error, setError] = createSignal(""); 13492 const [stage, setStage] = createSignal(CONFIGURING); 13493 const [disabled, setDisabled] = createSignal(true); 13494 const [blog, setBlog] = createSignal(false); 13495 const [publish, setPublish] = createSignal(false); 13496 const { 13497 setProblem 13498 } = useViewer(); 13499 const { 13500 shareToGitHub 13501 } = useEditor(); 13502 const { 13503 captureImage 13504 } = useImageCapture(); 13505 const TARGET_KEY = "classic-github-target-details"; 13506 let image = null; 13507 const handleClickOpen = () => { 13508 captureImage("image/png").then((blob) => { 13509 if (blob.size === 0) { 13510 setProblem("Captured image is empty; please report this as a defect"); 13511 return; 13512 } 13513 const reader = new FileReader(); 13514 reader.onloadend = () => { 13515 const imageDataUrl = reader.result; 13516 image = imageDataUrl.substring(22); 13517 setError(""); 13518 suspendMenuKeyEvents(); 13519 setDisabled(false); 13520 setStage(CONFIGURING); 13521 setOpen(true); 13522 };
13523 reader.readAsDataURL(blob); 13524 }); 13525 }; 13526 const handleCancel = () => { 13527 setOpen(false); 13528 resumeMenuKeyEvents(); 13529 }; 13530 const reportError = (message, forUser = message) => { 13531 setError(forUser); 13532 console.log(`Error during GitHub share: ${message}`); 13533 }; 13534 const nextStage = () => { 13535 const priorStage = stage(); 13536 if (priorStage === CONFIGURING) { 13537 const target2 = localStorage.getItem(TARGET_KEY); 13538 setDisabled(true); 13539 if (!target2) { 13540 setStage(AUTHENTICATING); 13541 return; 13542 } 13543 const stored = JSON.parse(target2); 13544 setTarget(stored); 13545 getUserRepos(stored).then((repos2) => { 13546 if (repos2.length === 0) { 13547 setError("You are authenticated to GitHub, but no repositories were found. Please create a repository."); 13548 } else { 13549 const { 13550 orgName, 13551 repoName 13552 } = stored; 13553 setRepo(orgName + "/" + repoName); 13554 setRepos(repos2); 13555 setStage(CHOOSING_REPO); 13556 setDisabled(false); 13557 } 13558 }).catch(({ 13559 message, 13560 status 13561 }) => { 13562 if (status === 500) reportError(message, "Your Internet may be disconnected."); 13563 else { 13564 console.warn(`Unable to list GitHub repos: ${error.message}; requested a new token from user`); 13565 setStage(AUTHENTICATING); 13566 } 13567 }); 13568 return; 13569 } 13570 if (priorStage === AUTHENTICATING) { 13571 getUserRepos(target()).then((repos2) => { 13572 setRepo(repos2[0]); 13573 setRepos(repos2); 13574 setStage(CHOOSING_REPO); 13575 }).catch(({ 13576 message, 13577 status 13578 }) => { 13579 if (status === 500) reportError(message, "Your Internet may be disconnected."); 13580 else reportError(message, `Getting repositories failed.`); 13581 }); 13582 return; 13583 } 13584 if (priorStage === CHOOSING_REPO) { 13585 const [orgName, repoName] = repo().split("/"); 13586 const { 13587 token, 13588 branchName 13589 } = target(); 13590 const newTarget = { 13591 token, 13592 orgName, 13593 repoName, 13594 branchName 13595 }; 13596 setTarget(newTarget); 13597 localStorage.setItem(TARGET_KEY, JSON.stringify(newTarget)); 13598 setStage(UPLOADING); 13599 setDisabled(true); 13600 shareToGitHub(unwrap(target()), blog(), publish(), image).then((url) => { 13601 window.open(url, "_blank"); 13602 setOpen(false); 13603 resumeMenuKeyEvents(); 13604 }).catch(({ 13605 message, 13606 status 13607 }) => { 13608 if (status === 500) { 13609 reportError(message, "Your Internet may be disconnected."); 13610 } else { 13611 reportError(message, 'Did you grant the "repo" scope to the token?'); 13612 } 13613 }); 13614 } 13615 }; 13616 const handleTokenEntered = (event) => { 13617 setTarget({ 13618 token: event.target.value, 13619 branchName: "main" 13620 }); 13621 setDisabled(false); 13622 }; 13623 const handleRepoChange = (event) => { 13624 setRepo(event.target.value); 13625 }; 13626 return [createComponent(Tooltip, { 13627 title: "Share to GitHub", 13628 "aria-label": "share", 13629 get children() { 13630 return createComponent(IconButton_default, { 13631 color: "primary", 13632 "aria-label": "share", 13633 onClick: handleClickOpen, 13634 get children() { 13635 return createComponent(Share_default, { 13636 fontSize: "large" 13637 }); 13638 } 13639 }); 13640 } 13641 }), createComponent(Dialog_default, { 13642 get open() { 13643 return open(); 13644 }, 13645 onClose: handleCancel, 13646 "aria-labelledby": "form-dialog-title", 13647 maxWidth: "lg", 13648 fullWidth: false, 13649 get children() { 13650 return [createComponent(DialogTitle_default, { 13651 id: "form-dialog-title", 13652 get children() { 13653 return error() ? "GitHub Sharing Error" : "Share to GitHub"; 13654 } 13655 }), createComponent(DialogContent_default, { 13656 get children() { 13657 return createComponent(Switch, { 13658 get fallback() { 13659 return createComponent(DialogContentText_default, { 13660 children: "Uploading content to GitHub..." 13661 }); 13662 }, 13663 get children() { 13664 return [createComponent(Match, { 13665 get when() { 13666 return error(); 13667 }, 13668 get children() { 13669 return createComponent(DialogContentText_default, { 13670 get children() { 13671 return error(); 13672 } 13673 }); 13674 } 13675 }), createComponent(Match, { 13676 get when() { 13677 return stage() === AUTHENTICATING; 13678 }, 13679 get children() { 13680 return [createComponent(DialogContentText_default, { 13681 get children() { 13682 return ["Sharing requires a GitHub account, and you must generate a Personal Access Token (classic) for the account. GitHub accounts are free of charge. ", createComponent(Link_default, { 13683 href: "https://github.com/settings/tokens", 13684 target: "_blank", 13685 rel: "noopener", 13686 children: "Click here to sign in (or sign up) and generate the token." 13687 }), ' Be sure to select "classic" token generation, and give the token "repo" scope.']; 13688 } 13689 }), createComponent(TextField_default, { 13690 onChange: handleTokenEntered, 13691 autoFocus: true,
13692 margin: "normal", 13693 id: "access-token", 13694 label: "Personal Access Token", 13695 type: "password", 13696 fullWidth: true 13697 })]; 13698 } 13699 }), createComponent(Match, { 13700 get when() { 13701 return stage() === CHOOSING_REPO; 13702 }, 13703 get children() { 13704 return [createComponent(FormControl_default, { 13705 sx: { 13706 "padding-block": "20px", 13707 m: 1, 13708 minWidth: 290 13709 }, 13710 get children() { 13711 return createComponent(FormGroup_default, { 13712 "aria-label": "blog", 13713 row: true, 13714 get children() { 13715 return [createComponent(FormControlLabel_default, { 13716 get control() { 13717 return createComponent(Checkbox_default, { 13718 get checked() { 13719 return blog(); 13720 }, 13721 onChange: () => setBlog((v) => !v) 13722 }); 13723 }, 13724 label: "Create blog post" 13725 }), createComponent(FormControlLabel_default, { 13726 get control() { 13727 return createComponent(Checkbox_default, { 13728 get disabled() { 13729 return !blog(); 13730 }, 13731 get checked() { 13732 return publish(); 13733 }, 13734 onChange: () => setPublish((v) => !v) 13735 }); 13736 }, 13737 label: "Publish immediately" 13738 })]; 13739 } 13740 }); 13741 } 13742 }), createComponent(DialogContentText_default, { 13743 children: "Select a GitHub repository:" 13744 }), createComponent(FormControl_default, { 13745 sx: { 13746 "padding-block": "20px", 13747 m: 1, 13748 minWidth: 290 13749 }, 13750 size: "medium", 13751 get children() { 13752 return createComponent(Show, { 13753 get when() { 13754 return repos().length > 0; 13755 }, 13756 get fallback() { 13757 return createComponent(DialogContentText_default, { 13758 sx: { 13759 "font-style": "italic" 13760 }, 13761 children: "loading..." 13762 }); 13763 }, 13764 get children() { 13765 return [createComponent(InputLabel_default, { 13766 id: "repository-label", 13767 sx: { 13768 "padding-top": "20px" 13769 }, 13770 children: "repository" 13771 }), createComponent(Select_default, { 13772 labelId: "repository-label", 13773 id: "repository", 13774 label: "repository", 13775 get value() { 13776 return repo(); 13777 }, 13778 onChange: handleRepoChange, 13779 get children() { 13780 return createComponent(For, { 13781 get each() { 13782 return repos(); 13783 }, 13784 children: (r) => createComponent(MenuItem_default, { 13785 value: r, 13786 children: r 13787 }) 13788 }); 13789 } 13790 })]; 13791 } 13792 }); 13793 } 13794 })]; 13795 } 13796 }), createComponent(Match, { 13797 get when() { 13798 return stage() === CONFIGURING; 13799 }, 13800 get children() { 13801 return createComponent(ConfigPage, {}); 13802 } 13803 })]; 13804 } 13805 }); 13806 } 13807 }), createComponent(DialogActions_default, { 13808 get children() { 13809 return [createComponent(Button_default, { 13810 onClick: handleCancel, 13811 color: "secondary", 13812 children: "Cancel" 13813 }), createComponent(Button_default, { 13814 get disabled() { 13815 return disabled() || error(); 13816 }, 13817 onClick: nextStage, 13818 color: "primary", 13819 get children() { 13820 return memo(() => stage() === AUTHENTICATING)() ? "Authenticate" : stage() === CONFIGURING ? "Confirm" : "Share"; 13821 } 13822 })]; 13823 } 13824 })]; 13825 } 13826 })]; 13827}; 13828delegateEvents(["click"]); 13829
13830// src/app/classic/components/appbar.jsx 13831var _tmpl$148 = /* @__PURE__ */ template(`<div>`); 13832var _tmpl$212 = /* @__PURE__ */ template(`<div id="appbar">`); 13833var Spacer = () => (() => { 13834 const _el$ = _tmpl$148(); 13835 _el$.style.setProperty("flex", "1 1 auto"); 13836 return _el$; 13837})(); 13838var VZomeAppBar = (props) => { 13839 const spacer = createComponent(Spacer, {}); 13840 const merged = mergeProps({ 13841 showOpen: false, 13842 pathToRoot: "./models", 13843 forDebugger: false, 13844 customTitle: false, 13845 spacer 13846 }, props); 13847 return (() => { 13848 const _el$2 = _tmpl$212(); 13849 insert(_el$2, createComponent(AppBar_default, { 13850 position: "static", 13851 sx: { 13852 backgroundColor: "#01203d" 13853 }, 13854 get children() { 13855 return createComponent(Toolbar_default, { 13856 get children() { 13857 return [createComponent(Show, { 13858 get when() { 13859 return !merged.customTitle; 13860 }, 13861 get fallback() { 13862 return createComponent(Typography_default, { 13863 "class": "appbar-title", 13864 variant: "h5", 13865 sx: { 13866 paddingLeft: "12px", 13867 paddingRight: "40px" 13868 }, 13869 get children() { 13870 return props.title; 13871 } 13872 }); 13873 }, 13874 get children() { 13875 return [createComponent(VZomeLogo, {}), createComponent(Typography_default, { 13876 "class": "appbar-title", 13877 variant: "h5", 13878 sx: { 13879 paddingLeft: "12px", 13880 paddingRight: "40px" 13881 }, 13882 get children() { 13883 return ["vZome ", createComponent(Box_default2, { 13884 component: "span", 13885 fontStyle: "oblique", 13886 get children() { 13887 return props.title; 13888 } 13889 })]; 13890 } 13891 })]; 13892 } 13893 }), memo(() => merged.spacer), createComponent(Show, { 13894 get when() { 13895 return merged.showOpen; 13896 }, 13897 get children() { 13898 return createComponent(OpenMenu, { 13899 get pathToRoot() { 13900 return merged.pathToRoot; 13901 }, 13902 get forDebugger() { 13903 return merged.forDebugger; 13904 } 13905 }); 13906 } 13907 }), createComponent(Show, { 13908 get when() { 13909 return !merged.title; 13910 }, 13911 get children() { 13912 return createComponent(SharingDialog, {}); 13913 } 13914 }), createComponent(AboutDialog, { 13915 get title() { 13916 return props.customTitle ? props.title : "vZome " + props.title; 13917 }, 13918 get about() { 13919 return props.about; 13920 } 13921 })]; 13922 } 13923 }); 13924 } 13925 })); 13926 return _el$2; 13927 })(); 13928}; 13929 13930export { 13931 Typography_default, 13932 Link_default, 13933 createElementRef_default, 13934 ButtonBase_default, 13935 IconButton_default, 13936 createSvgIcon, 13937 useListContext, 13938 ListContext_default, 13939 List_default, 13940 isHostComponent_default, 13941 Backdrop_default, 13942 Popover_default, 13943 Menu_default, 13944 Divider_default, 13945 ListItemText_default, 13946 MenuItem_default, 13947 Input_default, 13948 TextField_default, 13949 randomString2 as randomString, 13950 Dialog_default, 13951 DialogActions_default, 13952 DialogContent_default, 13953 DialogTitle_default, 13954 Button_default, 13955 useEditor, 13956 EditorProvider, 13957 subController, 13958 controllerProperty, 13959 FormControlLabel_default, 13960 FormGroup_default, 13961 SvgIcon_default2 as SvgIcon_default, 13962 createSvgIcon2, 13963 Stack_default, 13964 Switch_default, 13965 resourceUrl, 13966 StrutLengthPanel, 13967 OrbitPanel, 13968 SymmetryProvider, 13969 useSymmetry, 13970 suspendMenuKeyEvents, 13971 resumeMenuKeyEvents, 13972 CommandsProvider, 13973 useCommands, 13974 UrlDialog, 13975 Tooltip, 13976 getModelURL, 13977 Checkbox_default, 13978 VZomeAppBar 13979};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.