From 65f453b7d868250f1accaa07ff47f69fe4e971df Mon Sep 17 00:00:00 2001 From: Imani Manyara Date: Fri, 13 Nov 2026 06:51:06 -0500 Subject: [PATCH] Remove the deprecated vendored build and kernel re-exports The vendored react-icon-browser build, its scripts and checks were deprecated in 3e and nothing imported them. Its one live file, prepaint.html, moves to resources/views/ and build:prepaint writes it there. The ten re-export files go too: every caller imports @ichava/js-ui-kernel/react directly. --- .dev/browser/check-consumers.mjs | 146 ------ .dev/browser/check-lib-build.mjs | 249 ---------- .dev/browser/check-public-api.mjs | 180 ------- .dev/browser/checkConsumers.test.mts | 57 --- .dev/browser/consumers.json | 7 - .dev/browser/public-api.snapshot.json | 111 ----- .dev/browser/rewrite-lib-type-paths.mjs | 41 -- .dev/browser/write-prepaint.mjs | 14 +- .dev/tools/build-lib.mjs | 13 - .dev/tools/check-consumers.mjs | 14 - .dev/tools/sync-react-icon-browser.mjs | 38 -- .gitattributes | 1 - .github/dependabot.yml | 4 +- CHANGELOG.md | 2 + CONTRIBUTING.md | 2 +- LICENSE | 6 +- docs/architecture.md | 15 +- docs/release.md | 2 +- package.json | 3 - public/assets/css/inertia-app.css | 2 +- resources/assets/styles/ichava.scss | 5 - .../appearance/AppearancePopover.tsx | 2 +- .../base-components/command-input.tsx | 2 +- .../base-components/command-menu-footer.tsx | 2 +- .../base-components/command-menu-header.tsx | 2 +- .../base-components/command-menu-item.tsx | 4 +- .../base-components/command-shortcut.tsx | 2 +- .../command-menus/command-menu.tsx | 2 +- .../modal-layouts/modal-layouts.tsx | 2 +- .../components/application/modals/modal.tsx | 2 +- .../notifications/notification-card.tsx | 4 +- .../js/components/application/tabs/tabs.tsx | 4 +- .../application/tree-view/tree-view.tsx | 4 +- .../js/components/auth/AccountAvatar.tsx | 2 +- resources/js/components/auth/AccountMenu.tsx | 2 +- resources/js/components/auth/ProfileModal.tsx | 2 +- .../js/components/base/avatar/avatar.tsx | 6 +- .../avatar/base-components/avatar-count.tsx | 6 - .../avatar-online-indicator.tsx | 6 - .../base/avatar/base-components/index.tsx | 6 - .../avatar/base-components/verified-tick.tsx | 6 - .../js/components/base/badges/badges.tsx | 2 +- .../base/button-group/button-group.tsx | 4 +- .../js/components/base/buttons/button.tsx | 4 +- .../js/components/base/checkbox/checkbox.tsx | 2 +- .../js/components/base/dropdown/dropdown.tsx | 6 +- .../js/components/base/input/hint-text.tsx | 2 +- resources/js/components/base/input/input.tsx | 2 +- resources/js/components/base/input/label.tsx | 2 +- .../base/radio-buttons/radio-buttons.tsx | 7 - .../js/components/base/select/combobox.tsx | 4 +- .../js/components/base/select/popover.tsx | 2 +- .../js/components/base/select/select-item.tsx | 4 +- .../js/components/base/select/select.tsx | 4 +- .../js/components/base/slider/slider.tsx | 2 +- .../js/components/base/toggle/toggle.tsx | 6 - .../js/components/base/tooltip/tooltip.tsx | 2 +- .../js/components/browser/MotionPicker.tsx | 2 +- .../js/components/command/CommandPalette.tsx | 2 +- .../js/components/consent/ConsentBanner.tsx | 2 +- .../featured-icon/featured-icon.tsx | 6 - resources/js/components/layout/AppSidebar.tsx | 2 +- .../shared-assets/banners/notice-banner.tsx | 2 +- resources/js/components/tour/TourModal.tsx | 4 +- resources/js/components/ui/ConfirmDialog.tsx | 2 +- resources/js/components/ui/EmptyState.tsx | 4 +- resources/js/components/ui/Menu.tsx | 2 +- resources/js/components/ui/Segmented.tsx | 2 +- resources/js/core/docsUrl.test.ts | 8 +- resources/js/core/minifiedBundle.test.ts | 18 +- resources/js/core/minifiedBundle.ts | 2 +- resources/js/core/noDeprecations.test.ts | 22 +- resources/js/core/prepaint.test.ts | 14 +- resources/js/core/syncVendoredLibrary.test.ts | 8 +- resources/js/core/vendoredLibrary.test.ts | 79 --- resources/js/lib/browser.ts | 4 +- resources/js/lib/utils/cx.ts | 6 - resources/js/lib/utils/is-react-component.ts | 6 - .../js/modules/catalog/domain/listParams.ts | 2 +- resources/js/styles/theme.css | 2 +- resources/js/styles/uui-theme.css | 6 - .../AboutDialog-3ajb2X6F.js | 3 - .../CommandPalette-CeLqONKy.js | 3 - .../vendor/react-icon-browser/DEPRECATED.md | 15 - .../DevToolsPanel-CbR2FqMo.js | 3 - .../react-icon-browser/Glyph-ifDznOhl.js | 3 - .../react-icon-browser/IconAsset-BVRD6Pac.js | 3 - .../IconGridList-queHa-WS.js | 3 - .../InviteModal-rzJXh-JT.js | 3 - resources/vendor/react-icon-browser/LICENSE | 38 -- .../LibraryDialog-BI-n9Q34.js | 4 - .../ManageAccessModal-DWXbmvPr.js | 3 - .../ProfileModal-BLtyRn5O.js | 3 - .../SettingsDialog-BDvBI59-.js | 3 - .../SharedCollectionsModal-fAi7Feba.js | 4 - .../react-icon-browser/TourModal-DUnXa682.js | 3 - .../TreatmentEngine-B0FTr-Fl.js | 13 - .../vendor/react-icon-browser/ar-DN72wH1H.js | 3 - .../react-icon-browser/avatar-D043d4aw.js | 3 - .../chromeIcons-ITgd2uHk.js | 3 - .../vendor/react-icon-browser/cx-B63ov-ZV.js | 3 - .../vendor/react-icon-browser/de-C11_iEFd.js | 3 - .../vendor/react-icon-browser/es-BQadDI5z.js | 3 - .../featured-icon-CzZVq73R.js | 3 - .../fonts/Geist-Variable.woff2 | Bin 69652 -> 0 bytes .../fonts/GeistMono-Variable.woff2 | Bin 71368 -> 0 bytes .../react-icon-browser/fonts/LICENSE.txt | 92 ---- .../vendor/react-icon-browser/fr-C3YrRQ0m.js | 3 - .../react-icon-browser/glyphIcon-D8F12BiB.js | 3 - resources/vendor/react-icon-browser/index.js | 13 - .../is-react-component-BskCHdxR.js | 3 - .../react-icon-browser/label-JRlP-MMU.js | 3 - .../vendor/react-icon-browser/package.json | 31 -- .../vendor/react-icon-browser/pt-DiIN_EjM.js | 3 - .../react-icon-browser/snippets-CIeWnjDR.js | 13 - .../vendor/react-icon-browser/styles.css | 2 - .../vendor/react-icon-browser/sw-s0osxpLo.js | 3 - .../react-icon-browser/tooltip-Dya0yQP2.js | 3 - .../types/IchavaBrowser.d.ts | 70 --- .../types/app/BrowserBuilder.d.ts | 83 ---- .../types/app/hostLibrarySync.d.ts | 37 -- .../types/app/mountEffects.d.ts | 64 --- .../react-icon-browser/types/app/runtime.d.ts | 9 - .../types/boot/prepaint.d.ts | 13 - .../types/components/about/AboutDialog.d.ts | 1 - .../appearance/AppearancePopover.d.ts | 9 - .../base-components/command-input.d.ts | 10 - .../base-components/command-menu-footer.d.ts | 5 - .../base-components/command-menu-header.d.ts | 7 - .../base-components/command-menu-item.d.ts | 33 -- .../command-menu-navigation-icon.d.ts | 15 - .../base-components/command-shortcut.d.ts | 8 - .../command-menus/command-menu.d.ts | 76 --- .../modal-layouts/modal-layouts.d.ts | 28 -- .../components/application/modals/modal.d.ts | 6 - .../notifications/notification-card.d.ts | 25 - .../components/application/tabs/tabs.d.ts | 61 --- .../tree-view/tree-view-utils.d.ts | 20 - .../application/tree-view/tree-view.d.ts | 54 -- .../types/components/auth/AccountAvatar.d.ts | 12 - .../types/components/auth/AccountMenu.d.ts | 13 - .../types/components/auth/AuthModal.d.ts | 11 - .../types/components/auth/ProfileModal.d.ts | 10 - .../types/components/base/avatar/avatar.d.ts | 64 --- .../avatar/base-components/avatar-count.d.ts | 6 - .../avatar-online-indicator.d.ts | 7 - .../base/avatar/base-components/index.d.ts | 2 - .../avatar/base-components/verified-tick.d.ts | 6 - .../components/base/badges/badge-types.d.ts | 15 - .../types/components/base/badges/badges.d.ts | 45 -- .../base/button-group/button-group.d.ts | 46 -- .../types/components/base/buttons/button.d.ts | 104 ---- .../components/base/checkbox/checkbox.d.ts | 25 - .../components/base/dropdown/dropdown.d.ts | 37 -- .../types/components/base/form/form.d.ts | 6 - .../components/base/input/hint-text.d.ts | 14 - .../types/components/base/input/input.d.ts | 63 --- .../types/components/base/input/label.d.ts | 15 - .../base/radio-buttons/radio-buttons.d.ts | 44 -- .../components/base/select/combobox.d.ts | 14 - .../types/components/base/select/popover.d.ts | 7 - .../components/base/select/select-item.d.ts | 10 - .../components/base/select/select-shared.d.ts | 58 --- .../types/components/base/select/select.d.ts | 18 - .../types/components/base/slider/slider.d.ts | 12 - .../types/components/base/toggle/toggle.d.ts | 31 -- .../components/base/tooltip/tooltip.d.ts | 37 -- .../components/boot/bootsplashConfig.d.ts | 112 ----- .../components/boot/bootsplashEngine.d.ts | 62 --- .../types/components/boot/useBootsplash.d.ts | 47 -- .../types/components/browser/ContextMenu.d.ts | 8 - .../components/browser/IconDetailDialog.d.ts | 1 - .../components/browser/IconSkeleton.d.ts | 11 - .../types/components/browser/IconTile.d.ts | 13 - .../types/components/browser/KindSwitch.d.ts | 15 - .../components/browser/MotionPicker.d.ts | 17 - .../types/components/browser/VirtualGrid.d.ts | 42 -- .../components/browser/presetGroups.d.ts | 19 - .../components/command/CommandPalette.d.ts | 11 - .../components/consent/ConsentBanner.d.ts | 16 - .../components/devtools/DevToolsPanel.d.ts | 10 - .../types/components/devtools/regression.d.ts | 15 - .../featured-icon/featured-icon.d.ts | 14 - .../types/components/help/HelpMenu.d.ts | 8 - .../types/components/layout/AppContent.d.ts | 3 - .../types/components/layout/AppFooter.d.ts | 1 - .../types/components/layout/AppHeader.d.ts | 2 - .../types/components/layout/AppMain.d.ts | 3 - .../types/components/layout/AppSidebar.d.ts | 1 - .../types/components/layout/AppToolbar.d.ts | 1 - .../types/components/layout/CategoryTree.d.ts | 5 - .../components/layout/LanguagePopover.d.ts | 11 - .../types/components/layout/TeamPopover.d.ts | 6 - .../components/library/IconGridList.d.ts | 32 -- .../components/library/LibraryDialog.d.ts | 1 - .../notifications/NotificationsPopover.d.ts | 9 - .../components/settings/SettingsDialog.d.ts | 15 - .../shared-assets/banners/notice-banner.d.ts | 15 - .../types/components/team/InviteModal.d.ts | 9 - .../components/team/ManageAccessModal.d.ts | 10 - .../team/SharedCollectionsModal.d.ts | 9 - .../types/components/tour/TourModal.d.ts | 12 - .../types/components/tour/steps.d.ts | 7 - .../types/components/ui/ColorPicker.d.ts | 9 - .../types/components/ui/ConfirmDialog.d.ts | 9 - .../types/components/ui/Console.d.ts | 6 - .../types/components/ui/EmptyState.d.ts | 19 - .../types/components/ui/Glyph.d.ts | 33 -- .../types/components/ui/IconAsset.d.ts | 15 - .../types/components/ui/Marquee.d.ts | 18 - .../types/components/ui/Menu.d.ts | 52 -- .../types/components/ui/Modal.d.ts | 40 -- .../types/components/ui/Popover.d.ts | 35 -- .../types/components/ui/PopoverCaret.d.ts | 19 - .../types/components/ui/Segmented.d.ts | 26 - .../types/components/ui/TaskLoader.d.ts | 18 - .../types/components/ui/Toaster.d.ts | 18 - .../types/components/ui/Tooltip.d.ts | 40 -- .../types/components/ui/caretGeometry.d.ts | 38 -- .../types/components/ui/chromeIcons.d.ts | 41 -- .../types/components/ui/controls.d.ts | 4 - .../types/components/ui/glyphIcon.d.ts | 12 - .../types/components/ui/glyphMap.d.ts | 22 - .../types/components/ui/tabs.d.ts | 16 - .../types/core/ExportService.d.ts | 25 - .../types/core/MotionEngine.d.ts | 95 ---- .../types/core/SvgFidelity.d.ts | 30 -- .../types/core/TreatmentEngine.d.ts | 18 - .../types/core/api/ApiClient.d.ts | 170 ------- .../types/core/api/browserId.d.ts | 6 - .../types/core/api/endpointTemplate.d.ts | 6 - .../types/core/api/httpClient.d.ts | 4 - .../types/core/api/schema.gen.d.ts | 461 ------------------ .../types/core/appScale.d.ts | 44 -- .../react-icon-browser/types/core/config.d.ts | 273 ----------- .../types/core/defaults.d.ts | 47 -- .../types/core/download.d.ts | 7 - .../react-icon-browser/types/core/env.d.ts | 12 - .../react-icon-browser/types/core/format.d.ts | 13 - .../types/core/gridNav.d.ts | 18 - .../react-icon-browser/types/core/i18n.d.ts | 48 -- .../types/core/locales/ar.d.ts | 434 ----------------- .../types/core/locales/de.d.ts | 434 ----------------- .../types/core/locales/en.d.ts | 438 ----------------- .../types/core/locales/es.d.ts | 434 ----------------- .../types/core/locales/fr.d.ts | 434 ----------------- .../types/core/locales/pt.d.ts | 434 ----------------- .../types/core/locales/sw.d.ts | 434 ----------------- .../types/core/notifications.d.ts | 9 - .../types/core/storage.d.ts | 23 - .../types/core/themeVariants.d.ts | 20 - .../react-icon-browser/types/core/types.d.ts | 67 --- .../types/core/variantDescription.d.ts | 7 - .../types/hooks/selectAllMatching.d.ts | 13 - .../types/hooks/use-resize-observer.d.ts | 24 - .../types/hooks/useAccount.d.ts | 10 - .../types/hooks/useClipboard.d.ts | 13 - .../types/hooks/useConsentNotice.d.ts | 8 - .../types/hooks/useDevBus.d.ts | 3 - .../types/hooks/useDraggableNotice.d.ts | 61 --- .../types/hooks/useFullscreen.d.ts | 2 - .../types/hooks/useIconCatalogClient.d.ts | 4 - .../types/hooks/useLogger.d.ts | 5 - .../types/hooks/useMountRoot.d.ts | 18 - .../types/hooks/useRepo.d.ts | 43 -- .../types/hooks/useResolvedIcons.d.ts | 24 - .../types/hooks/useRestRepoState.d.ts | 31 -- .../types/hooks/useShortcuts.d.ts | 25 - .../types/hooks/useStoreApi.d.ts | 40 -- .../types/hooks/useSvgParts.d.ts | 12 - .../react-icon-browser/types/hooks/useT.d.ts | 14 - .../types/hooks/useUrlSync.d.ts | 45 -- .../react-icon-browser/types/index.d.ts | 28 -- .../types/lib/utils/cx.d.ts | 11 - .../types/lib/utils/is-react-component.d.ts | 19 - .../catalog/application/matchingIconIds.d.ts | 13 - .../modules/catalog/domain/CatalogIndex.d.ts | 58 --- .../modules/catalog/domain/IconQuery.d.ts | 75 --- .../types/modules/catalog/domain/iconRef.d.ts | 9 - .../modules/catalog/domain/listParams.d.ts | 30 -- .../modules/catalog/domain/packShort.d.ts | 11 - .../types/modules/catalog/index.d.ts | 7 - .../catalog/infrastructure/HttpTransport.d.ts | 86 ---- .../export/application/exportIcons.d.ts | 17 - .../modules/export/domain/ExportBundle.d.ts | 108 ---- .../types/modules/export/index.d.ts | 12 - .../infrastructure/BrowserDownloader.d.ts | 6 - .../modules/host/domain/HostContext.d.ts | 140 ------ .../types/modules/host/index.d.ts | 2 - .../host/infrastructure/hostConfig.d.ts | 33 -- .../application/IdentityProvider.d.ts | 56 --- .../types/modules/identity/index.d.ts | 3 - .../identity/infrastructure/DemoIdentity.d.ts | 15 - .../identity/infrastructure/HostIdentity.d.ts | 44 -- .../library/application/libraryDiff.d.ts | 69 --- .../types/modules/library/domain/Library.d.ts | 66 --- .../types/modules/library/index.d.ts | 3 - .../library/infrastructure/RestLibrary.d.ts | 56 --- .../preferences/domain/withDefaults.d.ts | 11 - .../types/modules/preferences/index.d.ts | 3 - .../infrastructure/PreferenceStorage.d.ts | 16 - .../infrastructure/RestPreferences.d.ts | 52 -- .../snippets/application/copyPayload.d.ts | 22 - .../types/modules/snippets/index.d.ts | 6 - .../infrastructure/SnippetFactory.d.ts | 135 ----- .../types/modules/svg/domain/svgPolicy.d.ts | 91 ---- .../types/modules/svg/index.d.ts | 5 - .../svg/infrastructure/monochrome.d.ts | 27 - .../svg/infrastructure/sanitizeSvg.d.ts | 12 - .../modules/svg/infrastructure/svgCache.d.ts | 21 - .../modules/svg/infrastructure/svgText.d.ts | 27 - .../types/modules/telemetry/index.d.ts | 2 - .../telemetry/infrastructure/DevBus.d.ts | 25 - .../telemetry/infrastructure/Logger.d.ts | 43 -- .../react-icon-browser/types/mount.d.ts | 60 --- .../types/state/preferences.d.ts | 16 - .../types/state/slices/appearance.d.ts | 7 - .../types/state/slices/boot.d.ts | 7 - .../types/state/slices/browse.d.ts | 7 - .../types/state/slices/collaboration.d.ts | 8 - .../types/state/slices/data.d.ts | 7 - .../types/state/slices/devtools.d.ts | 14 - .../types/state/slices/identity.d.ts | 15 - .../types/state/slices/library.d.ts | 7 - .../types/state/slices/notifications.d.ts | 7 - .../types/state/slices/onboarding.d.ts | 7 - .../types/state/slices/render.d.ts | 7 - .../types/state/slices/reset.d.ts | 7 - .../types/state/slices/selection.d.ts | 7 - .../types/state/slices/storage.d.ts | 8 - .../types/state/slices/ui.d.ts | 9 - .../react-icon-browser/types/state/types.d.ts | 312 ------------ .../react-icon-browser/types/store.d.ts | 86 ---- .../vendor/react-icon-browser/vendored.json | 261 ---------- .../prepaint.html | 0 src/Providers/IconBrowserServiceProvider.php | 2 +- src/View/Components/Prepaint.php | 4 +- vite.utility-scope.mjs | 2 +- 338 files changed, 109 insertions(+), 11044 deletions(-) delete mode 100644 .dev/browser/check-consumers.mjs delete mode 100644 .dev/browser/check-lib-build.mjs delete mode 100644 .dev/browser/check-public-api.mjs delete mode 100644 .dev/browser/checkConsumers.test.mts delete mode 100644 .dev/browser/consumers.json delete mode 100644 .dev/browser/public-api.snapshot.json delete mode 100644 .dev/browser/rewrite-lib-type-paths.mjs delete mode 100644 .dev/tools/build-lib.mjs delete mode 100644 .dev/tools/check-consumers.mjs delete mode 100644 .dev/tools/sync-react-icon-browser.mjs delete mode 100644 resources/js/components/base/avatar/base-components/avatar-count.tsx delete mode 100644 resources/js/components/base/avatar/base-components/avatar-online-indicator.tsx delete mode 100644 resources/js/components/base/avatar/base-components/index.tsx delete mode 100644 resources/js/components/base/avatar/base-components/verified-tick.tsx delete mode 100644 resources/js/components/base/radio-buttons/radio-buttons.tsx delete mode 100644 resources/js/components/base/toggle/toggle.tsx delete mode 100644 resources/js/components/foundations/featured-icon/featured-icon.tsx delete mode 100644 resources/js/core/vendoredLibrary.test.ts delete mode 100644 resources/js/lib/utils/cx.ts delete mode 100644 resources/js/lib/utils/is-react-component.ts delete mode 100644 resources/js/styles/uui-theme.css delete mode 100644 resources/vendor/react-icon-browser/AboutDialog-3ajb2X6F.js delete mode 100644 resources/vendor/react-icon-browser/CommandPalette-CeLqONKy.js delete mode 100644 resources/vendor/react-icon-browser/DEPRECATED.md delete mode 100644 resources/vendor/react-icon-browser/DevToolsPanel-CbR2FqMo.js delete mode 100644 resources/vendor/react-icon-browser/Glyph-ifDznOhl.js delete mode 100644 resources/vendor/react-icon-browser/IconAsset-BVRD6Pac.js delete mode 100644 resources/vendor/react-icon-browser/IconGridList-queHa-WS.js delete mode 100644 resources/vendor/react-icon-browser/InviteModal-rzJXh-JT.js delete mode 100644 resources/vendor/react-icon-browser/LICENSE delete mode 100644 resources/vendor/react-icon-browser/LibraryDialog-BI-n9Q34.js delete mode 100644 resources/vendor/react-icon-browser/ManageAccessModal-DWXbmvPr.js delete mode 100644 resources/vendor/react-icon-browser/ProfileModal-BLtyRn5O.js delete mode 100644 resources/vendor/react-icon-browser/SettingsDialog-BDvBI59-.js delete mode 100644 resources/vendor/react-icon-browser/SharedCollectionsModal-fAi7Feba.js delete mode 100644 resources/vendor/react-icon-browser/TourModal-DUnXa682.js delete mode 100644 resources/vendor/react-icon-browser/TreatmentEngine-B0FTr-Fl.js delete mode 100644 resources/vendor/react-icon-browser/ar-DN72wH1H.js delete mode 100644 resources/vendor/react-icon-browser/avatar-D043d4aw.js delete mode 100644 resources/vendor/react-icon-browser/chromeIcons-ITgd2uHk.js delete mode 100644 resources/vendor/react-icon-browser/cx-B63ov-ZV.js delete mode 100644 resources/vendor/react-icon-browser/de-C11_iEFd.js delete mode 100644 resources/vendor/react-icon-browser/es-BQadDI5z.js delete mode 100644 resources/vendor/react-icon-browser/featured-icon-CzZVq73R.js delete mode 100644 resources/vendor/react-icon-browser/fonts/Geist-Variable.woff2 delete mode 100644 resources/vendor/react-icon-browser/fonts/GeistMono-Variable.woff2 delete mode 100644 resources/vendor/react-icon-browser/fonts/LICENSE.txt delete mode 100644 resources/vendor/react-icon-browser/fr-C3YrRQ0m.js delete mode 100644 resources/vendor/react-icon-browser/glyphIcon-D8F12BiB.js delete mode 100644 resources/vendor/react-icon-browser/index.js delete mode 100644 resources/vendor/react-icon-browser/is-react-component-BskCHdxR.js delete mode 100644 resources/vendor/react-icon-browser/label-JRlP-MMU.js delete mode 100644 resources/vendor/react-icon-browser/package.json delete mode 100644 resources/vendor/react-icon-browser/pt-DiIN_EjM.js delete mode 100644 resources/vendor/react-icon-browser/snippets-CIeWnjDR.js delete mode 100644 resources/vendor/react-icon-browser/styles.css delete mode 100644 resources/vendor/react-icon-browser/sw-s0osxpLo.js delete mode 100644 resources/vendor/react-icon-browser/tooltip-Dya0yQP2.js delete mode 100644 resources/vendor/react-icon-browser/types/IchavaBrowser.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/app/BrowserBuilder.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/app/hostLibrarySync.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/app/mountEffects.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/app/runtime.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/boot/prepaint.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/about/AboutDialog.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/appearance/AppearancePopover.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/base-components/command-input.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/base-components/command-menu-footer.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/base-components/command-menu-header.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/base-components/command-menu-item.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/base-components/command-menu-navigation-icon.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/base-components/command-shortcut.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/command-menus/command-menu.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/modal-layouts/modal-layouts.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/modals/modal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/notifications/notification-card.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/tabs/tabs.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/tree-view/tree-view-utils.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/application/tree-view/tree-view.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/auth/AccountAvatar.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/auth/AccountMenu.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/auth/AuthModal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/auth/ProfileModal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/avatar/avatar.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/avatar/base-components/avatar-count.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/avatar/base-components/avatar-online-indicator.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/avatar/base-components/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/avatar/base-components/verified-tick.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/badges/badge-types.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/badges/badges.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/button-group/button-group.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/buttons/button.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/checkbox/checkbox.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/dropdown/dropdown.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/form/form.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/input/hint-text.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/input/input.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/input/label.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/radio-buttons/radio-buttons.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/select/combobox.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/select/popover.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/select/select-item.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/select/select-shared.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/select/select.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/slider/slider.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/toggle/toggle.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/base/tooltip/tooltip.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/boot/bootsplashConfig.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/boot/bootsplashEngine.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/boot/useBootsplash.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/ContextMenu.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/IconDetailDialog.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/IconSkeleton.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/IconTile.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/KindSwitch.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/MotionPicker.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/VirtualGrid.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/browser/presetGroups.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/command/CommandPalette.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/consent/ConsentBanner.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/devtools/DevToolsPanel.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/devtools/regression.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/foundations/featured-icon/featured-icon.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/help/HelpMenu.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/AppContent.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/AppFooter.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/AppHeader.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/AppMain.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/AppSidebar.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/AppToolbar.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/CategoryTree.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/LanguagePopover.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/layout/TeamPopover.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/library/IconGridList.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/library/LibraryDialog.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/notifications/NotificationsPopover.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/settings/SettingsDialog.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/shared-assets/banners/notice-banner.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/team/InviteModal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/team/ManageAccessModal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/team/SharedCollectionsModal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/tour/TourModal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/tour/steps.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/ColorPicker.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/ConfirmDialog.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Console.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/EmptyState.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Glyph.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/IconAsset.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Marquee.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Menu.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Modal.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Popover.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/PopoverCaret.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Segmented.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/TaskLoader.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Toaster.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/Tooltip.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/caretGeometry.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/chromeIcons.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/controls.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/glyphIcon.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/glyphMap.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/components/ui/tabs.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/ExportService.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/MotionEngine.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/SvgFidelity.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/TreatmentEngine.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/api/ApiClient.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/api/browserId.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/api/endpointTemplate.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/api/httpClient.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/api/schema.gen.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/appScale.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/config.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/defaults.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/download.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/env.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/format.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/gridNav.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/i18n.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/ar.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/de.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/en.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/es.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/fr.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/pt.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/locales/sw.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/notifications.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/storage.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/themeVariants.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/types.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/core/variantDescription.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/selectAllMatching.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/use-resize-observer.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useAccount.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useClipboard.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useConsentNotice.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useDevBus.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useDraggableNotice.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useFullscreen.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useIconCatalogClient.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useLogger.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useMountRoot.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useRepo.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useResolvedIcons.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useRestRepoState.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useShortcuts.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useStoreApi.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useSvgParts.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useT.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/hooks/useUrlSync.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/lib/utils/cx.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/lib/utils/is-react-component.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/application/matchingIconIds.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/domain/CatalogIndex.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/domain/IconQuery.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/domain/iconRef.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/domain/listParams.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/domain/packShort.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/catalog/infrastructure/HttpTransport.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/export/application/exportIcons.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/export/domain/ExportBundle.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/export/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/export/infrastructure/BrowserDownloader.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/host/domain/HostContext.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/host/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/host/infrastructure/hostConfig.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/identity/application/IdentityProvider.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/identity/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/identity/infrastructure/DemoIdentity.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/identity/infrastructure/HostIdentity.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/library/application/libraryDiff.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/library/domain/Library.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/library/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/library/infrastructure/RestLibrary.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/preferences/domain/withDefaults.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/preferences/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/preferences/infrastructure/PreferenceStorage.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/preferences/infrastructure/RestPreferences.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/snippets/application/copyPayload.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/snippets/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/snippets/infrastructure/SnippetFactory.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/svg/domain/svgPolicy.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/svg/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/svg/infrastructure/monochrome.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/svg/infrastructure/sanitizeSvg.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/svg/infrastructure/svgCache.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/svg/infrastructure/svgText.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/telemetry/index.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/telemetry/infrastructure/DevBus.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/modules/telemetry/infrastructure/Logger.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/mount.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/preferences.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/appearance.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/boot.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/browse.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/collaboration.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/data.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/devtools.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/identity.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/library.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/notifications.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/onboarding.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/render.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/reset.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/selection.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/storage.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/slices/ui.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/state/types.d.ts delete mode 100644 resources/vendor/react-icon-browser/types/store.d.ts delete mode 100644 resources/vendor/react-icon-browser/vendored.json rename resources/{vendor/react-icon-browser => views}/prepaint.html (100%) diff --git a/.dev/browser/check-consumers.mjs b/.dev/browser/check-consumers.mjs deleted file mode 100644 index c4b3e7a..0000000 --- a/.dev/browser/check-consumers.mjs +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node -// Every place this package is used must carry its latest release before another one is cut. -// -// node scripts/check-consumers.mjs compare against the newest vX.Y.Z tag -// node scripts/check-consumers.mjs --version X compare against X instead -// node scripts/check-consumers.mjs --self-test prove the comparison can fail -// -// The consumers and the command that updates each are listed in scripts/consumers.json. A -// consumer's version is the `version` in its vendored vendored.json on its default branch, read -// through `gh api` (GH_TOKEN must be able to read the consumer). release-please.yml runs this -// before it opens a release pull request or tags one, so a release cannot stack on one that never -// reached icon-browser, ichava.com, the demo and the docs (the rule in CONTRIBUTING.md). -// -// A consumer's version only says which release it meant to vendor; its `commit` (vendored.json) must also be the -// release commit or a descendant of it, checked with `git merge-base --is-ancestor`, which needs the tag and history. -// -// Byte-identical in react-icon-browser and react-landingpage; only consumers.json differs. - -import { execFileSync } from 'node:child_process'; -import { readFileSync } from 'node:fs'; - -const SEMVER = /^v?(\d+)\.(\d+)\.(\d+)$/; - -/** -1, 0 or 1. Throws on anything that is not a plain X.Y.Z. */ -export function compareVersions(a, b) { - const pa = SEMVER.exec(a); - const pb = SEMVER.exec(b); - if (!pa || !pb) throw new Error(`not a release version: ${!pa ? a : b}`); - for (let i = 1; i <= 3; i++) { - const d = Number(pa[i]) - Number(pb[i]); - if (d !== 0) return d < 0 ? -1 : 1; - } - return 0; -} - -/** - * The consumers whose vendored copy is not `target` or newer, with what to tell the reader. - * - * The version alone is not enough: a copy built before the release commit can carry the release's - * version number, so a consumer one commit behind passes a version check. When `contains` is given - * it is asked whether the consumer's vendored commit is the release commit or a descendant of it - * (`true`), is not (`false`), or cannot be seen in this checkout (`null`). Anything but `true`, and - * a manifest that names no commit, is reported: a copy that cannot be shown current is not current. - * Without `contains` only the version is compared. - */ -export function behind(target, consumers, contains) { - const problems = []; - for (const c of consumers) { - const update = `\n Update it: ${c.update.replaceAll('{version}', target)}`; - if (c.version === null || compareVersions(c.version, target) < 0) { - problems.push(`${c.repo} vendors ${c.version ?? 'nothing readable'} at ${c.manifest}, not ${target}.${update}`); - } else if (contains && compareVersions(c.version, target) === 0) { - // A newer version is judged by the version; only an equal one can hide a stale commit. - const verdict = c.commit ? contains(c.commit) : null; - if (verdict !== true) { - const named = c.commit ? c.commit.slice(0, 12) : 'no commit'; - const why = verdict === false ? `which is not v${target} or a descendant of it` : 'which this checkout cannot confirm descends from the release (fetch tags and history, or the manifest names none)'; - problems.push(`${c.repo} vendors version ${c.version} at ${named}, ${why} (${c.manifest}).${update}`); - } - } - } - return problems; -} - -/** Whether `commit` is the commit `v` points at or descends from it; null when unknown here. */ -function descendsFromTag(target) { - return (commit) => { - try { - execFileSync('git', ['merge-base', '--is-ancestor', `v${target}`, commit], { stdio: 'ignore' }); - return true; - } catch (e) { - // Exit 1 is a definite "no"; any other status (unknown object, no tag) is "cannot tell". - return e.status === 1 ? false : null; - } - }; -} - -function latestTag() { - const tags = execFileSync('git', ['tag', '--list', 'v*'], { encoding: 'utf8' }) - .split('\n') - .map((t) => t.trim()) - .filter((t) => SEMVER.test(t)); - if (tags.length === 0) throw new Error('no vX.Y.Z tag in this checkout; fetch tags first (actions/checkout fetch-depth: 0)'); - return tags.sort(compareVersions).at(-1).replace(/^v/, ''); -} - -function vendoredManifest({ repo, manifest }) { - try { - const raw = execFileSync('gh', ['api', `repos/${repo}/contents/${manifest}`, '-H', 'Accept: application/vnd.github.raw'], { - encoding: 'utf8', - stdio: ['ignore', 'pipe', 'pipe'], - }); - const parsed = JSON.parse(raw); - return { manifest, version: parsed.version ?? null, commit: typeof parsed.commit === 'string' ? parsed.commit : null }; - } catch (e) { - throw new Error(`could not read ${repo}:${manifest} (${String(e.stderr || e.message).trim()}). The token needs read access to ${repo}.`); - } -} - -function selfTest() { - const c = (version) => [{ repo: 'o/consumer', manifest: 'vendored.json', version, update: 'sync {version}' }]; - const cases = [ - [behind('0.1.3', c('0.1.2')).length === 1, 'an older consumer is reported'], - [behind('0.1.3', c('0.1.3')).length === 0, 'a current consumer passes'], - [behind('0.1.3', c('0.2.0')).length === 0, 'a newer consumer passes'], - [behind('0.10.0', c('0.9.9')).length === 1, 'versions compare numerically, not as strings'], - [behind('0.1.3', c(null)).length === 1, 'an unreadable version is reported'], - [(behind('0.1.3', c('0.1.2'))[0] ?? '').includes('sync 0.1.3'), 'the message names the target in the update command'], - [behind('0.1.3', [{ ...c('0.1.3')[0], commit: 'x' }], () => false).length === 1, 'the right version at a stale commit is reported'], - [behind('0.1.3', [{ ...c('0.1.3')[0], commit: 'x' }], () => true).length === 0, 'the right version at the release commit or later passes'], - [behind('0.1.3', [{ ...c('0.1.3')[0], commit: 'x' }], () => null).length === 1, 'a commit that cannot be confirmed is reported'], - [behind('0.1.3', c('0.1.3'), () => true).length === 1, 'a manifest naming no commit is reported when commits are checked'], - ]; - const failed = cases.filter(([ok]) => !ok).map(([, name]) => name); - if (failed.length) { - console.error(`check-consumers self-test failed:\n- ${failed.join('\n- ')}`); - process.exit(1); - } - console.log(`check-consumers self-test: ${cases.length} cases pass`); -} - -function main(argv) { - if (argv.includes('--self-test')) return selfTest(); - const at = argv.indexOf('--version'); - const target = at >= 0 ? argv[at + 1].replace(/^v/, '') : latestTag(); - const listed = JSON.parse(readFileSync(new URL('./consumers.json', import.meta.url), 'utf8')); - if (!Array.isArray(listed) || listed.length === 0) throw new Error('scripts/consumers.json lists no consumers'); - const consumers = listed.map((c) => ({ ...c, ...vendoredManifest(c) })); - for (const c of consumers) console.log(`${c.repo}: vendors ${c.version ?? '?'} at ${c.commit?.slice(0, 12) ?? '?'} (target ${target})`); - const problems = behind(target, consumers, descendsFromTag(target)); - if (problems.length) { - console.error(`\n${problems.length} consumer(s) behind ${target}. A release must reach every consumer before the next one:\n`); - for (const p of problems) console.error(`- ${p}`); - process.exit(1); - } - console.log(`all ${consumers.length} consumer(s) carry ${target} or newer`); -} - -if (import.meta.url === `file://${process.argv[1]}`) { - try { - main(process.argv.slice(2)); - } catch (e) { - console.error(`check-consumers: ${e.message}`); - process.exit(1); - } -} diff --git a/.dev/browser/check-lib-build.mjs b/.dev/browser/check-lib-build.mjs deleted file mode 100644 index 8b40812..0000000 --- a/.dev/browser/check-lib-build.mjs +++ /dev/null @@ -1,249 +0,0 @@ -#!/usr/bin/env node -// Asserts dist/lib is something a host can consume (FINDINGS B1, B2). Run after -// `npm run build:lib`; CI runs it on every pull request. -// -// 1. no `@/` alias specifier survives in the JS or the declarations -// 2. the JS imports no stylesheet: styles are the host's explicit opt-in -// 3. the peers stay bare imports, so the host's single React is the one used -// 4. styles.css sets no overflow on html, body or #root -// 5. every url() in styles.css is relative and names a file that exists in dist/lib, -// so the fonts load in a host that serves nothing at /fonts/ -// 6. styles.css declares no custom property on :root, :host, html, body or a bare -// .dark-mode (FINDINGS N1): those match the HOST's document, so a second package's -// tokens and ours overwrite each other in load order. Tokens live on -// [data-ichava-theme], which the component root and its overlay container carry. -// 7. every utility sits inside `@scope ([data-ichava-theme])`, so a host's own Tailwind -// cannot override it by loading later (see scripts/utility-scope.mjs) -// 8. index.js is fully minified and names no source map: it is vendored into public -// repositories, and Untitled UI PRO's licence bars exposing its source -// -// Each predicate is first run against a planted defect and must report it, so a -// regex that stopped matching fails here instead of passing everything. - -import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; -import { dirname, join, relative } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { cssRules, stripCssComments } from '@ichava/js-ui-kernel/build'; -import { globalTokenRules } from '@ichava/js-ui-kernel/build'; -import { reachingRules, scopeSheet, scopeUtilities, UTILITY_SCOPE } from '../../vite.utility-scope.mjs'; - -const root = join(dirname(fileURLToPath(import.meta.url)), '..'); -const lib = join(root, 'dist/lib'); -const problems = []; - -const ALIAS = /(?:from\s*|import\s*\(\s*|import\s+)(['"])@\/[^'"]*\1/; -const CSS_IMPORT = /(?:from\s*|import\s*\(\s*|import\s+)(['"])[^'"]+\.css\1/; - -/** Rules whose selector list names html, body or #root and whose body sets overflow. */ -function documentLocks(css) { - const out = []; - // The kernel's one-pass scanner: the comment and rule regexes it replaces retried from - // every offset and took seconds on hostile input (CodeQL js/polynomial-redos). - for (const { selector, body } of cssRules(stripCssComments(css))) { - const names = selector.split(',').map((s) => s.trim()); - const hit = names.some((s) => /^(html|body|#root)\b/.test(s) || /[\s>+~](html|body|#root)\b/.test(s)); - if (hit && /(^|;)\s*overflow(-[xy])?\s*:/.test(body)) out.push(selector.trim()); - } - return out; -} - -/** - * Peers and the react-aria scopes, which the host provides. react-aria-components - * re-exports from @react-aria/*, @react-stately/* and @react-types/*; a bundled copy of - * any of them splits focus management from the host's (behaviour change 5). - */ -const PEERS = ['react', 'react-dom', 'react-aria', 'react-aria-components', 'react-stately', 'zustand', '@react-aria', '@react-stately', '@react-types']; - -/** Bundled sources, from the sourcemap, that belong to a peer. */ -function bundledPeers(sources) { - return sources.filter((src) => { - const m = src.match(/node_modules\/((?:@[^/]+\/)?[^/]+)/); - return m && PEERS.some((p) => m[1] === p || m[1].startsWith(`${p}/`)); - }); -} - -/** url() targets in a stylesheet that do not resolve to a file next to it. */ -function unresolvedUrls(css, cssDir, exists) { - const out = []; - for (const [, , target] of css.matchAll(/url\(\s*(['"]?)([^'")]+)\1\s*\)/g)) { - if (target.startsWith('data:') || target.startsWith('#')) continue; - if (/^([a-z]+:)?\//i.test(target)) out.push(`${target} (absolute: resolves against the host, not the package)`); - else if (!exists(join(cssDir, target.split(/[?#]/)[0]))) out.push(`${target} (no such file in dist/lib)`); - } - return out; -} - -/** - * Why `code` is not a fully minified bundle: a source map named, readable layout (short - * lines or indentation), a comment that is not a licence or pure annotation, or long - * declared names. Template literals keep their own newlines, so the layout limits are - * per byte rather than zero. icon-browser's `minifiedBundle.ts` applies the same rules - * to the vendored copy. - */ -function notMinified(code) { - const out = []; - const lines = code.split('\n'); - if (/sourceMappingURL/.test(code)) out.push('names a source map (sourceMappingURL)'); - if (code.length / lines.length < 1000) out.push(`averages ${Math.round(code.length / lines.length)} bytes a line (minified: 1000+)`); - const indented = lines.filter((l) => /^[ \t]{2,}\S/.test(l)).length; - if (indented * 10_000 > code.length) out.push(`${indented} indented lines (at most one per 10 kB)`); - const comments = [...code.matchAll(/(? m[1]); - const long = names.filter((n) => n.length > 3).length; - if (names.length && long / names.length > 0.05) out.push(`${long} of ${names.length} declared names are longer than 3 characters (unmangled)`); - return out; -} - -// Self-checks: each guard must catch a planted defect. -if (bundledPeers(['../../node_modules/react/cjs/react.js', '../../node_modules/@react-stately/utils/dist/x.mjs']).length !== 2) - problems.push('self-check: bundled peer sources were not reported'); -if (bundledPeers(['../../node_modules/tailwind-merge/dist/x.mjs', '../../src/index.ts', '../../node_modules/react-x/y.js']).length !== 0) - problems.push('self-check: non-peer sources reported as peers'); -// The scan is linear: hostile input finishes in well under 50 ms. -for (const hostile of [`/${'a/'.repeat(100_000)}`, 'z'.repeat(100_000)]) { - const start = performance.now(); - documentLocks(hostile); - const ms = performance.now() - start; - if (ms >= 50) problems.push(`self-check: scanning ${hostile.length} hostile characters took ${ms.toFixed(0)} ms (limit 50)`); -} -{ - const readable = `// a comment\nfunction resolveConfig(input) {\n const merged = { ...input };\n return merged;\n}\n//# sourceMappingURL=index.js.map\n`.repeat(50); - if (notMinified(readable).length < 4) problems.push(`self-check: a readable bundle passed the minification check (${notMinified(readable).join('; ')})`); - const minified = `/*! licence */import{a as b}from"react";function c(d){return/* @__PURE__ */b(d)}`.padEnd(20_000, ';') + '`\n x`'; - if (notMinified(minified).length) problems.push(`self-check: a minified bundle failed the minification check (${notMinified(minified).join('; ')})`); -} -if (!ALIAS.test(`export { X } from '@/IchavaBrowser';`)) problems.push('self-check: alias pattern misses a planted `@/` import'); -if (ALIAS.test(`export { X } from './IchavaBrowser';`)) problems.push('self-check: alias pattern flags a relative import'); -if (!CSS_IMPORT.test(`import "./styles.css";`)) problems.push('self-check: css-import pattern misses a planted import'); -if (documentLocks('@layer base{html,body,#root{margin:0;height:100%;overflow:hidden}}').length !== 1) - problems.push('self-check: overflow lock not detected in a planted rule'); -if (documentLocks('html,:host{line-height:1.5}body{margin:0}[data-ichava-root]{overflow:hidden}').length !== 0) - problems.push('self-check: overflow lock reported where there is none'); - -if (unresolvedUrls("@font-face{src:url('/fonts/G.woff2')}", '/nowhere', () => true).length !== 1) - problems.push('self-check: an absolute font url() was not reported'); -if (unresolvedUrls('@font-face{src:url(./fonts/G.woff2)}', '/nowhere', () => false).length !== 1) - problems.push('self-check: a relative url() to a missing file was not reported'); -if (unresolvedUrls('a{b:url("data:image/svg+xml,x")}', '/nowhere', () => false).length !== 0) - problems.push('self-check: a data: url() was reported'); - -if (globalTokenRules('@layer theme{:root,:host{--color-brand-500:#7f56d9}}').length !== 1) - problems.push('self-check: a token on :root,:host was not reported'); -if (globalTokenRules('@layer base{.dark-mode{--bg:#000}}html{--x:1}body{--y:2}').length !== 3) - problems.push('self-check: a token on .dark-mode, html or body was not reported'); -if (globalTokenRules('[data-ichava-theme]{--bg:#fff}[data-ichava-theme].dark-mode{--bg:#000}:root{color:red}@property --tw-x{syntax:"*"}').length !== 0) - problems.push('self-check: a scoped token rule, a plain :root rule or an @property was reported'); - -/** `@layer utilities` blocks whose body does not open with the utility scope. */ -function unscopedUtilityLayers(css) { - const open = '@layer utilities{'; - const scoped = `${open}@scope (${UTILITY_SCOPE}){`; - let n = 0; - for (let i = css.indexOf(open); i !== -1; i = css.indexOf(open, i + 1)) if (!css.startsWith(scoped, i)) n += 1; - return n; -} -if (unscopedUtilityLayers('@layer utilities{.px-3{padding-inline:12px}}') !== 1) - problems.push('self-check: an unscoped utilities layer was not reported'); -if (unscopedUtilityLayers(scopeUtilities('@layer base{a{b:c}}@layer utilities{.a{b:"}"}@media (x){.c{d:e}}}.z{y:x}')) !== 0) - problems.push('self-check: scopeUtilities left a utilities layer unscoped'); -if (scopeUtilities('@layer utilities{.a{b:c}}.z{y:x}') !== `@layer utilities{@scope (${UTILITY_SCOPE}){.a{b:c}}}.z{y:x}`) - problems.push('self-check: scopeUtilities did not close the scope where the layer closes'); -// The element-rule guard can fail (an unscoped `button:focus` and preflight layer are -// reported) and can pass (the same sheet after scopeSheet reports nothing; own rules stay). -{ - const plant = '@layer base{a{b:c}}button:focus{outline:none}@media (x){input{a:b}.ichbs{c:d}}.ich-x{a:b}[data-ichava-theme] i{a:b}'; - const before = reachingRules(plant); - if (before.length !== 3) problems.push(`self-check: reachingRules reported ${before.length} of 3 planted host-reaching rules`); - const scoped = scopeSheet(plant); - if (reachingRules(scoped).length !== 0) problems.push('self-check: scopeSheet left a host-reaching rule'); - // A rule naming the root must stay outside @scope, or it stops matching the root itself. - if (scopeSheet('@layer base{[data-ichava-theme]{--m:1}}') !== '@layer base{[data-ichava-theme]{--m:1}}') - problems.push('self-check: scopeSheet wrapped a rule that names the root'); - if (!scopeSheet('@layer base{*{a:b}}').includes(':scope,*{a:b}')) problems.push('self-check: a scoped universal rule no longer reaches the root'); -} - -function walk(dir, ext) { - return readdirSync(dir).flatMap((n) => { - const p = join(dir, n); - return statSync(p).isDirectory() ? walk(p, ext) : p.endsWith(ext) ? [p] : []; - }); -} - -/** - * The root's typeface. Since #173 Tailwind's preflight also matches the browser root, and - * it sets the font from `--default-font-family`, which is `--font-sans`. Unless the sheet - * points `--font-sans` at the body font (and that at Geist), every built page renders in - * the system stack and Geist never loads -- what the 2026-10-28 baselines showed. - */ -function rootFontIsGeist(sheet) { - return /--font-sans:\s*var\(--font-body\)/.test(sheet) && /--font-inter:\s*["']?Geist\b/.test(sheet); -} -if (!rootFontIsGeist('[data-ichava-theme]{--font-inter:"Geist";--font-sans:var(--font-body)}')) problems.push('self-check: a Geist root font was not recognised'); -if (rootFontIsGeist('[data-ichava-theme]{--font-inter:"Geist";--font-sans:-apple-system,sans-serif}')) problems.push('self-check: a system-stack --font-sans was accepted'); - -const js = join(lib, 'index.js'); -const css = join(lib, 'styles.css'); -const types = join(lib, 'types/index.d.ts'); -for (const f of [js, css, types]) if (!existsSync(f)) problems.push(`missing ${relative(root, f)} -- run npm run build:lib`); - -if (problems.length === 0) { - const jsFiles = walk(lib, '.js'); - const dts = walk(join(lib, 'types'), '.d.ts'); - // Floors, so a build that emitted almost nothing cannot pass by having nothing to check. - if (dts.length < 50) problems.push(`only ${dts.length} declaration files under dist/lib/types (expected 50+)`); - - for (const f of [...jsFiles, ...dts]) { - const lines = readFileSync(f, 'utf8').split('\n'); - lines.forEach((line, i) => { - if (ALIAS.test(line)) problems.push(`${relative(root, f)}:${i + 1} keeps an @/ alias: ${line.trim().slice(0, 120)}`); - }); - } - - // index.js and the chunks the on-demand layers load (re-audit F-12): every one is minified, - // imports no stylesheet and bundles no peer; the peers are imported as externals across them. - const chunks = jsFiles.filter((f) => !f.includes(`${join(lib, 'types')}`)); - let all = ''; - for (const f of chunks) { - const name = relative(root, f); - const code = readFileSync(f, 'utf8'); - all += code; - if (CSS_IMPORT.test(code)) problems.push(`${name} imports a stylesheet; the host must opt in instead`); - const map = `${f}.map`; - if (!existsSync(map)) problems.push(`${name}.map is missing; the bundled-peer check needs it`); - else for (const src of bundledPeers(JSON.parse(readFileSync(map, 'utf8')).sources)) problems.push(`${name} bundles peer code: ${src}`); - } - // Measured over all of them together: each small chunk repeats the licence banner's lines. - for (const why of notMinified(all)) problems.push(`dist/lib/*.js is not fully minified: ${why}`); - for (const peer of ['react', 'react-dom/client', 'react-aria-components', 'zustand']) { - if (!new RegExp(`from\\s*["']${peer}["']`).test(all)) problems.push(`dist/lib does not import "${peer}" as an external`); - } - - const sheet = readFileSync(css, 'utf8'); - if (sheet.length < 20_000) problems.push(`dist/lib/styles.css is ${sheet.length} bytes; expected the full prebuilt stylesheet`); - if (!sheet.includes('[data-ichava-root]')) problems.push('dist/lib/styles.css lacks the component-root rules; is it the right file?'); - for (const sel of documentLocks(sheet)) problems.push(`dist/lib/styles.css locks the host document: ${sel}`); - for (const sel of globalTokenRules(sheet)) - problems.push(`dist/lib/styles.css declares custom properties on the host document: ${sel} {...} (scope them to [data-ichava-theme])`); - if (!sheet.includes('@layer utilities{')) problems.push('dist/lib/styles.css has no utilities layer; is it the right file?'); - const reaching = reachingRules(sheet); - if (reaching.length) problems.push(`dist/lib/styles.css has ${reaching.length} rule(s) that reach a host's own elements; scope them (scripts/utility-scope.mjs): ${reaching.slice(0, 6).join(' | ')}`); - if (unscopedUtilityLayers(sheet) > 0) problems.push(`dist/lib/styles.css has ${unscopedUtilityLayers(sheet)} utilities layer(s) outside @scope (${UTILITY_SCOPE}); a host's Tailwind would override them`); - if (!sheet.includes('[data-ichava-theme]')) problems.push('dist/lib/styles.css declares no [data-ichava-theme] tokens; the component would render unthemed'); - - if (!rootFontIsGeist(sheet)) problems.push('dist/lib/styles.css does not route --font-sans to Geist; the scoped preflight would set the root in the system font'); - - const fontUrls = [...sheet.matchAll(/url\(\s*['"]?[^'")]*\.woff2/g)].length; - if (fontUrls < 2) problems.push(`dist/lib/styles.css references ${fontUrls} woff2 file(s); expected Geist and Geist Mono`); - for (const bad of unresolvedUrls(sheet, lib, existsSync)) problems.push(`dist/lib/styles.css url() does not resolve: ${bad}`); - if (!existsSync(join(lib, 'fonts/LICENSE.txt'))) problems.push('dist/lib/fonts/LICENSE.txt is missing; the fonts ship under the OFL'); - - if (problems.length === 0) { - console.log(`check-lib-build: ok -- ${jsFiles.length} js, ${dts.length} d.ts, styles.css ${sheet.length} bytes, ${fontUrls} font url()s resolved, no @/ specifiers, no document lock, no document-level tokens, utilities and element rules scoped`); - } -} - -if (problems.length) { - for (const p of problems) console.error(`::error::${p}`); - process.exit(1); -} diff --git a/.dev/browser/check-public-api.mjs b/.dev/browser/check-public-api.mjs deleted file mode 100644 index 2816824..0000000 --- a/.dev/browser/check-public-api.mjs +++ /dev/null @@ -1,180 +0,0 @@ -#!/usr/bin/env node -// The public API may grow, never shrink or change (architecture.md 4.1). Run after -// `npm run build:lib`; CI runs it on every pull request. -// -// Reads the emitted dist/lib/types/index.d.ts with the TypeScript compiler API, lists -// every export the package entry exposes, and prints each one's declaration with -// comments and private members removed. That listing is compared with the committed -// snapshot, scripts/public-api.snapshot.json: -// -// - an entry in the snapshot that is missing now fails (a removal) -// - an entry whose declaration text differs fails (a change) -// - an entry that is new passes, and is listed -// - an entry that only gained members (same head line, -// every old line still there, in order) passes, and is listed -// - fewer exports read than the snapshot holds, or none fails (an empty read) -// -// After an intended addition, record it with `npm run check:public-api -- --update`. -// A removal or change is a decision for the owner, not something to update away. -// -// The comparison is first run against planted defects and must report each one, so a -// comparison that stopped seeing differences fails here instead of passing everything. - -import { existsSync, readFileSync, writeFileSync } from 'node:fs'; -import { dirname, join } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import ts from 'typescript'; - -const root = join(dirname(fileURLToPath(import.meta.url)), '..'); -const entry = join(root, 'dist/lib/types/index.d.ts'); -const snapshotPath = join(root, 'scripts/public-api.snapshot.json'); - -/** Removes private members (TS `private` and `#private`) from a class declaration. */ -function publicOnly(node) { - if (!ts.isClassDeclaration(node)) return node; - const members = node.members.filter((m) => { - if (m.name && ts.isPrivateIdentifier(m.name)) return false; - const mods = ts.canHaveModifiers(m) ? ts.getModifiers(m) ?? [] : []; - return !mods.some((mod) => mod.kind === ts.SyntaxKind.PrivateKeyword); - }); - return ts.factory.updateClassDeclaration( - node, - node.modifiers, - node.name, - node.typeParameters, - node.heritageClauses, - members, - ); -} - -/** - * A declaration re-exported under another name (`export { CatalogIndex as IconRepository }`) - * prints under its own name. What a consumer imports is the export name, so the head of - * the declaration is written with that name: renaming a class behind an unchanged export - * is not an API change, and an export that starts pointing at a different declaration - * still shows up as one. - */ -function asExported(text, decl, exportName) { - const own = decl.name && ts.isIdentifier(decl.name) ? decl.name.text : null; - if (!own || own === exportName) return text; - return text.replace(new RegExp(`\\b(class|interface|function|type|enum|const|let|var) ${own}\\b`), `$1 ${exportName}`); -} - -/** Every export of the entry: { name: declaration text }. */ -export function readApi(file) { - const program = ts.createProgram([file], { - noEmit: true, - skipLibCheck: true, - target: ts.ScriptTarget.ES2022, - module: ts.ModuleKind.ESNext, - moduleResolution: ts.ModuleResolutionKind.Bundler, - jsx: ts.JsxEmit.ReactJSX, - }); - const checker = program.getTypeChecker(); - const source = program.getSourceFile(file); - if (!source) throw new Error(`cannot read ${file}`); - const moduleSymbol = checker.getSymbolAtLocation(source); - if (!moduleSymbol) throw new Error(`${file} is not a module`); - - const printer = ts.createPrinter({ removeComments: true, newLine: ts.NewLineKind.LineFeed }); - const api = {}; - for (const exported of checker.getExportsOfModule(moduleSymbol)) { - const symbol = exported.flags & ts.SymbolFlags.Alias ? checker.getAliasedSymbol(exported) : exported; - const texts = (symbol.declarations ?? []).map((decl) => - asExported(printer.printNode(ts.EmitHint.Unspecified, publicOnly(decl), decl.getSourceFile()).trim(), decl, exported.name), - ); - api[exported.name] = texts.join('\n'); - } - return api; -} - -/** - * Whether `now` only adds to `was`: the same first line (the declaration head: name, - * type parameters, heritage), and every line of `was` still present, in order. A class or - * interface that gains a member grows; one that loses or changes a member does not. - */ -function grew(was, now) { - const a = was.split('\n'); - const b = now.split('\n'); - if (a[0] !== b[0]) return false; - let j = 0; - for (const line of b) if (j < a.length && line === a[j]) j += 1; - return j === a.length; -} - -/** Compares a current listing with the snapshot. */ -export function compare(snapshot, current) { - const problems = []; - const added = []; - const grown = []; - const want = Object.keys(snapshot); - const have = Object.keys(current); - if (have.length === 0) problems.push('read 0 exports: the entry was empty or unreadable'); - if (have.length < want.length) { - problems.push(`read ${have.length} exports, the snapshot holds ${want.length}`); - } - for (const name of want) { - if (!(name in current)) problems.push(`removed: ${name}`); - else if (current[name] !== snapshot[name]) { - if (grew(snapshot[name], current[name])) grown.push(name); - else problems.push(`changed: ${name}\n was: ${snapshot[name]}\n now: ${current[name]}`); - } - } - for (const name of have) if (!(name in snapshot)) added.push(name); - return { problems, added, grown }; -} - -function selfTest() { - const base = { a: 'declare const a: number;', b: 'declare function b(): void;' }; - const cases = [ - ['a removal', { a: base.a }], - ['a change', { ...base, b: 'declare function b(x: string): void;' }], - ['an empty read', {}], - ]; - const missed = cases.filter(([, current]) => compare(base, current).problems.length === 0).map(([n]) => n); - if (compare(base, { ...base, c: 'declare const c: 1;' }).problems.length !== 0) missed.push('an allowed addition'); - const cls = 'declare class K {\n a(): void;\n b(): void;\n}'; - if (compare({ k: cls }, { k: 'declare class K {\n a(): void;\n c(): void;\n b(): void;\n}' }).problems.length !== 0) { - missed.push('an allowed new member'); - } - if (compare({ k: cls }, { k: 'declare class K {\n a(): void;\n}' }).problems.length === 0) missed.push('a removed member'); - if (compare({ k: cls }, { k: 'declare class K {\n a(): void;\n b(): number;\n}' }).problems.length === 0) missed.push('a changed member'); - if (compare({ k: cls }, { k: 'declare class K extends J {\n a(): void;\n b(): void;\n}' }).problems.length === 0) missed.push('a changed head'); - if (missed.length) { - console.error(`check-public-api: self-test failed, the comparison does not report ${missed.join(', ')}`); - process.exit(1); - } -} - -function main() { - selfTest(); - if (!existsSync(entry)) { - console.error(`check-public-api: ${entry} is missing. Run \`npm run build:lib\` first.`); - process.exit(1); - } - const current = readApi(entry); - if (process.argv.includes('--update')) { - writeFileSync(snapshotPath, JSON.stringify(current, null, 2) + '\n'); - console.log(`check-public-api: wrote ${Object.keys(current).length} exports to the snapshot`); - return; - } - if (!existsSync(snapshotPath)) { - console.error('check-public-api: no snapshot committed. Run with --update once, from main.'); - process.exit(1); - } - const snapshot = JSON.parse(readFileSync(snapshotPath, 'utf8')); - const { problems, added, grown } = compare(snapshot, current); - for (const name of added) console.log(`check-public-api: new export ${name} (record it with --update)`); - for (const name of grown) console.log(`check-public-api: ${name} gained members (record it with --update)`); - if (problems.length) { - for (const p of problems) console.error(`check-public-api: ${p}`); - console.error('check-public-api: FAILED. The public API may grow, never shrink or change.'); - process.exit(1); - } - console.log( - `check-public-api: ok -- ${Object.keys(current).length} exports read, ` + - `${Object.keys(snapshot).length - grown.length} in the snapshot unchanged, ${grown.length} grown, ${added.length} new`, - ); -} - -if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) main(); diff --git a/.dev/browser/checkConsumers.test.mts b/.dev/browser/checkConsumers.test.mts deleted file mode 100644 index 50b760c..0000000 --- a/.dev/browser/checkConsumers.test.mts +++ /dev/null @@ -1,57 +0,0 @@ -// `node --test scripts/checkConsumers.test.mts`: W-js3. A consumer whose vendored.json names the -// right version but a commit that is not the release (or a descendant of it) must be reported. -import { test } from 'node:test'; -import assert from 'node:assert/strict'; -import { existsSync, readFileSync } from 'node:fs'; -// @ts-expect-error plain .mjs without types -import { behind } from './check-consumers.mjs'; -import { siblingPath } from './siblings.mjs'; - -const TAG_COMMIT = 'a'.repeat(40); -const OLD = 'b'.repeat(40); -const NEWER = 'c'.repeat(40); -const consumer = (version: string | null, commit: string | null) => [ - { repo: 'o/consumer', manifest: 'vendored.json', version, commit, update: 'sync {version}' }, -]; -// The release commit and NEWER descend from it; OLD does not; anything else is unknown locally. -const contains = (commit: string): boolean | null => (commit === TAG_COMMIT || commit === NEWER ? true : commit === OLD ? false : null); - -test('the right version at an old commit is reported', () => { - const out = behind('0.1.0', consumer('0.1.0', OLD), contains); - assert.equal(out.length, 1); - assert.match(out[0], new RegExp(OLD.slice(0, 12))); -}); - -test('the release commit and a descendant of it pass', () => { - assert.equal(behind('0.1.0', consumer('0.1.0', TAG_COMMIT), contains).length, 0); - assert.equal(behind('0.1.0', consumer('0.1.0', NEWER), contains).length, 0); -}); - -test('a commit this checkout cannot see, or none at all, is reported rather than trusted', () => { - assert.equal(behind('0.1.0', consumer('0.1.0', 'd'.repeat(40)), contains).length, 1); - assert.equal(behind('0.1.0', consumer('0.1.0', null), contains).length, 1); -}); - -test('an older version is reported once, whatever the commit', () => { - assert.equal(behind('0.1.1', consumer('0.1.0', TAG_COMMIT), contains).length, 1); -}); - -test('without a commit check the version rule alone applies (callers that pass none)', () => { - assert.equal(behind('0.1.0', consumer('0.1.0', OLD)).length, 0); -}); - -const consumers = JSON.parse(readFileSync(new URL('./consumers.json', import.meta.url), 'utf8')) as { repo: string; manifest: string }[]; - -test('every consumer names its manifest as vendored.json, the one name the syncs write', () => { - assert.ok(consumers.length > 0, 'consumers.json lists no consumer'); - for (const c of consumers) assert.match(c.manifest, /(^|\/)vendored\.json$/, `${c.repo}: ${c.manifest}`); -}); - -for (const c of consumers) { - // The manifest is read from GitHub at release time. When the consumer is checked out beside this - // repository, its path is checked here too, so a move in the consumer fails before a release does. - const local = siblingPath(c.repo, c.manifest); - test(`${c.repo} keeps ${c.manifest} where consumers.json says`, { skip: local === null ? `${c.repo} is not checked out beside this repo` : false }, () => { - assert.ok(existsSync(local!), `${local} does not exist`); - }); -} diff --git a/.dev/browser/consumers.json b/.dev/browser/consumers.json deleted file mode 100644 index 14c9a7b..0000000 --- a/.dev/browser/consumers.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "repo": "ichava/icon-browser", - "manifest": "resources/vendor/react-icon-browser/vendored.json", - "update": "run `npm run build:lib` in react-icon-browser at v{version}, then in ichava/icon-browser run `node .dev/tools/sync-react-icon-browser.mjs ` and `npm run build:prod`; then `composer update` in the local demos/ichava-app, and update the docs that describe the change" - } -] diff --git a/.dev/browser/public-api.snapshot.json b/.dev/browser/public-api.snapshot.json deleted file mode 100644 index 5bf786c..0000000 --- a/.dev/browser/public-api.snapshot.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "IchavaBrowser": "export declare function IchavaBrowser({ catalog, client, config, manageDocument, syncUrl, urlPrefix, store, locale }: IchavaBrowserProps): import(\"react\").JSX.Element;", - "IchavaBrowserProps": "export interface IchavaBrowserProps {\n catalog?: Catalog;\n client?: IconCatalog;\n config?: AppConfig | null;\n manageDocument?: boolean;\n syncUrl?: boolean;\n urlPrefix?: string;\n store?: BrowserStoreHook;\n locale?: Locale;\n}", - "mountIchavaBrowser": "export declare function mountIchavaBrowser(el: HTMLElement, opts: MountOptions): Root;", - "browser": "export declare function browser(): BrowserBuilder;", - "MountOptions": "export interface MountOptions {\n catalog?: Catalog;\n client?: IconCatalog;\n config?: AppConfig | null;\n manageDocument?: boolean;\n syncUrl?: boolean;\n urlPrefix?: string;\n store?: BrowserStoreHook;\n persistKey?: string | null;\n locale?: Locale;\n}", - "BrowserBuilder": "export declare class BrowserBuilder {\n constructor(ports: BrowserBuilderPorts, state?: State);\n catalog(catalog: Catalog): BrowserBuilder;\n rest(client: IconCatalog): BrowserBuilder;\n config(config: AppConfig | null): BrowserBuilder;\n persist(key: string): BrowserBuilder;\n ephemeral(): BrowserBuilder;\n store(store: BrowserStoreHook): BrowserBuilder;\n standalone(): BrowserBuilder;\n embedded(): BrowserBuilder;\n syncUrl(prefix?: string): BrowserBuilder;\n locale(locale: Locale): BrowserBuilder;\n toOptions(): BuilderMountOptions;\n toProps(): IchavaBrowserProps;\n mount(el: HTMLElement): BrowserHandle;\n}", - "BrowserHandle": "export interface BrowserHandle {\n readonly store: BrowserStoreHook;\n unmount(): void;\n [Symbol.dispose](): void;\n}", - "BrowserBuilderPorts": "export interface BrowserBuilderPorts {\n mount(el: HTMLElement, options: BuilderMountOptions): {\n unmount(): void;\n };\n createStore(options: {\n persistKey?: string | null;\n }): BrowserStoreHook;\n}", - "createCatalog": "export declare function createCatalog(kind: DataSourceKind, opts: {\n catalog?: Catalog;\n base?: string;\n}): IconCatalog;", - "StaticCatalog": "export declare class StaticCatalog implements IconCatalog {\n constructor(catalog: Catalog);\n listIcons(params: ListParams): Promise>;\n getIcon(id: IconId): Promise;\n getSvg(icon: Icon, signal?: AbortSignal): Promise;\n getFilters(): Promise;\n getStatistics(): Promise>;\n getTree(): Promise;\n getRelated(icon: Icon, limit?: number): Promise;\n getVariantCounts(params: ListParams): Promise>;\n getKindCounts(params: ListParams): Promise>;\n}", - "RestCatalog": "export declare class RestCatalog implements IconCatalog {\n constructor(base?: string);\n static at(base: string): RestCatalog;\n get transport(): HttpTransport;\n static fromApi(api: {\n base: string | null;\n endpoints: RestEndpoints | unknown[];\n }): RestCatalog;\n get endpoints(): RestEndpoints | null;\n withTransport(transport: HttpTransport): RestCatalog;\n withEndpoints(endpoints: RestEndpoints | unknown[]): RestCatalog;\n csrf(strategy: CsrfStrategy): RestCatalog;\n timeout(ms: number): RestCatalog;\n credentials(mode: RequestCredentials): RestCatalog;\n listIcons(params: ListParams, signal?: AbortSignal): Promise>;\n getIcon(id: IconId, signal?: AbortSignal): Promise;\n getSvg(icon: Icon, signal?: AbortSignal): Promise;\n getFilters(signal?: AbortSignal): Promise;\n getStatistics(signal?: AbortSignal): Promise>;\n getTree(signal?: AbortSignal): Promise;\n getTreeFor(params: ListParams, signal?: AbortSignal): Promise;\n getCatalogMeta(signal?: AbortSignal): Promise;\n getRelated(icon: Icon, limit?: number, signal?: AbortSignal): Promise;\n getVariantCounts(_params: ListParams, signal?: AbortSignal): Promise>;\n getKindCounts(params: ListParams, signal?: AbortSignal): Promise>;\n}", - "IconCatalog": "export interface IconCatalog {\n listIcons(params: ListParams, signal?: AbortSignal): Promise>;\n getIcon(id: IconId, signal?: AbortSignal): Promise;\n getSvg(icon: Icon, signal?: AbortSignal): Promise;\n getFilters(signal?: AbortSignal): Promise;\n getStatistics(signal?: AbortSignal): Promise>;\n getTree(signal?: AbortSignal): Promise;\n getRelated(icon: Icon, limit?: number, signal?: AbortSignal): Promise;\n getVariantCounts(params: ListParams, signal?: AbortSignal): Promise>;\n getKindCounts?(params: ListParams, signal?: AbortSignal): Promise>;\n getTreeFor?(params: ListParams, signal?: AbortSignal): Promise;\n getCatalogMeta?(signal?: AbortSignal): Promise;\n}", - "ListParams": "export interface ListParams {\n search?: string;\n packages?: string[];\n categories?: string[];\n subs?: string[];\n variants?: string[];\n page?: number;\n perPage?: number;\n sortBy?: 'name' | 'package' | 'category' | 'created_at';\n sortDirection?: 'asc' | 'desc';\n kind?: IconKind;\n tags?: string[];\n keywords?: string[];\n language?: string;\n}", - "DataSourceKind": "export type DataSourceKind = 'static' | 'rest';", - "getBrowserId": "export declare function getBrowserId(): string;", - "LARAVEL_SANCTUM_PRESET": "LARAVEL_SANCTUM_PRESET: TransportConfig", - "HttpError": "export declare class HttpError extends Error {\n status: number;\n detail: string;\n constructor(status: number, detail: string);\n}", - "RequestAbortedError": "export declare class RequestAbortedError extends Error {\n reason: 'timeout' | 'caller';\n constructor(reason: 'timeout' | 'caller');\n}", - "HttpTransport": "export declare class HttpTransport {\n constructor(config?: TransportConfig);\n get config(): Readonly;\n with(patch: TransportPatch): HttpTransport;\n initCsrf(): Promise;\n request(path: string, opts?: RequestOpts): Promise;\n}", - "TransportConfig": "export interface TransportConfig {\n baseUrl: string;\n credentials: RequestCredentials;\n timeoutMs: number;\n csrf: {\n strategy: CsrfStrategy;\n metaName: string;\n cookieName: string;\n headerName: string;\n endpoint: string;\n };\n}", - "CsrfStrategy": "export type CsrfStrategy = 'none' | 'meta' | 'cookie' | 'sanctum';", - "IconRepository": "export declare class IconRepository {\n constructor(catalog: Catalog);\n filtered(p: ListParams): Icon[];\n page(p: ListParams): PageResult;\n byId(id: IconId): Icon | undefined;\n related(icon: Icon, limit?: number): Icon[];\n filters(): Filters;\n kindCounts(p: ListParams): Record;\n variantCounts(p: ListParams): Map;\n categoryTree(p: ListParams): CategoryGroup[];\n}", - "Catalog": "export interface Catalog {\n meta: {\n total_ecosystem: number;\n generated: string;\n };\n packages: IconPackage[];\n icons: Icon[];\n}", - "SvgFidelity": "export declare class SvgFidelity {\n resolve(icon: Icon, color: string | null): RenderStrategy;\n toStyle(s: RenderStrategy, size: number): StyleObject;\n}", - "fidelity": "fidelity: SvgFidelity", - "assetUrl": "export declare function assetUrl(file: string): string;", - "svgDataUrl": "export declare function svgDataUrl(svg: string): string;", - "SnippetFactory": "export declare class SnippetFactory {\n register(format: string, builder: SnippetBuilder): this;\n supports(format: string, config?: Partial | null): boolean;\n needsSvg(format: string, config?: Partial | null): boolean;\n build(format: SnippetFormat, icon: Icon, o: SnippetOptions, svgBody?: string | null): string;\n svgFromParts(icon: Icon, parts: {\n body: string;\n viewBox: string;\n }, o: SnippetOptions): string;\n}", - "snippets": "snippets: SnippetFactory", - "snippetTabs": "export declare function snippetTabs(config?: Partial | null, factory?: SnippetFactory): {\n id: SnippetFormat;\n label: string;\n builtin: boolean;\n}[];", - "snippetTokens": "export declare function snippetTokens(icon: Icon, o: SnippetOptions, svg?: string): Record;", - "renderTemplate": "export declare function renderTemplate(template: string, tokens: Record): string;", - "iconPath": "export declare function iconPath(icon: Icon): string;", - "svgToJsx": "export declare function svgToJsx(svg: string): string;", - "SNIPPET_TABS": "SNIPPET_TABS: {\n id: BuiltinSnippetFormat;\n label: string;\n}[]", - "BUILTIN_SNIPPET_FORMATS": "BUILTIN_SNIPPET_FORMATS: readonly [\n 'svg',\n 'motion',\n 'helper',\n 'blade',\n 'bladeGeneric',\n 'livewire',\n 'alpine',\n 'vue',\n 'react',\n 'svelte',\n 'webcomponent',\n 'reactNative',\n 'angular',\n 'solid',\n 'preact',\n 'astro',\n 'qwik',\n 'ember',\n 'elm',\n 'api',\n 'name'\n]", - "BuiltinSnippetFormat": "export type BuiltinSnippetFormat = (typeof BUILTIN_SNIPPET_FORMATS)[number];", - "SnippetBuilder": "export type SnippetBuilder = (ctx: SnippetContext) => string;", - "SnippetContext": "export interface SnippetContext {\n icon: Icon;\n options: SnippetOptions;\n tokens: Record;\n}", - "SnippetFormat": "export type SnippetFormat = BuiltinSnippetFormat | (string & {});", - "SnippetOptions": "export interface SnippetOptions {\n size: number;\n unit: string;\n color: string | null;\n strokeWidth?: number;\n baseUrl?: string;\n motion?: SnippetMotion;\n config?: Partial | null;\n}", - "SnippetConfig": "export interface SnippetConfig {\n tabs: string[];\n labels: Record;\n templates: Record;\n className: string;\n apiOrigin: string;\n svgEndpoint?: string;\n}", - "iconRef": "export declare function iconRef(icon: Icon): string;", - "IconId": "export type IconId = number;", - "IconVariant": "export type IconVariant = string;", - "IconKind": "export type IconKind = 'icon' | 'illustration';", - "RawIcon": "export interface RawIcon {\n id: number;\n package: string;\n name: string;\n category: string;\n sub?: string;\n variant: string;\n kind?: IconKind;\n path?: string;\n icon_path?: string;\n file_path?: string;\n svg_content?: string | null;\n svg_url?: string;\n viewbox?: string;\n width?: number | string | null;\n height?: number | string | null;\n blade_clean?: string;\n blade_generic?: string;\n helper?: string;\n snippets?: Record;\n set?: string;\n tags?: string[];\n keywords?: string[];\n created_at?: string;\n updated_at?: string;\n}", - "Icon": "export interface Icon {\n id: IconId;\n package: string;\n name: string;\n category: string;\n sub?: string;\n variant: IconVariant;\n kind?: IconKind;\n svgContent: string | null;\n svgUrl: string | null;\n viewBox: string;\n bladeClean: string;\n bladeGeneric: string;\n helper: string;\n path?: string;\n snippets?: Record;\n tags: string[];\n keywords: string[];\n ownColor: boolean;\n}", - "IconPackage": "export interface IconPackage {\n id: string;\n label: string;\n description?: string;\n count: number;\n installed: boolean;\n loaded: boolean;\n}", - "Term": "export interface Term {\n id: number | string;\n name: string;\n label: string;\n package?: string;\n count: number;\n sub?: string;\n}", - "Filters": "export interface Filters {\n packages: IconPackage[];\n categories: Term[];\n variants: Term[];\n}", - "PageMeta": "export interface PageMeta {\n total: number;\n perPage: number;\n currentPage: number;\n lastPage: number;\n from: number;\n to: number;\n groupBy?: string | null;\n}", - "Envelope": "export interface Envelope {\n success: boolean;\n data: T;\n message?: string;\n error?: string;\n meta?: Record;\n}", - "PageResult": "export interface PageResult {\n items: T[];\n total: number;\n page: number;\n perPage: number;\n lastPage: number;\n rangeStart: number;\n rangeEnd: number;\n}", - "svgHasOwnColors": "export declare function svgHasOwnColors(svg: string | null | undefined): boolean;", - "toIcon": "export declare function toIcon(raw: RawIcon): Icon;", - "useStore": "useStore: import(\"zustand\").UseBoundStore, \"persist\" | \"setState\"> & {\n setState(partial: BrowserStore | Partial | ((state: BrowserStore) => BrowserStore | Partial), replace?: false | undefined): unknown;\n setState(state: BrowserStore | ((state: BrowserStore) => BrowserStore), replace: true): unknown;\n persist: {\n setOptions: (options: Partial>) => void;\n clearStorage: () => void;\n rehydrate: () => Promise | void;\n hasHydrated: () => boolean;\n onHydrate: (fn: (state: BrowserStore) => void) => () => void;\n onFinishHydration: (fn: (state: BrowserStore) => void) => () => void;\n getOptions: () => Partial>;\n };\n}>", - "BrowserStore": "export interface BrowserStore {\n catalog: Catalog | null;\n filtersData: Filters | null;\n config: AppConfig | null;\n loading: boolean;\n activeWorkspaceId: string | null;\n setCatalog: (c: Catalog) => void;\n setFiltersData: (f: Filters) => void;\n setConfig: (c: AppConfig) => void;\n setActiveWorkspace: (id: string) => void;\n theme: Theme;\n accent: string;\n radius: number;\n scale: Scale;\n density: Density;\n reduceMotion: boolean;\n showLabels: boolean;\n adaptMonochrome: boolean;\n locale: Locale;\n setLocale: (l: Locale) => void;\n translationOverrides: TranslationOverrides;\n addTranslations: (data: TranslationOverrides) => void;\n setTheme: (t: Theme) => void;\n toggleTheme: () => void;\n setAccent: (hex: string) => void;\n setRadius: (n: number) => void;\n setScale: (s: Scale) => void;\n setDensity: (d: Density) => void;\n toggleReduceMotion: () => void;\n toggleLabels: () => void;\n toggleAdaptMonochrome: () => void;\n filters: FilterState;\n view: ViewMode;\n catQ: string;\n collapsedGroups: string[];\n expandedCats: string[];\n searchScope: SearchScope;\n packageQuery: string;\n sidebarOpen: boolean;\n setSearchScope: (s: SearchScope) => void;\n setPackageQuery: (v: string) => void;\n toggleSidebar: () => void;\n setSidebarOpen: (v: boolean) => void;\n setSearch: (v: string) => void;\n clearSearch: () => void;\n togglePackage: (id: string) => void;\n selectAllPacks: (all: string[]) => void;\n clearPacks: () => void;\n toggleCat: (name: string) => void;\n toggleSub: (category: string, sub: string) => void;\n clearCats: () => void;\n setVariant: (v: string | null) => void;\n setSort: (k: SortKey) => void;\n toggleOrder: () => void;\n setPage: (n: number) => void;\n nextPage: (max: number) => void;\n prevPage: () => void;\n setPerPage: (n: number) => void;\n setView: (v: ViewMode) => void;\n setCatQ: (v: string) => void;\n toggleGroup: (pack: string) => void;\n toggleCatExpand: (key: string) => void;\n toggleExpandAll: (allGroups: string[], allCatKeys: string[]) => void;\n resetFilters: () => void;\n setKind: (k: IconKind) => void;\n toggleTag: (tag: string) => void;\n toggleKeyword: (keyword: string) => void;\n clearTerms: () => void;\n size: number;\n sizeUnit: SizeUnit;\n gridStroke: number;\n color: string | null;\n treatment: Treatment;\n copyFormat: CopyFormat;\n setSize: (n: number) => void;\n setSizeUnit: (u: SizeUnit) => void;\n setGridStroke: (n: number) => void;\n setColor: (c: string | null) => void;\n setTreatment: (t: Treatment) => void;\n setCopyFormat: (f: CopyFormat) => void;\n selection: IconId[];\n toggleSelect: (id: IconId) => void;\n clearSelection: () => void;\n favorites: IconId[];\n history: HistoryEntry[];\n collections: Collection[];\n toggleFavorite: (id: IconId) => void;\n pushHistory: (id: IconId, action: string) => void;\n clearHistory: () => void;\n createCollection: (name: string, icons?: readonly IconId[]) => void;\n renameCollection: (id: string, name: string) => void;\n removeCollection: (id: string) => void;\n addToCollection: (collId: string, iconId: IconId) => void;\n removeFromCollection: (collId: string, iconId: IconId) => void;\n recentCommands: string[];\n logCommand: (id: string, type?: 'action' | 'search' | 'navigation') => void;\n clearRecentCommands: () => void;\n libraryDeletions: number;\n deleteLibrary: () => void;\n layer: Layer;\n detailId: IconId | null;\n libTab: LibTab;\n librarySeed: IconId[];\n openLayer: (l: Layer) => void;\n closeLayer: () => void;\n openDetail: (id: IconId) => void;\n openLibrary: (tab: LibTab, opts?: {\n seed?: readonly IconId[];\n }) => void;\n toasts: {\n id: number;\n msg: string;\n icon: string;\n }[];\n showToast: (msg: string, icon?: string) => void;\n dismissToast: (id: number) => void;\n tasks: {\n id: number;\n label: string;\n }[];\n runTask: (label: string, work: () => Promise, opts?: {\n delayMs?: number;\n }) => Promise;\n ctx: {\n x: number;\n y: number;\n title?: string;\n items: ContextMenuItem[];\n } | null;\n openCtx: (x: number, y: number, items: ContextMenuItem[], title?: string) => void;\n closeCtx: () => void;\n setSelection: (ids: IconId[]) => void;\n auth: {\n status: AuthStatus;\n user: AuthUser | null;\n };\n authView: AuthView;\n authReason: string | null;\n authInitialized: boolean;\n openAuth: (view: Exclude, reason?: string) => void;\n closeAuth: () => void;\n signIn: (email: string, code: string) => boolean;\n createAccount: (p: {\n first: string;\n last: string;\n email: string;\n }) => void;\n signOut: () => void;\n notifications: AppNotification[];\n pushNotification: (n: {\n icon: string;\n text: string;\n }) => void;\n markNotificationsRead: () => void;\n clearNotifications: () => void;\n seedDemoNotifications: () => void;\n devtools: {\n open: boolean;\n tab: DevToolsTab;\n events: DevToolsEvent[];\n capturing: boolean;\n };\n devtoolsLayout: {\n dock: DevToolsDock;\n size: number;\n };\n setDevtoolsDock: (dock: DevToolsDock) => void;\n setDevtoolsSize: (size: number) => void;\n toggleDevtools: () => void;\n setDevToolsTab: (t: DevToolsTab) => void;\n pushDevEvent: (e: DevToolsEvent) => void;\n clearDevEvents: () => void;\n setCapturing: (v: boolean) => void;\n inviteOpen: boolean;\n accessCollectionId: string | null;\n sharedOpen: boolean;\n openShared: () => void;\n closeShared: () => void;\n openInvite: () => void;\n closeInvite: () => void;\n openAccess: (id: string) => void;\n closeAccess: () => void;\n shareCollection: (id: string, opts: {\n role: 'editor' | 'viewer';\n sharedWith: TeamRef[];\n }) => void;\n storageDriver: StorageDriver;\n setStorageDriver: (d: StorageDriver) => void;\n tour: {\n active: boolean;\n step: number;\n };\n tourSeen: boolean;\n startTour: () => void;\n nextTourStep: () => void;\n prevTourStep: () => void;\n skipTour: () => void;\n endTour: () => void;\n consent: 'essential' | 'all' | null;\n setConsent: (c: 'essential' | 'all') => void;\n boot: BootStateSlice;\n setBoot: (b: Partial) => void;\n confirm: ConfirmSpec | null;\n openConfirm: (c: ConfirmSpec) => void;\n closeConfirm: () => void;\n factoryReset: () => void;\n}", - "AppConfig": "export interface AppConfig {\n meta: {\n version: string;\n author: string;\n sets: number;\n license: string;\n url: string;\n };\n seo: {\n title: string;\n description: string;\n ogImage?: string;\n canonical?: string;\n };\n env: AppEnv | null;\n debug: {\n enabled: boolean | null;\n logLevel: LogLevel;\n };\n features: FeatureFlags;\n brand: {\n name: string;\n suffix: string;\n tagline: string;\n };\n user: {\n mode: string;\n name: string;\n email: string;\n initials: string;\n plan: string;\n workspaces: Workspace[];\n };\n team: TeamMember[];\n ui: {\n defaultTheme: 'light' | 'dark';\n scale: ScaleT;\n density: 'compact' | 'comfy';\n accentOptions: string[];\n perPageOptions: number[];\n scaleOptions: {\n id: ScaleT;\n label: string;\n }[];\n baseFontSize: number;\n avatarPalette: string[];\n };\n defaults: {\n packages: string[];\n perPage: number;\n sortBy: 'name' | 'package' | 'category';\n sortOrder: 'asc' | 'desc';\n appearance: {\n theme: 'light' | 'dark' | 'system';\n accent: string;\n radius: number;\n scale: ScaleT;\n density: 'compact' | 'comfy';\n reduceMotion: boolean;\n showLabels: boolean;\n adaptMonochrome?: boolean;\n };\n render: {\n size: number;\n sizeUnit: 'px' | 'rem' | 'em';\n gridStroke: number;\n color: string | null;\n treatment: string;\n copyFormat: CopyFormat;\n };\n collections: {\n id: string;\n name: string;\n icons: number[];\n shared?: boolean;\n role?: 'editor' | 'viewer';\n sharedWith?: {\n initials: string;\n name: string;\n }[];\n }[];\n kind?: IconKind;\n };\n ranges: {\n size: {\n min: number;\n max: number;\n step: number;\n };\n stroke: {\n min: number;\n max: number;\n step: number;\n };\n radius: {\n min: number;\n max: number;\n };\n };\n limits: {\n historyCap: number;\n recentCommandsCap: number;\n paletteIconResults: number;\n logBuffer: number;\n svgMaxChars: number;\n svgMaxNodes: number;\n };\n toolbar: {\n sortOptions: {\n id: string;\n label: string;\n }[];\n treatments: {\n id: string;\n label: string;\n desc: string;\n }[];\n sizeUnits: string[];\n copyFormats: {\n id: CopyFormat;\n label: string;\n }[];\n exportFormats: {\n id: string;\n label: string;\n desc: string;\n icon?: string;\n }[];\n nativeExports?: {\n id: string;\n href: string;\n }[];\n };\n about: {\n description: string;\n creditsTitle: string;\n copyright: string;\n creditsMarqueeSec: number;\n credits: {\n name: string;\n author: string;\n license: string;\n }[];\n links: {\n label: string;\n href: string;\n }[];\n stats: {\n key: string;\n label: string;\n }[];\n };\n i18n: {\n locale: string;\n available: string[];\n endpoint?: string;\n };\n storageKeys: {\n persist: string;\n driver: string;\n paletteRecent: string;\n locale: string;\n consent?: string;\n };\n host: HostContext | null;\n boot: Record;\n snippets: SnippetConfig;\n storage: {\n frontendDriver: 'local' | 'session';\n laravelDriver?: string;\n };\n crossLinks: {\n landing: string | null;\n };\n}", - "resolveConfig": "export declare function resolveConfig(partial: PartialConfig | null | undefined): AppConfig;", - "CONFIG_DEFAULTS": "CONFIG_DEFAULTS: AppConfig", - "PartialConfig": "export type PartialConfig = DeepPartial;", - "TaskLoaderView": "export declare function TaskLoaderView({ label, more }: {\n label: string;\n more?: number;\n}): import(\"react\").JSX.Element;", - "TASK_LOADER_DELAY_MS": "TASK_LOADER_DELAY_MS = 2000", - "hostConfig": "export declare function hostConfig(host: HostContext): PartialConfig;", - "hostConfigFromProps": "export declare function hostConfigFromProps(props: {\n auth?: User | null;\n ichava?: Partial | null;\n} | null | undefined): PartialConfig;", - "loadHostConfig": "export declare function loadHostConfig(bootstrapUrl: string, transport?: HttpTransport): Promise;", - "loadHostContext": "export declare function loadHostContext(bootstrapUrl: string, transport?: HttpTransport): Promise;", - "hostFromInertia": "export declare function hostFromInertia(props: {\n auth?: User | null;\n ichava?: Partial | null;\n} | null | undefined): HostContext | null;", - "hostFromBootstrap": "export declare function hostFromBootstrap(doc: Bootstrap): HostContext;", - "featureOn": "export declare function featureOn(host: HostContext, name: FeatureName): boolean;", - "endpoint": "export declare function endpoint(host: HostContext, name: FeatureName, key: string): string | null;", - "fillEndpoint": "export declare function fillEndpoint(template: string, params: Readonly>): string;", - "isCompatible": "export declare function isCompatible(version: string, ours?: string): boolean;", - "restLibraryEndpoints": "export declare function restLibraryEndpoints(host: HostContext): {\n library: string;\n favorites: string | null;\n collections: string | null;\n history: string | null;\n commands: string | null;\n preferences: string | null;\n api: Readonly>>;\n} | null;", - "apiEndpoint": "export declare function apiEndpoint(host: HostContext | null | undefined, key: ApiEndpointKey): string | null;", - "hostApi": "export declare function hostApi(api: Partial | null | undefined): HostApi | null;", - "ABILITIES": "ABILITIES: {\n readonly admin: 'ichava.admin';\n readonly manageCache: 'ichava.manage-cache';\n}", - "HostContext": "export interface HostContext {\n source: HostSource;\n schemaVersion: string;\n compatible: boolean;\n locale: string | null;\n modes: Modes;\n user: User | null;\n features: Readonly>>;\n links: Links;\n storage: {\n tier: string | null;\n persistent: boolean | null;\n };\n defaultTheme: 'light' | 'dark' | null;\n perPage: number | null;\n api?: HostApi | null;\n kinds?: KindsInfo | null;\n limits?: {\n svgMaxNodes: number | null;\n svgMaxChars: number | null;\n } | null;\n crossLinks?: CrossLinks | null;\n}", - "FeatureName": "export type FeatureName = keyof Features;", - "HostApi": "export interface HostApi {\n version: string;\n base: string | null;\n endpoints: Readonly>>;\n}", - "ApiEndpointKey": "export type ApiEndpointKey = keyof Exclude;", - "HostIdentity": "export declare class HostIdentity implements IdentityProvider {\n constructor(user: HostUserData | null, links: HostAccountLinks, opts?: HostIdentityOptions);\n current(): IdentityUser | null;\n signIn(): IdentityUser | null;\n createAccount(): IdentityUser;\n beginSignIn(): boolean;\n signOut(): void;\n}", - "DemoIdentity": "export declare class DemoIdentity implements IdentityProvider {\n signIn(email: string, code: string, context: IdentityContext | null): IdentityUser | null;\n createAccount(p: {\n first: string;\n last: string;\n email: string;\n }): IdentityUser;\n signOut(): void;\n}", - "IdentityProvider": "export interface IdentityProvider {\n signIn(email: string, code: string, context: IdentityContext | null): IdentityUser | null;\n createAccount(person: {\n first: string;\n last: string;\n email: string;\n }): IdentityUser;\n signOut(): void;\n current?(): IdentityUser | null;\n beginSignIn?(view: 'signin' | 'create'): boolean;\n}", - "IdentityUser": "export interface IdentityUser {\n name: string;\n initials: string;\n email: string;\n plan: 'FREE' | 'PRO' | 'TEAM' | null;\n id?: string;\n avatarUrl?: string | null;\n abilities?: Readonly>;\n}", - "diffLibrary": "export declare function diffLibrary(prev: LibraryView, next: LibraryView): LibraryOp[];", - "RestLibrary": "export declare class RestLibrary {\n constructor(endpoints: LibraryEndpoints, transport: HttpTransport);\n serverId(id: string): string;\n load(): Promise;\n apply(op: LibraryOp): Promise<{\n from: string;\n to: string;\n } | void>;\n}", - "LibraryOp": "export type LibraryOp = {\n kind: 'favorite.add';\n iconId: IconId;\n} | {\n kind: 'favorite.remove';\n iconId: IconId;\n} | {\n kind: 'history.record';\n iconId: IconId;\n action: string;\n} | {\n kind: 'history.clear';\n} | {\n kind: 'collection.create';\n id: string;\n name: string;\n icons?: readonly IconId[];\n} | {\n kind: 'collection.rename';\n id: string;\n name: string;\n} | {\n kind: 'collection.delete';\n id: string;\n} | {\n kind: 'collection.add';\n id: string;\n iconId: IconId;\n} | {\n kind: 'collection.remove';\n id: string;\n iconId: IconId;\n} | {\n kind: 'command.log';\n command: string;\n} | {\n kind: 'command.clear';\n} | {\n kind: 'library.delete';\n};", - "LibraryView": "export interface LibraryView {\n favorites: readonly IconId[];\n history: readonly HistoryEntry[];\n collections: readonly Collection[];\n recentCommands?: readonly string[];\n libraryDeletions?: number;\n}", - "LibraryEndpoints": "export interface LibraryEndpoints {\n library: string;\n favorites: string | null;\n collections: string | null;\n history: string | null;\n commands: string | null;\n api?: Readonly>>;\n}", - "RestPreferences": "export declare class RestPreferences {\n constructor(url: string, transport: HttpTransport);\n static withEndpoints(endpoints: PreferenceEndpoints, transport: HttpTransport): RestPreferences;\n load(): Promise;\n save(p: HostPreferences): Promise;\n reset(): Promise;\n}", - "HostPreferences": "export interface HostPreferences {\n view?: 'grid' | 'list';\n size?: number;\n perPage?: number;\n sortBy?: 'name' | 'package' | 'category';\n sortOrder?: 'asc' | 'desc';\n}", - "PreferenceEndpoints": "export interface PreferenceEndpoints {\n show: string | null;\n update: string | null;\n reset: string | null;\n}", - "mergeConfig": "export declare function mergeConfig(base: T, over: unknown): T;", - "emptyReasonFor": "export declare function emptyReasonFor(page: PageResult, params: ListParams, catalogSize: number): EmptyReason;", - "ListedPage": "export type ListedPage = PageResult & {\n emptyReason?: EmptyReason;\n};", - "PAYLOAD_SCHEMA_VERSION": "PAYLOAD_SCHEMA_VERSION = \"1.8.0\"", - "HostBootstrap": "export type HostBootstrap = {\n schemaVersion: string;\n locale: string;\n modes: Modes;\n session: Session;\n features: Features;\n api: ApiManifest;\n kinds?: KindsInfo;\n limits?: Limits;\n crossLinks?: CrossLinks;\n};", - "HostSession": "export type HostSession = {\n schemaVersion: string;\n authenticated: boolean;\n user: User | null;\n tier: \"browser\" | \"session\" | \"database\";\n persistent: boolean;\n links: Links;\n};", - "HostUser": "export type HostUser = {\n id: string;\n name: string;\n avatarUrl: string | null;\n abilities: Record;\n};", - "HostFeature": "export type HostFeature = {\n enabled: boolean;\n reason: \"config\" | \"gate\" | \"driver\" | \"empty\" | null;\n endpoints: Record | unknown[];\n};", - "HostFeatures": "export type HostFeatures = {\n favorites: Feature;\n collections: Feature;\n history: Feature;\n commands: Feature;\n library: Feature;\n preferences: Feature;\n status: Feature;\n cacheAdmin: Feature;\n illustrations: Feature;\n searchLanguage: Feature;\n export: Feature;\n motion: Feature;\n themeToggle: Feature;\n presence: Feature;\n invites: Feature;\n sharing: Feature;\n notifications: Feature;\n workspaces: Feature;\n};", - "HostIchavaProp": "export type HostIchavaProp = {\n schemaVersion: string;\n locale: string;\n modes: Modes;\n features: Features;\n account: Links;\n storage: {\n tier: string | null;\n persistent: boolean | null;\n };\n prefix: string;\n perPage: number;\n defaultTheme: string;\n ui: {\n version: string | null;\n license: string;\n docsUrl: string | null;\n links: {\n label: string;\n href: string;\n }[];\n themeToggle: boolean;\n };\n snippets: Record | unknown[];\n routes: Record;\n kinds?: KindsInfo;\n limits?: Limits;\n crossLinks?: CrossLinks;\n};", - "HostApiManifest": "export type HostApiManifest = {\n version: \"v1\";\n base: string | null;\n endpoints: {\n session?: string;\n bootstrap?: string;\n status?: string;\n \"icons.list\"?: string;\n \"icons.show\"?: string;\n \"icons.svg\"?: string;\n \"icons.filters\"?: string;\n \"icons.tree\"?: string;\n \"icons.statistics\"?: string;\n \"icons.updateStatus\"?: string;\n \"packages.list\"?: string;\n \"packages.show\"?: string;\n \"terms.categories\"?: string;\n \"terms.variants\"?: string;\n \"terms.hierarchy\"?: string;\n \"library.show\"?: string;\n \"library.destroy\"?: string;\n \"favorites.list\"?: string;\n \"favorites.add\"?: string;\n \"favorites.remove\"?: string;\n \"favorites.toggle\"?: string;\n \"collections.list\"?: string;\n \"collections.create\"?: string;\n \"collections.show\"?: string;\n \"collections.rename\"?: string;\n \"collections.delete\"?: string;\n \"collections.addIcon\"?: string;\n \"collections.removeIcon\"?: string;\n \"history.list\"?: string;\n \"history.log\"?: string;\n \"history.clear\"?: string;\n \"commands.list\"?: string;\n \"commands.log\"?: string;\n \"commands.clear\"?: string;\n \"preferences.show\"?: string;\n \"preferences.update\"?: string;\n \"preferences.search\"?: string;\n \"preferences.filters\"?: string;\n \"preferences.reset\"?: string;\n \"cache.stats\"?: string;\n \"cache.clear\"?: string;\n \"cache.rebuild\"?: string;\n } | unknown[];\n};", - "HostSharedProps": "export type HostSharedProps = {\n auth: User | null;\n flash: {\n success: string | null;\n error: string | null;\n };\n preferences: Record;\n ichava: Ichava;\n};", - "EmptyReason": "export type EmptyReason = \"no_match\" | \"no_icons\" | null;", - "loadLocale": "export declare function loadLocale(locale: Locale): Promise;", - "loadAllLocales": "export declare function loadAllLocales(): Promise;" -} diff --git a/.dev/browser/rewrite-lib-type-paths.mjs b/.dev/browser/rewrite-lib-type-paths.mjs deleted file mode 100644 index 2bda265..0000000 --- a/.dev/browser/rewrite-lib-type-paths.mjs +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env node -// Rewrites this repo's `@/` path alias to relative specifiers in the emitted -// declarations under dist/lib/types. -// -// tsc resolves `paths` for type checking but never rewrites them in its output, so -// `export { IchavaBrowser } from '@/IchavaBrowser'` would ship verbatim and resolve to -// nothing in a host. The JS side is resolved by Vite; this is the .d.ts side of the -// same fix (FINDINGS B2). Run after `tsc -p tsconfig.lib.json`. - -import { readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs'; -import { dirname, join, relative, sep } from 'node:path'; -import { fileURLToPath } from 'node:url'; - -const root = join(dirname(fileURLToPath(import.meta.url)), '..'); -const typesDir = join(root, 'dist/lib/types'); - -function walk(dir) { - return readdirSync(dir).flatMap((name) => { - const p = join(dir, name); - return statSync(p).isDirectory() ? walk(p) : p.endsWith('.d.ts') ? [p] : []; - }); -} - -const files = walk(typesDir); -if (files.length === 0) { - console.error(`rewrite-lib-type-paths: no declarations under ${relative(root, typesDir)}; run tsc -p tsconfig.lib.json first`); - process.exit(1); -} - -let rewritten = 0; -for (const file of files) { - const src = readFileSync(file, 'utf8'); - const out = src.replace(/(['"])@\/([^'"]+)\1/g, (_m, q, rest) => { - let rel = relative(dirname(file), join(typesDir, rest)).split(sep).join('/'); - if (!rel.startsWith('.')) rel = `./${rel}`; - rewritten++; - return `${q}${rel}${q}`; - }); - if (out !== src) writeFileSync(file, out); -} -console.log(`rewrite-lib-type-paths: ${files.length} declaration files, ${rewritten} alias specifiers rewritten`); diff --git a/.dev/browser/write-prepaint.mjs b/.dev/browser/write-prepaint.mjs index ddca853..80ccbbb 100644 --- a/.dev/browser/write-prepaint.mjs +++ b/.dev/browser/write-prepaint.mjs @@ -1,16 +1,14 @@ #!/usr/bin/env node -// `npm run build:prepaint`: write resources/vendor/react-icon-browser/prepaint.html from the +// `npm run build:prepaint`: write resources/views/prepaint.html from the // browser's source, resources/js/boot/prepaint.html, with the "Browser" suffix. // -// That file is the one part of the deprecated vendored directory still read at run time: -// the component (src/View/Components/Prepaint.php) inlines -// it. react-icon-browser's library build emitted it (emitPrepaint) and the sync copied it here; -// since react consolidation 3d (2026-11-12) the source lives in this repository, so this writes -// it in place. resources/js/core/prepaint.test.ts fails while the two disagree. +// The component (src/View/Components/Prepaint.php) inlines +// it. It used to sit in the vendored react-icon-browser build, which was removed on 2026-11-13; +// the source lives in this repository, so this writes the fragment beside the package's views. resources/js/core/prepaint.test.ts fails while the two disagree. import { writeFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; import { prepaintFragment } from './prepaint.mjs'; -const target = fileURLToPath(new URL('../../resources/vendor/react-icon-browser/prepaint.html', import.meta.url)); +const target = fileURLToPath(new URL('../../resources/views/prepaint.html', import.meta.url)); writeFileSync(target, `${prepaintFragment({ suffix: 'Browser' })}\n`); -console.log('wrote resources/vendor/react-icon-browser/prepaint.html'); +console.log('wrote resources/views/prepaint.html'); diff --git a/.dev/tools/build-lib.mjs b/.dev/tools/build-lib.mjs deleted file mode 100644 index 02e4600..0000000 --- a/.dev/tools/build-lib.mjs +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env node -// @deprecated since 2026-11-12 (react consolidation 3e). Removal needs the owner's yes; it is -// recorded in the react consolidation audit (deprecations.md). -// -// `npm run build:lib` built @ichava/react-icon-browser as a library (vite.lib.config.ts) in that -// repository, for icon-browser to vendor. The library build is retired (owner, Q2, 2026-11-11): -// the browser's source lives in this repository and `npm run build:prod` builds the committed -// bundle from it. react-icon-browser's config waits, unbuilt, in -// .dev/imported/react-icon-browser/vite.lib.config.ts. This prints the pointer and exits 0. -console.log( - 'build:lib is deprecated: the browser library build is retired.\n' + - 'Run `npm run build:prod`, which builds public/assets from resources/js. See docs/release.md#updating-the-browser-ui.', -); diff --git a/.dev/tools/check-consumers.mjs b/.dev/tools/check-consumers.mjs deleted file mode 100644 index eac7601..0000000 --- a/.dev/tools/check-consumers.mjs +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env node -// @deprecated since 2026-11-12 (react consolidation 3e). Removal needs the owner's yes; it is -// recorded in the react consolidation audit (deprecations.md). -// -// `npm run check:consumers` was react-icon-browser's release gate: it read each consumer's -// vendored.json (this repository's resources/vendor/react-icon-browser among them) and held a -// release while a consumer was behind. The browser's source lives in this repository now, so no -// consumer vendors it and there is nothing to be behind. The real script, a copy of -// js-ui-kernel's config/tools/check-consumers.mjs, is kept unused at -// .dev/browser/check-consumers.mjs. This prints the pointer and exits 0. -console.log( - 'check:consumers is deprecated: nothing vendors the browser any more.\n' + - 'The committed bundle is checked by committed-build.yml instead (npm run build:prod, then git diff public/assets).', -); diff --git a/.dev/tools/sync-react-icon-browser.mjs b/.dev/tools/sync-react-icon-browser.mjs deleted file mode 100644 index 1b3386d..0000000 --- a/.dev/tools/sync-react-icon-browser.mjs +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env node -// @deprecated since 2026-11-12 (react consolidation 3e), by `npm run build:prod`. Removal needs the -// owner's yes; it is recorded in the react consolidation audit (deprecations.md). -// -// This used to vendor the built @ichava/react-icon-browser library from a react-icon-browser -// checkout into resources/vendor/react-icon-browser. The browser's source lives in this -// repository now (resources/js/, imported in react consolidation 3d), and build:prod builds the -// committed bundle from it, so there is nothing to sync. It prints the pointer and exits 0, so a -// script or a habit that still calls it fails nothing and learns the new command. -// vendoredLicense() stays exported, unchanged, for any caller this did not find. - -import { pathToFileURL } from 'node:url'; -import { SyncError } from './sync-vendored-library.mjs'; - -// react-icon-browser's LICENSE says that repository must stay private, which is true there and not -// of the repository this compiled copy ships in. The vendored copy says where the source lives and -// limits the build to Ichava products instead; vendoredLibrary.test.ts pins the wording. -const PRIVATE_CLAUSE = - /This repository\s+must\s+therefore\s+remain\s+private,\s+and\s+its\s+source\s+may\s+be\s+shared\s+only\s+with\s+people\s+who\s+hold\s+their\s+own\s+Untitled\s+UI\s+licence\./; -const VENDORED_CLAUSE = `Their source therefore stays in the private react-icon-browser -repository and may be shared only with people who hold their own Untitled UI -licence. This vendored copy holds only the compiled build, which may be used -as part of Ichava products published by Simtabi LLC and may not be -redistributed outside them.`; - -/** @deprecated since 2026-11-12: nothing vendors react-icon-browser's LICENSE any more. */ -export function vendoredLicense(text) { - if (!PRIVATE_CLAUSE.test(text)) throw new SyncError("react-icon-browser's LICENSE no longer has the must-remain-private clause; update vendoredLicense()"); - return text.replace(PRIVATE_CLAUSE, VENDORED_CLAUSE); -} - -if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) { - console.log( - 'sync:react-icon-browser is deprecated: the browser is built from this repository now.\n' + - 'Edit resources/js/, then run `npm run build:prod` (and `npm run build:prepaint` after a change to\n' + - 'resources/js/boot/prepaint.html). See docs/release.md#updating-the-browser-ui.', - ); -} diff --git a/.gitattributes b/.gitattributes index fe5bc5a..513eca2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -32,4 +32,3 @@ /resources/js/**/*.test.ts export-ignore /resources/js/**/*.test.tsx export-ignore /resources/js/test export-ignore -/resources/vendor/react-icon-browser/DEPRECATED.md export-ignore diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 176ca13..ed73256 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -29,8 +29,8 @@ updates: prefix: 'chore(actions)' include: scope - # The adapter's npm dependencies. The browser UI itself is vendored - # (resources/vendor/react-icon-browser) and updated by its sync script, not here. + # The npm dependencies of the adapter and of the browser UI, whose source is + # resources/js (the vendored react-icon-browser build was removed on 2026-11-13). - package-ecosystem: npm directory: / schedule: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f62357..5f95fe1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ All notable changes to `ichava/icon-browser` follow [Keep a Changelog](https://k ### Removed +- **The deprecated vendored build and its scripts** (owner, 2026-11-13: wire in what can be wired, otherwise remove). `resources/vendor/react-icon-browser` (254 files), `npm run build:lib`, `npm run sync:react-icon-browser` and `npm run check:consumers`, with the library-build checks behind them (`check-lib-build`, `rewrite-lib-type-paths`, `check-public-api` and its snapshot, `check-consumers` and `consumers.json`) and `vendoredLibrary.test.ts`. Nothing imported any of it. The one file still read from it moved: the prepaint component now inlines `resources/views/prepaint.html`, which `npm run build:prepaint` writes. Tailwind no longer scans the old bundle, so `inertia-app.css` loses utilities only it named (181 to 172 KB). `.dev/imported/react-icon-browser/` stays for the e2e port. +- **The ten re-export files for the kernel's shared pieces** (`lib/utils/cx`, `is-react-component`, the avatar base components, radio buttons, toggle, featured icon, `uui-theme.css`): 40 files now import `@ichava/js-ui-kernel/react` directly, and `noDeprecations.test.ts` allows no exceptions. - `CreateCollection::rules()`: its two callers now use `StoreCollectionRequest`, which owns the rules (forward only). - **The vendored-library test reads only `vendored.json`.** The fallback to the old `VENDORED.json` name is removed (forward only, owner 2026-11-05); every consumer writes the lowercase name since #124. - **Payload schema 1.8.0: the `android-vd` (Android VectorDrawable XML) asset export is dropped**, by owner rule (Sim, 2026-11-04): the ichava icon ecosystem is strictly `*.svg`. `$defs/format` and `x-ichava-formats` lose `android-vd` (25 formats), `PayloadSchema::VERSION` is `1.8.0`, and `FormatRegistryTest` now fails if the id returns or if any asset export other than the SVG-carrying `css-mask`, `data-uri`, `flutter` and `swiftui` appears. 1.7.0 was never released, so no published payload named it. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6de9aa3..367a46a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ This package is the HTTP layer of the Ichava ecosystem: the Inertia browser page - PHP tests run with `vendor/bin/pest`; style is `composer pint`, analysis `composer analyse`. - The browser UI is **edited here.** Its source moved from `ichava/react-icon-browser` into `resources/js` on 2026-11-12, beside the Inertia adapter around it ([Architecture](docs/architecture.md#the-browser-ui)). Frontend checks: `npm install`, `npm run typecheck:inertia`, `npm run lint`, `npm run test:js`. -- `resources/vendor/react-icon-browser` is the old vendored build, deprecated and no longer rebuilt. Never hand-edit it; `vendoredLibrary.test.ts` fails on any change its manifest does not record. Its `prepaint.html` is still inlined by the Blade component, and `npm run build:prepaint` writes it from the source. +- The Blade prepaint component inlines `resources/views/prepaint.html`; `npm run build:prepaint` writes it from `resources/js/boot/prepaint.html`, and `prepaint.test.ts` fails while the two disagree. - Production build: `npm run build:prod`. Output goes to `public/assets/` (committed) and is published via `vendor:publish --tag=ichava::icon-browser-assets`. - The source and the bundle contain Untitled UI PRO components, used under the Untitled UI licence as part of this product, not as a kit ([LICENSE](LICENSE), [Architecture](docs/architecture.md#untitled-ui-pro-components)). Add a PRO component only when the browser uses it, keep its header line, and list a new PRO folder in LICENSE; `proLicence.test.ts` checks both. Never copy them into another package, and never commit a source map or `sourcesContent` under `public/`. - Class short names use the constant convention: `IconBrowserServiceProvider`, `IchavaTestIconComponent`, etc. Browser-only classes live under the `Simtabi\Laranail\Ichava\IconBrowser\` namespace. diff --git a/LICENSE b/LICENSE index 7ff02bb..6c4761c 100644 --- a/LICENSE +++ b/LICENSE @@ -24,8 +24,6 @@ and each file opens with a comment saying so. They are also compiled into: - public/assets/js/inertia-app.js and the chunks beside it, and public/assets/css/inertia-app.css (the committed browser bundle, published to host applications) -- resources/vendor/react-icon-browser (the earlier vendored library build, - deprecated and no longer built) The Untitled UI licence does not permit redistributing these components on their own, or as a kit or library. Taking them out of this product, or using @@ -40,8 +38,8 @@ Third-party code in this repository stays under its own licence: except the PRO folders listed above, and those taken from @ichava/js-ui-kernel/react): MIT License, Copyright (c) Untitled UI. https://github.com/untitleduico/react/blob/main/LICENSE -- Geist and Geist Mono fonts (resources/assets/fonts, public/assets/fonts and - resources/vendor/react-icon-browser/fonts): SIL Open Font License 1.1, +- Geist and Geist Mono fonts (resources/assets/fonts and public/assets/fonts): + SIL Open Font License 1.1, Copyright (c) Vercel. See resources/assets/fonts/LICENSE.txt. - Icon assets under resources/assets/svg keep the licence of their upstream icon set. diff --git a/docs/architecture.md b/docs/architecture.md index b33c8a8..6c04be5 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -81,13 +81,14 @@ folder whose files lack that line. Taking these components out of this product, needs your own Untitled UI licence. The 20 Metronic paths in react-icon-browser (its visual baselines of the private Metronic pack) were not imported. -### The vendored build is deprecated - -`resources/vendor/react-icon-browser` stays, unbuilt, with a `DEPRECATED.md`. Nothing imports it. -One file in it is still read at run time: the `` component -inlines its `prepaint.html`. `npm run build:prepaint` writes that file from -`resources/js/boot/prepaint.html`, and a Vitest test fails while the two differ. `build:lib`, -`sync:react-icon-browser` and `check:consumers` print where the work moved and exit 0. +### The vendored build was removed + +`resources/vendor/react-icon-browser` was removed on 2026-11-13, with the `build:lib`, +`sync:react-icon-browser` and `check:consumers` scripts that had only printed where the work +moved. The one file still read from it, `prepaint.html`, now lives at +`resources/views/prepaint.html`: the `` component inlines it, +`npm run build:prepaint` writes it from `resources/js/boot/prepaint.html`, and a Vitest test +fails while the two differ. The look comes with the library: since the 0.1.0 restyle the browser draws Ichava's warm greys, the teal `#0e7c66` default accent, a 6px radius, Tabler chrome icons, square tags and tabs, flat diff --git a/docs/release.md b/docs/release.md index ced1a8c..0782060 100644 --- a/docs/release.md +++ b/docs/release.md @@ -68,7 +68,7 @@ npm run build:prod # then commit public/assets npm run build:prepaint # only when resources/js/boot/prepaint.html changed ``` -`npm run sync:react-icon-browser` and `npm run build:lib` are deprecated: they print this and exit 0. The vendored directory, `resources/vendor/react-icon-browser`, is no longer rebuilt. +`npm run build:prepaint` writes `resources/views/prepaint.html`, which the prepaint component inlines; commit it with the bundle. The vendored `resources/vendor/react-icon-browser` and its `sync:react-icon-browser` and `build:lib` scripts were removed on 2026-11-13. The source and the committed bundle contain Untitled UI PRO components, used under the Untitled UI licence as part of this product ([LICENSE](../LICENSE), [Architecture](architecture.md#untitled-ui-pro-components)). The repository is public (decided 2026-10-30) and the package stays proprietary. A release tag on the public repository publishes normally: `release.yml` does not gate on repository visibility. Its other safeguards stand, namely the tag-only trigger, the refusal of any ref that is not a `vX.Y.Z` tag, and the changelog section it extracts and fails closed without. diff --git a/package.json b/package.json index a80f4ff..9a157d7 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,6 @@ "test:js:watch": "vitest", "typecheck:inertia": "tsc -p tsconfig.inertia.json", "build:prepaint": "node .dev/browser/write-prepaint.mjs", - "sync:react-icon-browser": "node .dev/tools/sync-react-icon-browser.mjs", - "build:lib": "node .dev/tools/build-lib.mjs", - "check:consumers": "node .dev/tools/check-consumers.mjs", "lint": "eslint resources/js --max-warnings 0", "ci:manual": "node .dev/tools/manual-ci.mjs", "e2e": "playwright test --config e2e/playwright.config.ts" diff --git a/public/assets/css/inertia-app.css b/public/assets/css/inertia-app.css index 3e0cb99..7bd75c7 100644 --- a/public/assets/css/inertia-app.css +++ b/public/assets/css/inertia-app.css @@ -1,3 +1,3 @@ /*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}@scope([data-ichava-theme]){:scope,*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-mask-linear:linear-gradient(#fff, #fff);--tw-mask-radial:linear-gradient(#fff, #fff);--tw-mask-conic:linear-gradient(#fff, #fff);--tw-mask-left:linear-gradient(#fff, #fff);--tw-mask-right:linear-gradient(#fff, #fff);--tw-mask-bottom:linear-gradient(#fff, #fff);--tw-mask-top:linear-gradient(#fff, #fff);--tw-mask-bottom-from-position:0%;--tw-mask-bottom-to-position:100%;--tw-mask-bottom-from-color:black;--tw-mask-bottom-to-color:transparent}}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}[data-ichava-theme]{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, "Roboto Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-indigo-950:oklch(25.7% .09 281.288);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-fuchsia-900:oklch(40.1% .17 325.612);--color-fuchsia-950:oklch(29.3% .136 325.661);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-pink-800:oklch(45.9% .187 3.815);--color-pink-900:oklch(40.8% .153 2.432);--color-pink-950:oklch(28.4% .109 3.907);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-neutral-50:#f6f4ee;--color-neutral-100:#ece8de;--color-neutral-200:#ded8cb;--color-neutral-300:#cbc4b4;--color-neutral-400:#a8a192;--color-neutral-500:#67635a;--color-neutral-600:#5e5a52;--color-neutral-700:#47443e;--color-neutral-800:#2f2b24;--color-neutral-900:#1f1c17;--color-neutral-950:#14120e;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:calc(var(--spacing) * 3);--text-xs--line-height:calc(var(--spacing) * 4.5);--text-sm:calc(var(--spacing) * 3.5);--text-sm--line-height:calc(var(--spacing) * 5);--text-lg:calc(var(--spacing) * 4.5);--text-lg--line-height:calc(var(--spacing) * 7);--text-xl:calc(var(--spacing) * 5);--text-xl--line-height:calc(var(--spacing) * 7.5);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:500;--font-weight-bold:600;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-xs:0px 1px 0px #12110f0a;--shadow-sm:0px 1px 2px #12110f0f;--shadow-lg:0px 1px 2px #12110f0f, 0px 12px 32px -12px #12110f3d;--shadow-xl:0px 1px 2px #12110f14, 0px 20px 48px -16px #12110f4d;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-body:var(--font-inter,"Inter"), -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--text-md:calc(var(--spacing) * 4);--text-md--line-height:calc(var(--spacing) * 6);--text-display-xs:calc(var(--spacing) * 6);--text-display-xs--line-height:calc(var(--spacing) * 8);--text-display-sm:calc(var(--spacing) * 7.5);--text-display-sm--line-height:calc(var(--spacing) * 9.5);--max-width-container:1280px;--radius-none:0px;--radius-DEFAULT:.25rem;--radius-full:9999px;--shadow-skeuomorphic:0px 0px 0px 0px transparent;--color-transparent:#0000;--color-alpha-white:#fff;--color-alpha-black:#000;--color-brand-50:#f9f5ff;--color-brand-100:#f4ebff;--color-brand-200:#e9d7fe;--color-brand-300:#d6bbfb;--color-brand-400:#b692f6;--color-brand-500:#9e77ed;--color-brand-600:#7f56d9;--color-brand-700:#6941c6;--color-brand-800:#53389e;--color-brand-900:#42307d;--color-brand-950:#2c1c5f;--color-utility-blue-50:var(--color-blue-50);--color-utility-blue-100:var(--color-blue-100);--color-utility-blue-200:var(--color-blue-200);--color-utility-blue-400:var(--color-blue-400);--color-utility-blue-500:var(--color-blue-500);--color-utility-blue-700:var(--color-blue-700);--color-utility-brand-50:var(--color-brand-50);--color-utility-brand-100:var(--color-brand-100);--color-utility-brand-200:var(--color-brand-200);--color-utility-brand-400:var(--color-brand-400);--color-utility-brand-500:var(--color-brand-500);--color-utility-brand-700:var(--color-brand-700);--color-utility-neutral-50:var(--color-neutral-50);--color-utility-neutral-100:var(--color-neutral-100);--color-utility-neutral-200:var(--color-neutral-200);--color-utility-neutral-300:var(--color-neutral-300);--color-utility-neutral-400:var(--color-neutral-400);--color-utility-neutral-500:var(--color-neutral-500);--color-utility-neutral-600:var(--color-neutral-600);--color-utility-neutral-700:var(--color-neutral-700);--color-utility-neutral-800:var(--color-neutral-800);--color-utility-neutral-900:var(--color-neutral-900);--color-utility-red-50:var(--color-red-50);--color-utility-red-100:var(--color-red-100);--color-utility-red-200:var(--color-red-200);--color-utility-red-400:var(--color-red-400);--color-utility-red-500:var(--color-red-500);--color-utility-red-700:var(--color-red-700);--color-utility-yellow-50:var(--color-yellow-50);--color-utility-yellow-100:var(--color-yellow-100);--color-utility-yellow-200:var(--color-yellow-200);--color-utility-yellow-400:var(--color-yellow-400);--color-utility-yellow-500:var(--color-yellow-500);--color-utility-yellow-700:var(--color-yellow-700);--color-utility-green-50:var(--color-green-50);--color-utility-green-100:var(--color-green-100);--color-utility-green-200:var(--color-green-200);--color-utility-green-400:var(--color-green-400);--color-utility-green-500:var(--color-green-500);--color-utility-green-700:var(--color-green-700);--color-utility-orange-50:var(--color-orange-50);--color-utility-orange-100:var(--color-orange-100);--color-utility-orange-200:var(--color-orange-200);--color-utility-orange-400:var(--color-orange-400);--color-utility-orange-500:var(--color-orange-500);--color-utility-orange-700:var(--color-orange-700);--color-utility-indigo-50:var(--color-indigo-50);--color-utility-indigo-100:var(--color-indigo-100);--color-utility-indigo-200:var(--color-indigo-200);--color-utility-indigo-400:var(--color-indigo-400);--color-utility-indigo-500:var(--color-indigo-500);--color-utility-indigo-700:var(--color-indigo-700);--color-utility-pink-50:var(--color-pink-50);--color-utility-pink-100:var(--color-pink-100);--color-utility-pink-200:var(--color-pink-200);--color-utility-pink-400:var(--color-pink-400);--color-utility-pink-500:var(--color-pink-500);--color-utility-pink-700:var(--color-pink-700);--color-utility-purple-50:var(--color-purple-50);--color-utility-purple-100:var(--color-purple-100);--color-utility-purple-200:var(--color-purple-200);--color-utility-purple-400:var(--color-purple-400);--color-utility-purple-500:var(--color-purple-500);--color-utility-purple-700:var(--color-purple-700);--color-utility-sky-50:var(--color-sky-50);--color-utility-sky-100:var(--color-sky-100);--color-utility-sky-200:var(--color-sky-200);--color-utility-sky-400:var(--color-sky-400);--color-utility-sky-500:var(--color-sky-500);--color-utility-sky-700:var(--color-sky-700);--color-utility-slate-50:var(--color-slate-50);--color-utility-slate-100:var(--color-slate-100);--color-utility-slate-200:var(--color-slate-200);--color-utility-slate-400:var(--color-slate-400);--color-utility-slate-500:var(--color-slate-500);--color-utility-slate-700:var(--color-slate-700);--color-text-primary:var(--color-neutral-900);--color-text-tertiary:var(--color-neutral-600);--color-text-error-primary:var(--color-red-600);--color-text-warning-primary:var(--color-yellow-600);--color-text-success-primary:var(--color-green-600);--color-text-white:var(--color-white);--color-text-secondary:var(--color-neutral-700);--color-text-secondary_hover:var(--color-neutral-800);--color-text-tertiary_hover:var(--color-neutral-700);--color-text-brand-secondary:var(--color-brand-700);--color-text-placeholder:var(--color-neutral-500);--color-text-brand-tertiary:var(--color-brand-600);--color-text-editor-icon-fg:var(--color-neutral-400);--color-text-editor-icon-fg_active:var(--color-neutral-500);--color-text-quaternary:var(--color-neutral-500);--color-text-brand-primary:var(--color-brand-900);--color-text-primary_on-brand:var(--color-white);--color-text-secondary_on-brand:var(--color-brand-200);--color-text-tertiary_on-brand:var(--color-brand-200);--color-text-quaternary_on-brand:var(--color-brand-300);--color-text-brand-tertiary_alt:var(--color-brand-600);--color-text-error-primary_hover:var(--color-red-700);--color-text-brand-secondary_hover:var(--color-brand-800);--color-border-primary:var(--color-neutral-300);--color-border-secondary:var(--color-neutral-200);--color-border-secondary_alt:#0000001a;--color-border-tertiary:var(--color-neutral-100);--color-border-error:var(--color-red-500);--color-border-error_subtle:var(--color-red-300);--color-border-brand:var(--color-brand-500);--color-border-brand_alt:var(--color-brand-600);--color-fg-secondary:var(--color-neutral-700);--color-fg-warning-primary:var(--color-yellow-600);--color-fg-success-primary:var(--color-green-600);--color-fg-white:var(--color-white);--color-fg-success-secondary:var(--color-green-500);--color-fg-secondary_hover:var(--color-neutral-800);--color-fg-brand-secondary:var(--color-brand-500);--color-fg-brand-primary:var(--color-brand-600);--color-fg-quaternary:var(--color-neutral-400);--color-fg-quaternary_hover:var(--color-neutral-500);--color-fg-error-primary:var(--color-red-600);--color-fg-error-secondary:var(--color-red-500);--color-fg-tertiary:var(--color-neutral-600);--color-fg-brand-primary_alt:var(--color-fg-brand-primary);--color-fg-brand-secondary_alt:var(--color-fg-brand-secondary);--color-fg-brand-secondary_hover:var(--color-brand-600);--color-bg-primary:var(--color-white);--color-bg-tertiary:var(--color-neutral-100);--color-bg-brand-primary:var(--color-brand-50);--color-bg-error-secondary:var(--color-red-100);--color-bg-warning-primary:var(--color-yellow-50);--color-bg-warning-secondary:var(--color-yellow-100);--color-bg-success-primary:var(--color-green-50);--color-bg-success-secondary:var(--color-green-100);--color-bg-brand-solid:var(--color-brand-600);--color-bg-secondary-solid:var(--color-neutral-600);--color-bg-error-solid:var(--color-red-600);--color-bg-warning-solid:var(--color-yellow-600);--color-bg-success-solid:var(--color-green-600);--color-bg-secondary_hover:var(--color-neutral-100);--color-bg-primary_hover:var(--color-neutral-50);--color-bg-active:var(--color-neutral-50);--color-bg-brand-solid_hover:var(--color-brand-700);--color-bg-error-primary:var(--color-red-50);--color-bg-brand-secondary:var(--color-brand-100);--color-bg-secondary:var(--color-neutral-50);--color-bg-quaternary:var(--color-neutral-200);--color-bg-primary_alt:var(--color-white);--color-bg-brand-primary_alt:var(--color-brand-50);--color-bg-secondary_alt:var(--color-neutral-50);--color-bg-overlay:var(--color-neutral-950);--color-bg-brand-section:var(--color-brand-800);--color-bg-brand-section_subtle:var(--color-brand-700);--color-bg-primary-solid:var(--color-neutral-950);--color-bg-error-solid_hover:var(--color-red-700);--color-featured-icon-light-fg-brand:var(--color-brand-600);--color-featured-icon-light-fg-error:var(--color-red-600);--color-featured-icon-light-fg-gray:var(--color-neutral-500);--color-featured-icon-light-fg-success:var(--color-green-600);--color-featured-icon-light-fg-warning:var(--color-yellow-600);--color-focus-ring:var(--color-brand-500);--color-icon-fg-brand:var(--color-brand-600);--color-slider-handle-bg:var(--color-white);--color-slider-handle-border:var(--color-brand-600);--color-toggle-border:var(--color-neutral-300);--color-toggle-slim-border_pressed-hover:var(--color-bg-brand-solid_hover);--color-toggle-slim-border_pressed:var(--color-bg-brand-solid);--color-tooltip-supporting-text:var(--color-neutral-300);--background-color-primary:var(--color-bg-primary);--background-color-tertiary:var(--color-bg-tertiary);--background-color-error-secondary:var(--color-bg-error-secondary);--background-color-warning-secondary:var(--color-bg-warning-secondary);--background-color-success-secondary:var(--color-bg-success-secondary);--background-color-brand-solid:var(--color-bg-brand-solid);--background-color-secondary-solid:var(--color-bg-secondary-solid);--background-color-error-solid:var(--color-bg-error-solid);--background-color-warning-solid:var(--color-bg-warning-solid);--background-color-success-solid:var(--color-bg-success-solid);--background-color-secondary_hover:var(--color-bg-secondary_hover);--background-color-primary_hover:var(--color-bg-primary_hover);--background-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--background-color-error-primary:var(--color-bg-error-primary);--background-color-brand-secondary:var(--color-bg-brand-secondary);--background-color-secondary:var(--color-bg-secondary);--background-color-quaternary:var(--color-bg-quaternary);--background-color-primary_alt:var(--color-bg-primary_alt);--background-color-brand-primary_alt:var(--color-bg-brand-primary_alt);--background-color-secondary_alt:var(--color-bg-secondary_alt);--background-color-overlay:var(--color-bg-overlay);--background-color-brand-section:var(--color-bg-brand-section);--background-color-brand-section_subtle:var(--color-bg-brand-section_subtle);--background-color-primary-solid:var(--color-bg-primary-solid);--background-color-error-solid_hover:var(--color-bg-error-solid_hover);--text-color-primary:var(--color-text-primary);--text-color-secondary:var(--color-text-secondary);--text-color-secondary_hover:var(--color-text-secondary_hover);--text-color-tertiary:var(--color-text-tertiary);--text-color-tertiary_hover:var(--color-text-tertiary_hover);--text-color-error-primary:var(--color-text-error-primary);--text-color-brand-secondary:var(--color-text-brand-secondary);--text-color-placeholder:var(--color-text-placeholder);--text-color-brand-tertiary:var(--color-text-brand-tertiary);--text-color-quaternary:var(--color-text-quaternary);--text-color-brand-primary:var(--color-text-brand-primary);--text-color-primary_on-brand:var(--color-text-primary_on-brand);--text-color-tertiary_on-brand:var(--color-text-tertiary_on-brand);--text-color-error-primary_hover:var(--color-text-error-primary_hover);--text-color-brand-secondary_hover:var(--color-text-brand-secondary_hover);--text-color-tooltip-supporting-text:var(--color-tooltip-supporting-text);--border-color-primary:var(--color-border-primary);--border-color-secondary:var(--color-border-secondary);--border-color-brand:var(--color-border-brand);--ring-color-primary:var(--color-border-primary);--ring-color-secondary:var(--color-border-secondary);--ring-color-secondary_alt:var(--color-border-secondary_alt);--ring-color-error:var(--color-border-error);--ring-color-error_subtle:var(--color-border-error_subtle);--ring-color-brand:var(--color-border-brand);--ring-color-brand-solid:var(--color-bg-brand-solid);--outline-color-error:var(--color-border-error);--outline-color-brand:var(--color-border-brand)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@scope([data-ichava-theme]){:scope,*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:scope,html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){@scope([data-ichava-theme]){::placeholder{color:currentColor}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}}@scope([data-ichava-theme]){textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}[data-ichava-theme].dark-mode{--color-alpha-white:#0c0e12;--color-alpha-black:#fff;--color-utility-blue-50:var(--color-blue-950);--color-utility-blue-100:var(--color-blue-900);--color-utility-blue-200:var(--color-blue-800);--color-utility-blue-300:var(--color-blue-700);--color-utility-blue-400:var(--color-blue-600);--color-utility-blue-500:var(--color-blue-500);--color-utility-blue-600:var(--color-blue-400);--color-utility-blue-700:var(--color-blue-300);--color-utility-brand-50:var(--color-brand-950);--color-utility-brand-50_alt:var(--color-utility-neutral-50);--color-utility-brand-100:var(--color-brand-900);--color-utility-brand-100_alt:var(--color-utility-neutral-100);--color-utility-brand-200:var(--color-brand-800);--color-utility-brand-200_alt:var(--color-utility-neutral-200);--color-utility-brand-300:var(--color-brand-700);--color-utility-brand-300_alt:var(--color-utility-neutral-300);--color-utility-brand-400:var(--color-brand-600);--color-utility-brand-400_alt:var(--color-utility-neutral-400);--color-utility-brand-500:var(--color-brand-500);--color-utility-brand-500_alt:var(--color-utility-neutral-500);--color-utility-brand-600:var(--color-brand-400);--color-utility-brand-600_alt:var(--color-utility-neutral-600);--color-utility-brand-700:var(--color-brand-300);--color-utility-brand-700_alt:var(--color-utility-neutral-700);--color-utility-brand-800:var(--color-brand-200);--color-utility-brand-800_alt:var(--color-utility-neutral-800);--color-utility-brand-900:var(--color-brand-100);--color-utility-brand-900_alt:var(--color-utility-neutral-900);--color-utility-neutral-50:var(--color-neutral-900);--color-utility-neutral-100:var(--color-neutral-800);--color-utility-neutral-200:var(--color-neutral-700);--color-utility-neutral-300:var(--color-neutral-700);--color-utility-neutral-400:var(--color-neutral-600);--color-utility-neutral-500:var(--color-neutral-500);--color-utility-neutral-600:var(--color-neutral-400);--color-utility-neutral-700:var(--color-neutral-300);--color-utility-neutral-800:var(--color-neutral-200);--color-utility-neutral-900:var(--color-neutral-100);--color-utility-red-50:var(--color-red-950);--color-utility-red-100:var(--color-red-900);--color-utility-red-200:var(--color-red-800);--color-utility-red-300:var(--color-red-700);--color-utility-red-400:var(--color-red-600);--color-utility-red-500:var(--color-red-500);--color-utility-red-600:var(--color-red-400);--color-utility-red-700:var(--color-red-300);--color-utility-yellow-50:var(--color-yellow-950);--color-utility-yellow-100:var(--color-yellow-900);--color-utility-yellow-200:var(--color-yellow-800);--color-utility-yellow-300:var(--color-yellow-700);--color-utility-yellow-400:var(--color-yellow-600);--color-utility-yellow-500:var(--color-yellow-500);--color-utility-yellow-600:var(--color-yellow-400);--color-utility-yellow-700:var(--color-yellow-300);--color-utility-green-50:var(--color-green-950);--color-utility-green-100:var(--color-green-900);--color-utility-green-200:var(--color-green-800);--color-utility-green-300:var(--color-green-700);--color-utility-green-400:var(--color-green-600);--color-utility-green-500:var(--color-green-500);--color-utility-green-600:var(--color-green-400);--color-utility-green-700:var(--color-green-300);--color-utility-orange-50:var(--color-orange-950);--color-utility-orange-100:var(--color-orange-900);--color-utility-orange-200:var(--color-orange-800);--color-utility-orange-300:var(--color-orange-700);--color-utility-orange-400:var(--color-orange-600);--color-utility-orange-500:var(--color-orange-500);--color-utility-orange-600:var(--color-orange-400);--color-utility-orange-700:var(--color-orange-300);--color-utility-indigo-50:var(--color-indigo-950);--color-utility-indigo-100:var(--color-indigo-900);--color-utility-indigo-200:var(--color-indigo-800);--color-utility-indigo-300:var(--color-indigo-700);--color-utility-indigo-400:var(--color-indigo-600);--color-utility-indigo-500:var(--color-indigo-500);--color-utility-indigo-600:var(--color-indigo-400);--color-utility-indigo-700:var(--color-indigo-300);--color-utility-fuchsia-50:var(--color-fuchsia-950);--color-utility-fuchsia-100:var(--color-fuchsia-900);--color-utility-fuchsia-200:var(--color-fuchsia-800);--color-utility-fuchsia-300:var(--color-fuchsia-700);--color-utility-fuchsia-400:var(--color-fuchsia-600);--color-utility-fuchsia-500:var(--color-fuchsia-500);--color-utility-fuchsia-600:var(--color-fuchsia-400);--color-utility-fuchsia-700:var(--color-fuchsia-300);--color-utility-pink-50:var(--color-pink-950);--color-utility-pink-100:var(--color-pink-900);--color-utility-pink-200:var(--color-pink-800);--color-utility-pink-300:var(--color-pink-700);--color-utility-pink-400:var(--color-pink-600);--color-utility-pink-500:var(--color-pink-500);--color-utility-pink-600:var(--color-pink-400);--color-utility-pink-700:var(--color-pink-300);--color-utility-purple-50:var(--color-purple-950);--color-utility-purple-100:var(--color-purple-900);--color-utility-purple-200:var(--color-purple-800);--color-utility-purple-300:var(--color-purple-700);--color-utility-purple-400:var(--color-purple-600);--color-utility-purple-500:var(--color-purple-500);--color-utility-purple-600:var(--color-purple-400);--color-utility-purple-700:var(--color-purple-300);--color-utility-sky-50:var(--color-sky-950);--color-utility-sky-100:var(--color-sky-900);--color-utility-sky-200:var(--color-sky-800);--color-utility-sky-300:var(--color-sky-700);--color-utility-sky-400:var(--color-sky-600);--color-utility-sky-500:var(--color-sky-500);--color-utility-sky-600:var(--color-sky-400);--color-utility-sky-700:var(--color-sky-300);--color-utility-slate-50:var(--color-slate-950);--color-utility-slate-100:var(--color-slate-900);--color-utility-slate-200:var(--color-slate-800);--color-utility-slate-300:var(--color-slate-700);--color-utility-slate-400:var(--color-slate-600);--color-utility-slate-500:var(--color-slate-500);--color-utility-slate-600:var(--color-slate-400);--color-utility-slate-700:var(--color-slate-300);--color-utility-emerald-50:var(--color-emerald-950);--color-utility-emerald-100:var(--color-emerald-900);--color-utility-emerald-200:var(--color-emerald-800);--color-utility-emerald-300:var(--color-emerald-700);--color-utility-emerald-400:var(--color-emerald-600);--color-utility-emerald-500:var(--color-emerald-500);--color-utility-emerald-600:var(--color-emerald-400);--color-utility-emerald-700:var(--color-emerald-300);--color-utility-amber-50:var(--color-amber-950);--color-utility-amber-100:var(--color-amber-900);--color-utility-amber-200:var(--color-amber-800);--color-utility-amber-300:var(--color-amber-700);--color-utility-amber-400:var(--color-amber-600);--color-utility-amber-500:var(--color-amber-500);--color-utility-amber-600:var(--color-amber-400);--color-utility-amber-700:var(--color-amber-300);--color-text-primary:var(--color-neutral-50);--color-text-tertiary:var(--color-neutral-400);--color-text-error-primary:var(--color-red-400);--color-text-warning-primary:var(--color-yellow-400);--color-text-success-primary:var(--color-green-400);--color-text-white:var(--color-white);--color-text-secondary:var(--color-neutral-300);--color-text-secondary_hover:var(--color-neutral-200);--color-text-tertiary_hover:var(--color-neutral-300);--color-text-brand-secondary:var(--color-neutral-300);--color-text-placeholder:var(--color-neutral-500);--color-text-brand-tertiary:var(--color-neutral-400);--color-text-editor-icon-fg:var(--color-neutral-400);--color-text-editor-icon-fg_active:var(--color-white);--color-text-quaternary:var(--color-neutral-400);--color-text-brand-primary:var(--color-neutral-50);--color-text-primary_on-brand:var(--color-neutral-50);--color-text-secondary_on-brand:var(--color-neutral-300);--color-text-tertiary_on-brand:var(--color-neutral-400);--color-text-quaternary_on-brand:var(--color-neutral-400);--color-text-brand-tertiary_alt:var(--color-neutral-50);--color-text-error-primary_hover:var(--color-red-300);--color-text-brand-secondary_hover:var(--color-neutral-200);--color-border-secondary:var(--color-neutral-800);--color-border-error_subtle:var(--color-red-500);--color-border-primary:var(--color-neutral-700);--color-border-brand:var(--color-brand-400);--color-border-error:var(--color-red-400);--color-border-tertiary:var(--color-neutral-800);--color-border-brand_alt:var(--color-neutral-700);--color-border-secondary_alt:var(--color-neutral-800);--color-fg-secondary:var(--color-neutral-300);--color-fg-warning-primary:var(--color-yellow-500);--color-fg-success-primary:var(--color-green-500);--color-fg-white:var(--color-white);--color-fg-success-secondary:var(--color-green-400);--color-fg-secondary_hover:var(--color-neutral-200);--color-fg-primary:var(--color-white);--color-fg-brand-secondary:var(--color-brand-500);--color-fg-brand-primary:var(--color-brand-500);--color-fg-quaternary:var(--color-neutral-600);--color-fg-quaternary_hover:var(--color-neutral-500);--color-fg-error-primary:var(--color-red-500);--color-fg-warning-secondary:var(--color-yellow-400);--color-fg-error-secondary:var(--color-red-400);--color-fg-tertiary:var(--color-neutral-400);--color-fg-tertiary_hover:var(--color-neutral-300);--color-fg-brand-primary_alt:var(--color-neutral-300);--color-fg-brand-secondary_alt:var(--color-neutral-600);--color-fg-brand-secondary_hover:var(--color-neutral-500);--color-bg-primary:var(--color-neutral-950);--color-bg-tertiary:var(--color-neutral-800);--color-bg-brand-primary:var(--color-brand-500);--color-bg-error-secondary:var(--color-red-600);--color-bg-warning-primary:var(--color-yellow-950);--color-bg-warning-secondary:var(--color-yellow-600);--color-bg-success-primary:var(--color-green-950);--color-bg-success-secondary:var(--color-green-600);--color-bg-brand-solid:var(--color-brand-600);--color-bg-secondary-solid:var(--color-neutral-600);--color-bg-error-solid:var(--color-red-600);--color-bg-warning-solid:var(--color-yellow-600);--color-bg-success-solid:var(--color-green-600);--color-bg-secondary_hover:var(--color-neutral-800);--color-bg-primary_hover:var(--color-neutral-900);--color-bg-active:var(--color-neutral-800);--color-bg-brand-solid_hover:var(--color-brand-500);--color-bg-error-primary:var(--color-red-950);--color-bg-brand-secondary:var(--color-brand-600);--color-bg-secondary:var(--color-neutral-900);--color-bg-quaternary:var(--color-neutral-700);--color-bg-primary_alt:var(--color-bg-secondary);--color-bg-brand-primary_alt:var(--color-bg-secondary);--color-bg-secondary_alt:var(--color-bg-primary);--color-bg-overlay:var(--color-neutral-800);--color-bg-brand-section:var(--color-bg-secondary);--color-bg-brand-section_subtle:var(--color-bg-primary);--color-bg-primary-solid:var(--color-bg-secondary);--color-bg-error-solid_hover:var(--color-red-500);--color-app-store-badg-border:var(--color-white);--color-avatar-styles-bg-neutral:224 224 224 1;--color-featured-icon-light-fg-brand:var(--color-brand-200);--color-featured-icon-light-fg-error:var(--color-red-200);--color-featured-icon-light-fg-gray:var(--color-neutral-200);--color-featured-icon-light-fg-success:var(--color-green-200);--color-featured-icon-light-fg-warning:var(--color-yellow-200);--color-focus-ring-error:var(--color-red-500);--color-focus-ring:var(--color-brand-500);--color-footer-button-fg:var(--color-neutral-300);--color-footer-button-fg_hover:var(--color-neutral-100);--color-icon-fg-brand:var(--color-neutral-400);--color-icon-fg-brand_on-brand:var(--color-neutral-400);--color-screen-mockup-border:var(--color-neutral-700);--color-slider-handle-bg:var(--color-fg-brand-primary);--color-slider-handle-border:var(--color-bg-primary);--color-toggle-border:var(--color-transparent);--color-toggle-slim-border_pressed-hover:var(--color-transparent);--color-toggle-slim-border_pressed:var(--color-transparent);--color-tooltip-supporting-text:var(--color-neutral-300);--background-color-primary:var(--color-bg-primary);--background-color-tertiary:var(--color-bg-tertiary);--background-color-brand-primary:var(--color-bg-brand-primary);--background-color-error-secondary:var(--color-bg-error-secondary);--background-color-warning-primary:var(--color-bg-warning-primary);--background-color-warning-secondary:var(--color-bg-warning-secondary);--background-color-success-primary:var(--color-bg-success-primary);--background-color-success-secondary:var(--color-bg-success-secondary);--background-color-brand-solid:var(--color-bg-brand-solid);--background-color-secondary-solid:var(--color-bg-secondary-solid);--background-color-error-solid:var(--color-bg-error-solid);--background-color-warning-solid:var(--color-bg-warning-solid);--background-color-success-solid:var(--color-bg-success-solid);--background-color-secondary_hover:var(--color-bg-secondary_hover);--background-color-primary_hover:var(--color-bg-primary_hover);--background-color-active:var(--color-bg-active);--background-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--background-color-error-primary:var(--color-bg-error-primary);--background-color-brand-secondary:var(--color-bg-brand-secondary);--background-color-secondary:var(--color-bg-secondary);--background-color-quaternary:var(--color-bg-quaternary);--background-color-primary_alt:var(--color-bg-primary_alt);--background-color-brand-primary_alt:var(--color-bg-brand-primary_alt);--background-color-secondary_alt:var(--color-bg-secondary_alt);--background-color-overlay:var(--color-bg-overlay);--background-color-brand-section:var(--color-bg-brand-section);--background-color-brand-section_subtle:var(--color-bg-brand-section_subtle);--background-color-primary-solid:var(--color-bg-primary-solid);--background-color-error-solid_hover:var(--color-bg-error-solid_hover);--background-color-border-brand:var(--color-border-brand);--background-color-border-tertiary:var(--color-border-tertiary);--background-color-border-brand_alt:var(--color-border-brand_alt);--text-color-primary:var(--color-text-primary);--text-color-tertiary:var(--color-text-tertiary);--text-color-error-primary:var(--color-text-error-primary);--text-color-warning-primary:var(--color-text-warning-primary);--text-color-success-primary:var(--color-text-success-primary);--text-color-white:var(--color-text-white);--text-color-secondary:var(--color-text-secondary);--text-color-secondary_hover:var(--color-text-secondary_hover);--text-color-tertiary_hover:var(--color-text-tertiary_hover);--text-color-brand-secondary:var(--color-text-brand-secondary);--text-color-placeholder:var(--color-text-placeholder);--text-color-brand-tertiary:var(--color-text-brand-tertiary);--text-color-editor-icon-fg:var(--color-text-editor-icon-fg);--text-color-editor-icon-fg_active:var(--color-text-editor-icon-fg_active);--text-color-quaternary:var(--color-text-quaternary);--text-color-brand-primary:var(--color-text-brand-primary);--text-color-primary_on-brand:var(--color-text-primary_on-brand);--text-color-secondary_on-brand:var(--color-text-secondary_on-brand);--text-color-tertiary_on-brand:var(--color-text-tertiary_on-brand);--text-color-quaternary_on-brand:var(--color-text-quaternary_on-brand);--text-color-brand-tertiary_alt:var(--color-text-brand-tertiary_alt);--text-color-error-primary_hover:var(--color-text-error-primary_hover);--text-color-brand-secondary_hover:var(--color-text-brand-secondary_hover);--text-color-tooltip-supporting-text:var(--color-tooltip-supporting-text);--border-color-primary:var(--color-border-primary);--border-color-secondary:var(--color-border-secondary);--border-color-secondary_alt:var(--color-border-secondary_alt);--border-color-tertiary:var(--color-border-tertiary);--border-color-error:var(--color-border-error);--border-color-error_subtle:var(--color-border-error_subtle);--border-color-brand:var(--color-border-brand);--border-color-brand_alt:var(--color-border-brand_alt);--border-color-brand-solid:var(--color-bg-brand-solid);--border-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--ring-color-primary:var(--color-border-primary);--ring-color-secondary:var(--color-border-secondary);--ring-color-secondary_alt:var(--color-border-secondary_alt);--ring-color-tertiary:var(--color-border-tertiary);--ring-color-error:var(--color-border-error);--ring-color-error_subtle:var(--color-border-error_subtle);--ring-color-brand:var(--color-border-brand);--ring-color-brand-solid:var(--color-bg-brand-solid);--ring-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--ring-color-brand_alt:var(--color-border-brand_alt);--outline-color-primary:var(--color-border-primary);--outline-color-secondary:var(--color-border-secondary);--outline-color-secondary_alt:var(--color-border-secondary_alt);--outline-color-tertiary:var(--color-border-tertiary);--outline-color-error:var(--color-border-error);--outline-color-error_subtle:var(--color-border-error_subtle);--outline-color-brand:var(--color-border-brand);--outline-color-brand-solid:var(--color-bg-brand-solid);--outline-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--outline-color-brand_alt:var(--color-border-brand_alt)}[data-ichava-root] :is(h1,h2,h3),[data-ichava-portal] :is(h1,h2,h3){letter-spacing:-.01em}[data-ichava-theme]{--font-inter:"Geist";--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-sans:var(--font-body);--bg:var(--color-bg-primary);--fg:var(--color-text-primary);--card:var(--color-bg-primary);--pop:var(--surface);--muted:var(--color-bg-secondary);--muted2:var(--color-bg-tertiary);--z-overlay:60;--z-popover:70;--z-tooltip:80;--z-toast:90;--canvas:var(--color-bg-secondary);--surface:var(--color-bg-primary);--muted-fg:var(--color-text-tertiary);--faint-fg:var(--color-text-quaternary);--border:var(--color-border-primary);--input:var(--color-border-primary);--danger:var(--color-fg-error-primary);--danger-soft:var(--color-bg-error-primary);--success:var(--color-fg-success-primary);--warning:var(--color-fg-warning-primary);--info:var(--color-fg-brand-primary);--shadow:var(--shadow-xs);--shadow-elevated:var(--shadow-lg);--overlay:var(--color-bg-overlay);--code:var(--color-bg-secondary);--tip-bg:var(--color-bg-primary-solid);--tip-fg:var(--color-text-primary_on-brand);--accent:var(--color-bg-brand-solid);--ichm-glow-color:var(--accent);--accent-fg:var(--color-text-white);--accent-soft:var(--color-bg-brand-primary);--ring:var(--color-border-brand);--radius:var(--radius-lg);--console-bg:#0b0b0e;--console-chrome:#18181b;--console-border:#26262b;--console-fg:#e4e4e7;--console-gutter:#7e7e88;--console-comment:#8b8b96;--console-string:#6ee7b7;--console-number:#fbbf24;--console-keyword:#c4b5fd;--console-punct:#94a3b8}:where([data-ichava-theme]){--color-utility-brand-50:var(--color-brand-50);--color-utility-brand-50_alt:var(--color-brand-50);--color-utility-brand-100:var(--color-brand-100);--color-utility-brand-100_alt:var(--color-brand-100);--color-utility-brand-200:var(--color-brand-200);--color-utility-brand-200_alt:var(--color-brand-200);--color-utility-brand-300:var(--color-brand-300);--color-utility-brand-300_alt:var(--color-brand-300);--color-utility-brand-400:var(--color-brand-400);--color-utility-brand-400_alt:var(--color-brand-400);--color-utility-brand-500:var(--color-brand-500);--color-utility-brand-500_alt:var(--color-brand-500);--color-utility-brand-600:var(--color-brand-600);--color-utility-brand-600_alt:var(--color-brand-600);--color-utility-brand-700:var(--color-brand-700);--color-utility-brand-700_alt:var(--color-brand-700);--color-utility-brand-800:var(--color-brand-800);--color-utility-brand-800_alt:var(--color-brand-800);--color-utility-brand-900:var(--color-brand-900);--color-utility-brand-900_alt:var(--color-brand-900);--color-text-brand-secondary:var(--color-brand-700);--color-text-brand-tertiary:var(--color-brand-600);--color-text-brand-primary:var(--color-brand-900);--color-text-secondary_on-brand:var(--color-brand-200);--color-text-tertiary_on-brand:var(--color-brand-200);--color-text-quaternary_on-brand:var(--color-brand-300);--color-text-brand-tertiary_alt:var(--color-brand-600);--color-text-brand-secondary_hover:var(--color-brand-800);--color-border-brand:var(--color-brand-500);--color-border-brand_alt:var(--color-brand-600);--color-fg-brand-secondary:var(--color-brand-500);--color-fg-brand-primary:var(--color-brand-600);--color-fg-brand-primary_alt:var(--color-fg-brand-primary);--color-fg-brand-secondary_alt:var(--color-fg-brand-secondary);--color-fg-brand-secondary_hover:var(--color-brand-600);--color-bg-brand-primary:var(--color-brand-50);--color-bg-brand-solid:var(--color-brand-600);--color-bg-brand-solid_hover:var(--color-brand-700);--color-bg-brand-secondary:var(--color-brand-100);--color-bg-brand-primary_alt:var(--color-brand-50);--color-bg-brand-section:var(--color-brand-800);--color-bg-brand-section_subtle:var(--color-brand-700);--color-featured-icon-light-fg-brand:var(--color-brand-600);--color-focus-ring:var(--color-brand-500);--color-footer-button-fg:var(--color-brand-200);--color-icon-fg-brand:var(--color-brand-600);--color-icon-fg-brand_on-brand:var(--color-brand-200);--color-slider-handle-border:var(--color-brand-600);--color-toggle-slim-border_pressed-hover:var(--color-bg-brand-solid_hover);--color-toggle-slim-border_pressed:var(--color-bg-brand-solid);--background-color-brand-primary:var(--color-bg-brand-primary);--background-color-brand-solid:var(--color-bg-brand-solid);--background-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--background-color-brand-secondary:var(--color-bg-brand-secondary);--background-color-brand-primary_alt:var(--color-bg-brand-primary_alt);--background-color-brand-section:var(--color-bg-brand-section);--background-color-brand-section_subtle:var(--color-bg-brand-section_subtle);--background-color-border-brand:var(--color-border-brand);--background-color-border-brand_alt:var(--color-border-brand_alt);--text-color-brand-secondary:var(--color-text-brand-secondary);--text-color-brand-tertiary:var(--color-text-brand-tertiary);--text-color-brand-primary:var(--color-text-brand-primary);--text-color-secondary_on-brand:var(--color-text-secondary_on-brand);--text-color-tertiary_on-brand:var(--color-text-tertiary_on-brand);--text-color-quaternary_on-brand:var(--color-text-quaternary_on-brand);--text-color-brand-tertiary_alt:var(--color-text-brand-tertiary_alt);--text-color-brand-secondary_hover:var(--color-text-brand-secondary_hover);--border-color-brand:var(--color-border-brand);--border-color-brand_alt:var(--color-border-brand_alt);--border-color-brand-solid:var(--color-bg-brand-solid);--border-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--ring-color-brand:var(--color-border-brand);--ring-color-brand_alt:var(--color-border-brand_alt);--ring-color-brand-solid:var(--color-bg-brand-solid);--ring-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--outline-color-brand:var(--color-border-brand);--outline-color-brand_alt:var(--color-border-brand_alt);--outline-color-brand-solid:var(--color-bg-brand-solid);--outline-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--info:var(--color-fg-brand-primary);--ichm-glow-color:var(--accent)}[data-ichava-root],[data-ichava-portal]{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@scope([data-ichava-theme]){input,select,button{font-family:inherit}button{white-space:nowrap}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent)}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){a:hover{color:color-mix(in oklab, var(--accent) 78%, var(--fg))}}}}@layer components;@layer utilities{.\@container{container-type:inline-size}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-\[13px\]{width:13px;height:13px}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-full{height:100%}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.bg-\[\#ece8de\]{background-color:#ece8de}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-1{padding-top:var(--spacing)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[\#1f1c17\]{color:#1f1c17}.text-green-400{color:var(--color-green-400)}.text-red-400{color:var(--color-red-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.filter{filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.running{animation-play-state:running}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:bg-\[\#14120e\]:where(.dark-mode,.dark-mode *){background-color:#14120e}@media (prefers-color-scheme:dark){.dark\:bg-\[\#14120e\]{background-color:#14120e}}.dark\:text-\[\#f6f4ee\]:where(.dark-mode,.dark-mode *){color:#f6f4ee}@media (prefers-color-scheme:dark){.dark\:text-\[\#f6f4ee\]{color:#f6f4ee}}@scope([data-ichava-theme]){.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.inset-y-0\.5{inset-block:calc(var(--spacing) * .5)}.start-4{inset-inline-start:calc(var(--spacing) * 4)}.-end-\[5px\]{inset-inline-end:-5px}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.end-1{inset-inline-end:calc(var(--spacing) * 1)}.end-2{inset-inline-end:calc(var(--spacing) * 2)}.end-2\.5{inset-inline-end:calc(var(--spacing) * 2.5)}.end-3{inset-inline-end:calc(var(--spacing) * 3)}.end-4{inset-inline-end:calc(var(--spacing) * 4)}.end-\[1\.5px\]{inset-inline-end:1.5px}.end-\[1px\]{inset-inline-end:1px}.-top-2{top:calc(var(--spacing) * -2)}.-top-\[5px\]{top:-5px}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-\[1px\]{top:1px}.top-\[2px\]{top:2px}.-right-px{right:-1px}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.-bottom-px{bottom:-1px}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\[3px\]{bottom:3px}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-\(--z-overlay\){z-index:var(--z-overlay)}.z-\(--z-popover\){z-index:var(--z-popover)}.z-\(--z-tooltip\){z-index:var(--z-tooltip)}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-10{z-index:10}.z-50{z-index:50}.z-55{z-index:55}.z-70{z-index:70}.z-88{z-index:88}.z-\[var\(--z-toast\)\]{z-index:var(--z-toast)}.container{width:100%}@media (width>=320px){.container{max-width:320px}}@media (width>=600px){.container{max-width:600px}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-1{margin:calc(var(--spacing) * -1)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-\[10px\]{margin-inline:-10px}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.-my-px{margin-block:-1px}.my-0{margin-block:0}.my-1{margin-block:var(--spacing)}.ms-1{margin-inline-start:var(--spacing)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:var(--spacing)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-\[8vh\]{margin-top:8vh}.mt-\[10\%\]{margin-top:10%}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-0\.75{margin-left:calc(var(--spacing) * -.75)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.aspect-\[1_\/_0\.9\]{aspect-ratio:1/.9}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\[13px\]{width:13px;height:13px}.size-full{width:100%;height:100%}.size-max{width:max-content;height:max-content}.h-0{height:0}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-32{height:calc(var(--spacing) * 32)}.h-56{height:calc(var(--spacing) * 56)}.h-\[1px\]{height:1px}.h-\[3px\]{height:3px}.h-\[9px\]{height:9px}.h-\[10px\]{height:10px}.h-\[15px\]{height:15px}.h-\[17px\]{height:17px}.h-\[18px\]{height:18px}.h-\[20\%\]{height:20%}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[38px\]{height:38px}.h-\[42px\]{height:42px}.h-\[44px\]{height:44px}.h-\[46px\]{height:46px}.h-full{height:100%}.h-max{height:max-content}.h-min{height:min-content}.h-px{height:1px}.max-h-56\!{max-height:calc(var(--spacing) * 56)!important}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-64\!{max-height:calc(var(--spacing) * 64)!important}.max-h-80\!{max-height:calc(var(--spacing) * 80)!important}.max-h-106{max-height:calc(var(--spacing) * 106)}.max-h-\[72vh\]{max-height:72vh}.max-h-\[340px\]{max-height:340px}.max-h-\[calc\(var\(--visual-viewport-height\)-var\(--modal-pt\)-var\(--modal-pb\)\)\]{max-height:calc(var(--visual-viewport-height) - var(--modal-pt) - var(--modal-pb))}.max-h-\[inherit\]{max-height:inherit}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-\[34px\]{min-height:34px}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/5{width:40%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-62{width:calc(var(--spacing) * 62)}.w-80{width:calc(var(--spacing) * 80)}.w-160{width:calc(var(--spacing) * 160)}.w-\[1px\]{width:1px}.w-\[10px\]{width:10px}.w-\[12px\]{width:12px}.w-\[15px\]{width:15px}.w-\[17px\]{width:17px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[26px\]{width:26px}.w-\[30px\]{width:30px}.w-\[38px\]{width:38px}.w-\[46px\]{width:46px}.w-\[60\%\]{width:60%}.w-\[88px\]{width:88px}.w-\[104px\]{width:104px}.w-\[280px\]{width:280px}.w-\[360px\]{width:360px}.w-\[560px\]{width:560px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[40ch\]{max-width:40ch}.max-w-\[44ch\]{max-width:44ch}.max-w-\[90\%\]{max-width:90%}.max-w-\[94vw\]{max-width:94vw}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[280px\]{max-width:280px}.max-w-\[360px\]{max-width:360px}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-\[calc\(100vw-32px\)\],.max-w-\[calc\(100vw_-_32px\)\]{max-width:calc(100vw - 32px)}.max-w-\[min\(24rem\,calc\(100vw-16px\)\)\]{max-width:min(24rem,100vw - 16px)}.max-w-full{max-width:100%}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--trigger-width\){min-width:var(--trigger-width)}.min-w-0{min-width:0}.min-w-2{min-width:calc(var(--spacing) * 2)}.min-w-3\.5{min-width:calc(var(--spacing) * 3.5)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-\(--trigger-anchor-point\){transform-origin:var(--trigger-anchor-point)}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-none{translate:none}.scale-3d{scale:var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)}.transform{transform:var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )}.\[animation\:ichIn_\.14s_ease\]{animation:.14s ichIn}.\[animation\:ichRise_\.2s_ease\]{animation:.2s ichRise}.\[animation\:ichTaskSlide_1\.1s_ease-in-out_infinite\]{animation:1.1s ease-in-out infinite ichTaskSlide}.\[animation\:…\]{animation:…}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x, ) var(--tw-pan-y, ) var(--tw-pinch-zoom, )}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x, ) var(--tw-pan-y, ) var(--tw-pinch-zoom, )}.touch-none{touch-action:none}.resize{resize:both}.scroll-py-10{scroll-padding-block:calc(var(--spacing) * 10)}.scroll-pb-22{scroll-padding-bottom:calc(var(--spacing) * 22)}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[max-content_1fr\]{grid-template-columns:max-content 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(84px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-\[1px\]{gap:1px}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.gap-\[9px\]{gap:9px}.gap-\[10px\]{gap:10px}.gap-\[11px\]{gap:11px}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}.gap-x-1{-moz-column-gap:var(--spacing);column-gap:var(--spacing)}.gap-x-1\.5{-moz-column-gap:calc(var(--spacing) * 1.5);column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{-moz-column-gap:calc(var(--spacing) * 2);column-gap:calc(var(--spacing) * 2)}.gap-x-3{-moz-column-gap:calc(var(--spacing) * 3);column-gap:calc(var(--spacing) * 3)}.gap-x-4{-moz-column-gap:calc(var(--spacing) * 4);column-gap:calc(var(--spacing) * 4)}:where(.-space-x-0>:not(:last-child)){--tw-space-x-reverse:0;margin-inline:0}:where(.-space-x-px>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(-1px * var(--tw-space-x-reverse));margin-inline-end:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-1{row-gap:var(--spacing)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[7px\]{border-radius:7px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[12px\]{border-radius:12px}.rounded-\[14px\]{border-radius:14px}.rounded-\[calc\(var\(--radius\)_-_2px\)\]{border-radius:calc(var(--radius) - 2px)}.rounded-\[calc\(var\(--radius\)_-_3px\)\]{border-radius:calc(var(--radius) - 3px)}.rounded-\[var\(--radius\)\]{border-radius:var(--radius)}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-\[inherit\]{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-\[5px\]{border-bottom-left-radius:5px}.rounded-bl-\[6px\]{border-bottom-left-radius:6px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-bs{border-block-start-style:var(--tw-border-style);border-block-start-width:1px}.border-be{border-block-end-style:var(--tw-border-style);border-block-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[color-mix\(in_oklab\,var\(--accent\)_45\%\,transparent\)\]{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_oklab\,var\(--accent\)_45\%\,transparent\)\]{border-color:color-mix(in oklab,var(--accent) 45%,transparent)}}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--console-border\)\]{border-color:var(--console-border)}.border-border-secondary{border-color:var(--color-border-secondary)}.border-fg-brand-primary_alt{border-color:var(--color-fg-brand-primary_alt)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-secondary{border-color:var(--border-color-secondary)}.border-toggle-border{border-color:var(--color-toggle-border)}.border-toggle-slim-border_pressed{border-color:var(--color-toggle-slim-border_pressed)}.border-toggle-slim-border_pressed-hover{border-color:var(--color-toggle-slim-border_pressed-hover)}.border-transparent{border-color:#0000}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-t-\[var\(--border\)\]{border-top-color:var(--border)}.border-b-\[var\(--border\)\]{border-bottom-color:var(--border)}.border-b-\[var\(--console-border\)\]{border-bottom-color:var(--console-border)}.bg-\[\#ece8de\]{background-color:#ece8de}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--accent-soft\)\]{background-color:var(--accent-soft)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--card\)\]{background-color:var(--card)}.bg-\[var\(--console-bg\)\]{background-color:var(--console-bg)}.bg-\[var\(--console-chrome\)\]{background-color:var(--console-chrome)}.bg-\[var\(--danger\)\]{background-color:var(--danger)}.bg-\[var\(--faint-fg\)\]{background-color:var(--faint-fg)}.bg-\[var\(--muted\)\]{background-color:var(--muted)}.bg-\[var\(--muted2\)\]{background-color:var(--muted2)}.bg-\[var\(--pop\)\]{background-color:var(--pop)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-alpha-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-alpha-white\/80{background-color:color-mix(in oklab, var(--color-alpha-white) 80%, transparent)}}.bg-border-secondary{background-color:var(--color-border-secondary)}.bg-brand-primary_alt{background-color:var(--background-color-brand-primary_alt)}.bg-brand-secondary{background-color:var(--background-color-brand-secondary)}.bg-brand-solid{background-color:var(--background-color-brand-solid)}.bg-brand-solid_hover{background-color:var(--background-color-brand-solid_hover)}.bg-error-secondary{background-color:var(--background-color-error-secondary)}.bg-error-solid{background-color:var(--background-color-error-solid)}.bg-fg-brand-primary_alt{background-color:var(--color-fg-brand-primary_alt)}.bg-fg-error-primary{background-color:var(--color-fg-error-primary)}.bg-fg-success-secondary{background-color:var(--color-fg-success-secondary)}.bg-fg-white{background-color:var(--color-fg-white)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-overlay\/70{background-color:#14120eb3}@supports (color:color-mix(in lab, red, red)){.bg-overlay\/70{background-color:color-mix(in oklab, var(--background-color-overlay) 70%, transparent)}}.bg-primary{background-color:var(--background-color-primary)}.bg-primary-solid{background-color:var(--background-color-primary-solid)}.bg-primary_alt{background-color:var(--background-color-primary_alt)}.bg-primary_hover{background-color:var(--background-color-primary_hover)}.bg-quaternary{background-color:var(--background-color-quaternary)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:var(--background-color-secondary)}.bg-secondary-solid{background-color:var(--background-color-secondary-solid)}.bg-secondary_alt{background-color:var(--background-color-secondary_alt)}.bg-secondary_hover{background-color:var(--background-color-secondary_hover)}.bg-slider-handle-bg{background-color:var(--color-slider-handle-bg)}.bg-success-secondary{background-color:var(--background-color-success-secondary)}.bg-success-solid{background-color:var(--background-color-success-solid)}.bg-tertiary{background-color:var(--background-color-tertiary)}.bg-transparent{background-color:#0000}.bg-utility-blue-50{background-color:var(--color-utility-blue-50)}.bg-utility-brand-50{background-color:var(--color-utility-brand-50)}.bg-utility-green-50{background-color:var(--color-utility-green-50)}.bg-utility-indigo-50{background-color:var(--color-utility-indigo-50)}.bg-utility-neutral-50{background-color:var(--color-utility-neutral-50)}.bg-utility-neutral-300{background-color:var(--color-utility-neutral-300)}.bg-utility-orange-50{background-color:var(--color-utility-orange-50)}.bg-utility-pink-50{background-color:var(--color-utility-pink-50)}.bg-utility-purple-50{background-color:var(--color-utility-purple-50)}.bg-utility-red-50{background-color:var(--color-utility-red-50)}.bg-utility-sky-50{background-color:var(--color-utility-sky-50)}.bg-utility-slate-50{background-color:var(--color-utility-slate-50)}.bg-utility-yellow-50{background-color:var(--color-utility-yellow-50)}.bg-warning-secondary{background-color:var(--background-color-warning-secondary)}.bg-warning-solid{background-color:var(--background-color-warning-solid)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(155deg\,color-mix\(in_srgb\,var\(--accent\)_60\%\,\#fff\)\,var\(--accent\)_72\%\)\]{background-image:linear-gradient(155deg,var(--accent),var(--accent) 72%)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(155deg\,color-mix\(in_srgb\,var\(--accent\)_60\%\,\#fff\)\,var\(--accent\)_72\%\)\]{background-image:linear-gradient(155deg,color-mix(in srgb,var(--accent) 60%,#fff),var(--accent) 72%)}}.bg-none{background-image:none}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bg-primary{--tw-gradient-to:var(--color-bg-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-40\%{--tw-gradient-to-position:40%}.bg-repeat{background-repeat:repeat}.mask-no-clip{-webkit-mask-clip:no-clip;mask-clip:no-clip}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.fill-bg-primary-solid{fill:var(--color-bg-primary-solid)}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.stroke-\[2\.25px\]{stroke-width:2.25px}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\!{padding:0!important}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-\[1\.5px\]{padding:1.5px}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\.5{padding-inline:calc(var(--spacing) * 4.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-\[3px\]{padding-inline:3px}.px-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[9px\]{padding-inline:9px}.px-\[10px\]{padding-inline:10px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[1px\]{padding-block:1px}.py-\[5px\]{padding-block:5px}.py-\[9px\]{padding-block:9px}.py-\[18px\]{padding-block:18px}.py-px{padding-block:1px}.ps-2{padding-inline-start:calc(var(--spacing) * 2)}.pe-7{padding-inline-end:calc(var(--spacing) * 7)}.pe-8{padding-inline-end:calc(var(--spacing) * 8)}.pe-11{padding-inline-end:calc(var(--spacing) * 11)}.pt-\(--modal-pt\){padding-top:var(--modal-pt)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[10px\]{padding-top:10px}.pt-\[26px\]{padding-top:26px}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-9\.5{padding-right:calc(var(--spacing) * 9.5)}.pb-\(--modal-pb\){padding-bottom:var(--modal-pb)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-13{padding-bottom:calc(var(--spacing) * 13)}.pb-\[18px\]{padding-bottom:18px}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4\.5{padding-left:calc(var(--spacing) * 4.5)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-10\.5{padding-left:calc(var(--spacing) * 10.5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-\[family-name\:\'Geist\'\,system-ui\]{font-family:Geist,system-ui}.font-\[family-name\:\'Geist_Mono\'\,monospace\]{font-family:Geist Mono,monospace}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-\[13px\]\/5{font-size:13px;line-height:calc(var(--spacing) * 5)}.text-display-xs{font-size:var(--text-display-xs);line-height:var(--tw-leading,var(--text-display-xs--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[length\:var\(--app-font\,13\.5px\)\]{font-size:var(--app-font,13.5px)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.7\]{--tw-leading:1.7;line-height:1.7}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-\[1\.55\]{--tw-leading:1.55;line-height:1.55}.leading-\[13px\]{--tw-leading:13px;line-height:13px}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.font-\[500\]{--tw-font-weight:500;font-weight:500}.font-\[550\]{--tw-font-weight:550;font-weight:550}.font-\[600\]{--tw-font-weight:600;font-weight:600}.font-\[700\]{--tw-font-weight:700;font-weight:700}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-wrap{text-wrap:wrap}.\[word-break\:break-word\]{word-break:break-word}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#1f1c17\]{color:#1f1c17}.text-\[\#fff\]{color:#fff}.text-\[var\(--accent-fg\)\]{color:var(--accent-fg)}.text-\[var\(--accent-text\)\]{color:var(--accent-text)}.text-\[var\(--bg\)\]{color:var(--bg)}.text-\[var\(--color-text-brand-secondary\)\]{color:var(--color-text-brand-secondary)}.text-\[var\(--console-comment\)\]{color:var(--console-comment)}.text-\[var\(--console-fg\)\]{color:var(--console-fg)}.text-\[var\(--console-gutter\)\]{color:var(--console-gutter)}.text-\[var\(--danger\)\]{color:var(--danger)}.text-\[var\(--faint-fg\)\]{color:var(--faint-fg)}.text-\[var\(--fg\)\]{color:var(--fg)}.text-\[var\(--muted-fg\)\]{color:var(--muted-fg)}.text-brand-primary{color:var(--text-color-brand-primary)}.text-brand-secondary{color:var(--text-color-brand-secondary)}.text-brand-tertiary{color:var(--text-color-brand-tertiary)}.text-current{color:currentColor}.text-error-primary{color:var(--text-color-error-primary)}.text-featured-icon-light-fg-brand{color:var(--color-featured-icon-light-fg-brand)}.text-featured-icon-light-fg-error{color:var(--color-featured-icon-light-fg-error)}.text-featured-icon-light-fg-gray{color:var(--color-featured-icon-light-fg-gray)}.text-featured-icon-light-fg-success{color:var(--color-featured-icon-light-fg-success)}.text-featured-icon-light-fg-warning{color:var(--color-featured-icon-light-fg-warning)}.text-fg-brand-primary{color:var(--color-fg-brand-primary)}.text-fg-brand-primary_alt{color:var(--color-fg-brand-primary_alt)}.text-fg-error-primary{color:var(--color-fg-error-primary)}.text-fg-error-secondary{color:var(--color-fg-error-secondary)}.text-fg-quaternary{color:var(--color-fg-quaternary)}.text-fg-quaternary_hover{color:var(--color-fg-quaternary_hover)}.text-fg-secondary{color:var(--color-fg-secondary)}.text-fg-success-primary{color:var(--color-fg-success-primary)}.text-fg-success-secondary{color:var(--color-fg-success-secondary)}.text-fg-tertiary{color:var(--color-fg-tertiary)}.text-fg-warning-primary{color:var(--color-fg-warning-primary)}.text-fg-white{color:var(--color-fg-white)}.text-green-400{color:var(--color-green-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-placeholder{color:var(--text-color-placeholder)}.text-primary{color:var(--text-color-primary)}.text-quaternary{color:var(--text-color-quaternary)}.text-red-400{color:var(--color-red-400)}.text-secondary{color:var(--text-color-secondary)}.text-secondary_hover{color:var(--text-color-secondary_hover)}.text-tertiary{color:var(--text-color-tertiary)}.text-tooltip-supporting-text{color:var(--text-color-tooltip-supporting-text)}.text-transparent{color:#0000}.text-utility-blue-400{color:var(--color-utility-blue-400)}.text-utility-blue-500{color:var(--color-utility-blue-500)}.text-utility-blue-700{color:var(--color-utility-blue-700)}.text-utility-brand-400{color:var(--color-utility-brand-400)}.text-utility-brand-500{color:var(--color-utility-brand-500)}.text-utility-brand-700{color:var(--color-utility-brand-700)}.text-utility-green-400{color:var(--color-utility-green-400)}.text-utility-green-500{color:var(--color-utility-green-500)}.text-utility-green-700{color:var(--color-utility-green-700)}.text-utility-indigo-400{color:var(--color-utility-indigo-400)}.text-utility-indigo-500{color:var(--color-utility-indigo-500)}.text-utility-indigo-700{color:var(--color-utility-indigo-700)}.text-utility-neutral-400{color:var(--color-utility-neutral-400)}.text-utility-neutral-500{color:var(--color-utility-neutral-500)}.text-utility-neutral-700{color:var(--color-utility-neutral-700)}.text-utility-orange-400{color:var(--color-utility-orange-400)}.text-utility-orange-500{color:var(--color-utility-orange-500)}.text-utility-orange-700{color:var(--color-utility-orange-700)}.text-utility-pink-400{color:var(--color-utility-pink-400)}.text-utility-pink-500{color:var(--color-utility-pink-500)}.text-utility-pink-700{color:var(--color-utility-pink-700)}.text-utility-purple-400{color:var(--color-utility-purple-400)}.text-utility-purple-500{color:var(--color-utility-purple-500)}.text-utility-purple-700{color:var(--color-utility-purple-700)}.text-utility-red-400{color:var(--color-utility-red-400)}.text-utility-red-500{color:var(--color-utility-red-500)}.text-utility-red-700{color:var(--color-utility-red-700)}.text-utility-sky-400{color:var(--color-utility-sky-400)}.text-utility-sky-500{color:var(--color-utility-sky-500)}.text-utility-sky-700{color:var(--color-utility-sky-700)}.text-utility-slate-400{color:var(--color-utility-slate-400)}.text-utility-slate-500{color:var(--color-utility-slate-500)}.text-utility-slate-700{color:var(--color-utility-slate-700)}.text-utility-yellow-400{color:var(--color-utility-yellow-400)}.text-utility-yellow-500{color:var(--color-utility-yellow-500)}.text-utility-yellow-700{color:var(--color-utility-yellow-700)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, )}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.caret-alpha-black\/90{caret-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.caret-alpha-black\/90{caret-color:color-mix(in oklab, var(--color-alpha-black) 90%, transparent)}}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_6px_16px_-6px_var\(--accent-soft\)\]{--tw-shadow:0 6px 16px -6px var(--tw-shadow-color,var(--accent-soft));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow\)\]{--tw-shadow:var(--shadow);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-elevated\)\]{--tw-shadow:var(--shadow-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f0f), 0px 12px 32px -12px var(--tw-shadow-color,#12110f3d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f0f), 0px 8px 20px -10px var(--tw-shadow-color,#12110f2e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-skeuomorphic{--tw-shadow:0px 0px 0px 0px var(--tw-shadow-color,transparent);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f0f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f14), 0px 20px 48px -16px var(--tw-shadow-color,#12110f4d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0px 1px 0px var(--tw-shadow-color,#12110f0a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs-skeuomorphic{--tw-shadow:var(--shadow-xs);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[0\.5px\]{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[1\.5px\]{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[var\(--border\)\]{--tw-ring-color:var(--border)}.ring-bg-primary{--tw-ring-color:var(--color-bg-primary)}.ring-brand{--tw-ring-color:var(--ring-color-brand)}.ring-brand-solid{--tw-ring-color:var(--ring-color-brand-solid)}.ring-error{--tw-ring-color:var(--ring-color-error)}.ring-error_subtle{--tw-ring-color:var(--ring-color-error_subtle)}.ring-focus-ring{--tw-ring-color:var(--color-focus-ring)}.ring-primary{--tw-ring-color:var(--ring-color-primary)}.ring-secondary{--tw-ring-color:var(--ring-color-secondary)}.ring-secondary_alt{--tw-ring-color:var(--ring-color-secondary_alt)}.ring-slider-handle-border{--tw-ring-color:var(--color-slider-handle-border)}.ring-transparent{--tw-ring-color:transparent}.ring-utility-blue-200{--tw-ring-color:var(--color-utility-blue-200)}.ring-utility-brand-200{--tw-ring-color:var(--color-utility-brand-200)}.ring-utility-green-200{--tw-ring-color:var(--color-utility-green-200)}.ring-utility-indigo-200{--tw-ring-color:var(--color-utility-indigo-200)}.ring-utility-neutral-200{--tw-ring-color:var(--color-utility-neutral-200)}.ring-utility-orange-200{--tw-ring-color:var(--color-utility-orange-200)}.ring-utility-pink-200{--tw-ring-color:var(--color-utility-pink-200)}.ring-utility-purple-200{--tw-ring-color:var(--color-utility-purple-200)}.ring-utility-red-200{--tw-ring-color:var(--color-utility-red-200)}.ring-utility-sky-200{--tw-ring-color:var(--color-utility-sky-200)}.ring-utility-slate-200{--tw-ring-color:var(--color-utility-slate-200)}.ring-utility-yellow-200{--tw-ring-color:var(--color-utility-yellow-200)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline-hidden\!{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.outline-hidden\!{outline-offset:2px!important;outline:2px solid #0000!important}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\[0\.5px\]{outline-style:var(--tw-outline-style);outline-width:.5px}.-outline-offset-2{outline-offset:calc(2px * -1)}.-outline-offset-\[0\.5px\]{outline-offset:calc(.5px * -1)}.outline-offset-2{outline-offset:2px}.outline-black\/16{outline-color:#00000029}@supports (color:color-mix(in lab, red, red)){.outline-black\/16{outline-color:color-mix(in oklab, var(--color-black) 16%, transparent)}}.outline-brand{outline-color:var(--outline-color-brand)}.outline-error{outline-color:var(--outline-color-error)}.outline-focus-ring{outline-color:var(--color-focus-ring)}.outline-transparent{outline-color:#0000}.blur{--tw-blur:blur(8px);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.invert{--tw-invert:invert(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.filter{filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.\[backdrop-filter\:…\]{-webkit-backdrop-filter:…;backdrop-filter:…}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[inherit\]{transition-property:inherit;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[translate\]{transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-inherit-all{transition-property:inherit;transition-duration:inherit;transition-timing-function:inherit}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.animate-out{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--modal-pb\:clamp\(16px\,8vh\,64px\)\]{--modal-pb:clamp(16px, 8vh, 64px)}.\[--modal-pt\:16px\]{--modal-pt:16px}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.duration-100{animation-duration:.1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.fade-in{--tw-enter-opacity:0}.fade-out{--tw-exit-opacity:0}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.zoom-in-95{--tw-enter-scale:.95}.zoom-out{--tw-exit-scale:0}.zoom-out-95{--tw-exit-scale:.95}:is(.\*\:grow>*){flex-grow:1}.not-last\:pr-1:not(:last-child){padding-right:var(--spacing)}.not-last\:pr-2:not(:last-child){padding-right:calc(var(--spacing) * 2)}.not-last\:pr-\[calc\(calc\(var\(--spacing\)\*3\.5\)\+1px\)\]:not(:last-child){padding-right:calc(calc(var(--spacing) * 3.5) + 1px)}.not-last\:pr-\[calc\(calc\(var\(--spacing\)\*4\)\+1px\)\]:not(:last-child){padding-right:calc(calc(var(--spacing) * 4) + 1px)}.not-last\:pr-\[calc\(calc\(var\(--spacing\)\*4\.5\)\+1px\)\]:not(:last-child){padding-right:calc(calc(var(--spacing) * 4.5) + 1px)}:is(:where(.group):is(:where([data-rac])[data-required],:where(:not([data-rac])):required) .group-required\:block){display:block}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:text-error-primary){color:var(--text-color-error-primary)}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:ring-2){--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:ring-error){--tw-ring-color:var(--ring-color-error)}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:ring-error_subtle){--tw-ring-color:var(--ring-color-error_subtle)}:is(:where(.group\/input):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\/input\:block){display:block}:is(:where(.group\/input):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\/input\:hidden){display:none}@media (hover:hover){:is(:where(.group):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover) .group-hover\:bg-primary_hover){background-color:var(--background-color-primary_hover)}:is(:where(.group\/button-group):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover) .group-hover\/button-group\:text-fg-quaternary_hover){color:var(--color-fg-quaternary_hover)}}:is(:where(.group):is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible) .group-focus-visible\:outline-2){outline-style:var(--tw-outline-style);outline-width:2px}:is(:where(.group):is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible) .group-focus-visible\:outline-offset-2){outline-offset:2px}:is(:where(.group):is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible) .group-focus-visible\:outline-focus-ring){outline-color:var(--color-focus-ring)}:is(:where(.group):is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled) .group-disabled\:cursor-not-allowed){cursor:not-allowed}:is(:where(.group):is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled) .group-disabled\:opacity-50){opacity:.5}:is(:where(.group)[data-orientation=vertical] .group-orientation-vertical\:justify-start){justify-content:flex-start}:is(:where(.group\/button-group)[data-selected] .group-selected\/button-group\:text-fg-quaternary_hover){color:var(--color-fg-quaternary_hover)}.placeholder\:text-placeholder::placeholder{color:var(--text-color-placeholder)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-0:before{content:var(--tw-content);inset:0}.before\:inset-1:before{content:var(--tw-content);inset:var(--spacing)}.before\:inset-\[0\.5px\]:before{content:var(--tw-content);inset:.5px}.before\:inset-px:before{content:var(--tw-content);inset:1px}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:-top-px:before{content:var(--tw-content);top:-1px}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:z-10:before{content:var(--tw-content);z-index:10}.before\:size-6:before{content:var(--tw-content);width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.before\:size-7:before{content:var(--tw-content);width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.before\:size-8:before{content:var(--tw-content);width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.before\:size-9:before{content:var(--tw-content);width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.before\:size-full:before{content:var(--tw-content);width:100%;height:100%}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing) * .5)}.before\:h-px:before{content:var(--tw-content);height:1px}.before\:rounded-\[4px\]:before{content:var(--tw-content);border-radius:4px}.before\:rounded-\[5px\]:before{content:var(--tw-content);border-radius:5px}.before\:rounded-\[6px\]:before{content:var(--tw-content);border-radius:6px}.before\:rounded-\[7px\]:before{content:var(--tw-content);border-radius:7px}.before\:rounded-\[8px\]:before{content:var(--tw-content);border-radius:8px}.before\:rounded-\[9px\]:before{content:var(--tw-content);border-radius:9px}.before\:rounded-\[10px\]:before{content:var(--tw-content);border-radius:10px}.before\:rounded-\[11px\]:before{content:var(--tw-content);border-radius:11px}.before\:rounded-\[inherit\]:before{content:var(--tw-content);border-radius:inherit}.before\:rounded-full:before{content:var(--tw-content);border-radius:var(--radius-full)}.before\:border:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.before\:border-fg-brand-primary\/30:before{content:var(--tw-content);border-color:#7f56d94d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-brand-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-brand-primary) 30%, transparent)}}.before\:border-fg-error-primary\/30:before{content:var(--tw-content);border-color:#e400144d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-error-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-error-primary) 30%, transparent)}}.before\:border-fg-success-primary\/30:before{content:var(--tw-content);border-color:#00a5444d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-success-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-success-primary) 30%, transparent)}}.before\:border-fg-tertiary\/30:before{content:var(--tw-content);border-color:#5e5a524d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-tertiary\/30:before{border-color:color-mix(in oklab, var(--color-fg-tertiary) 30%, transparent)}}.before\:border-fg-warning-primary\/30:before{content:var(--tw-content);border-color:#cd89004d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-warning-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-warning-primary) 30%, transparent)}}.before\:border-utility-brand-200:before{content:var(--tw-content);border-color:var(--color-utility-brand-200)}.before\:border-utility-brand-200\/12:before{content:var(--tw-content);border-color:#e9d7fe1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-brand-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-brand-200) 12%, transparent)}}.before\:border-utility-green-200:before{content:var(--tw-content);border-color:var(--color-utility-green-200)}.before\:border-utility-green-200\/12:before{content:var(--tw-content);border-color:#b9f8cf1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-green-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-green-200) 12%, transparent)}}.before\:border-utility-neutral-200:before{content:var(--tw-content);border-color:var(--color-utility-neutral-200)}.before\:border-utility-neutral-200\/12:before{content:var(--tw-content);border-color:#ded8cb1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-neutral-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-neutral-200) 12%, transparent)}}.before\:border-utility-red-200:before{content:var(--tw-content);border-color:var(--color-utility-red-200)}.before\:border-utility-red-200\/12:before{content:var(--tw-content);border-color:#ffcaca1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-red-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-red-200) 12%, transparent)}}.before\:border-utility-yellow-200:before{content:var(--tw-content);border-color:var(--color-utility-yellow-200)}.before\:border-utility-yellow-200\/12:before{content:var(--tw-content);border-color:#fff0851f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-yellow-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-yellow-200) 12%, transparent)}}.before\:border-white\/12:before{content:var(--tw-content);border-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.before\:border-white\/12:before{border-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.before\:border-white\/32:before{content:var(--tw-content);border-color:#ffffff52}@supports (color:color-mix(in lab, red, red)){.before\:border-white\/32:before{border-color:color-mix(in oklab, var(--color-white) 32%, transparent)}}.before\:bg-border-secondary:before{content:var(--tw-content);background-color:var(--color-border-secondary)}.before\:bg-brand-solid:before{content:var(--tw-content);background-color:var(--background-color-brand-solid)}.before\:bg-utility-brand-50:before{content:var(--tw-content);background-color:var(--color-utility-brand-50)}.before\:bg-utility-green-50:before{content:var(--tw-content);background-color:var(--color-utility-green-50)}.before\:bg-utility-neutral-50:before{content:var(--tw-content);background-color:var(--color-utility-neutral-50)}.before\:bg-utility-red-50:before{content:var(--tw-content);background-color:var(--color-utility-red-50)}.before\:bg-utility-yellow-50:before{content:var(--tw-content);background-color:var(--color-utility-yellow-50)}.before\:mask-b-from-0\%:before{content:var(--tw-content);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top);--tw-mask-bottom:linear-gradient(to bottom, var(--tw-mask-bottom-from-color) var(--tw-mask-bottom-from-position), var(--tw-mask-bottom-to-color) var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:0%;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;mask-composite:intersect}.before\:mask-\[linear-gradient\(to_bottom\,black_0\%\,transparent_25\%\,transparent_75\%\,black_100\%\)\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#000 0%,#0000 25% 75%,#000 100%);mask-image:linear-gradient(#000 0%,#0000 25% 75%,#000 100%)}.before\:shadow-\[0px_1px_2px_0px_rgba\(0\,0\,0\,0\.1\)\,0px_3px_3px_0px_rgba\(0\,0\,0\,0\.09\)\,1px_8px_5px_0px_rgba\(0\,0\,0\,0\.05\)\,2px_21px_6px_0px_rgba\(0\,0\,0\,0\)\,0px_0px_0px_1px_rgba\(0\,0\,0\,0\.08\)\,1px_13px_5px_0px_rgba\(0\,0\,0\,0\.01\)\,0px_-2px_2px_0px_rgba\(0\,0\,0\,0\.13\)_inset\]:before{content:var(--tw-content);--tw-shadow:0px 1px 2px 0px var(--tw-shadow-color,#0000001a), 0px 3px 3px 0px var(--tw-shadow-color,#00000017), 1px 8px 5px 0px var(--tw-shadow-color,#0000000d), 2px 21px 6px 0px var(--tw-shadow-color,#0000), 0px 0px 0px 1px var(--tw-shadow-color,#00000014), 1px 13px 5px 0px var(--tw-shadow-color,#00000003), 0px -2px 2px 0px var(--tw-shadow-color,#00000021) inset;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:ring-1:before{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:ring-secondary_alt:before{content:var(--tw-content);--tw-ring-color:var(--ring-color-secondary_alt)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bottom-0:after{content:var(--tw-content);bottom:0}.after\:left-0:after{content:var(--tw-content);left:0}.after\:block:after{content:var(--tw-content);display:block}.after\:size-6:after{content:var(--tw-content);width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.after\:size-7:after{content:var(--tw-content);width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.after\:size-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.after\:size-8\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 8.5);height:calc(var(--spacing) * 8.5)}.after\:size-9\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 9.5);height:calc(var(--spacing) * 9.5)}.after\:size-10:after{content:var(--tw-content);width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.after\:size-10\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 10.5);height:calc(var(--spacing) * 10.5)}.after\:size-11\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 11.5);height:calc(var(--spacing) * 11.5)}.after\:h-px:after{content:var(--tw-content);height:1px}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\:border-2:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.after\:border-fg-brand-primary\/10:after{content:var(--tw-content);border-color:#7f56d91a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-brand-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-brand-primary) 10%, transparent)}}.after\:border-fg-error-primary\/10:after{content:var(--tw-content);border-color:#e400141a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-error-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-error-primary) 10%, transparent)}}.after\:border-fg-success-primary\/10:after{content:var(--tw-content);border-color:#00a5441a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-success-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-success-primary) 10%, transparent)}}.after\:border-fg-tertiary\/10:after{content:var(--tw-content);border-color:#5e5a521a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-tertiary\/10:after{border-color:color-mix(in oklab, var(--color-fg-tertiary) 10%, transparent)}}.after\:border-fg-warning-primary\/10:after{content:var(--tw-content);border-color:#cd89001a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-warning-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-warning-primary) 10%, transparent)}}.after\:bg-border-secondary:after{content:var(--tw-content);background-color:var(--color-border-secondary)}.after\:bg-brand-solid:after{content:var(--tw-content);background-color:var(--background-color-brand-solid)}.after\:bg-error-solid:after{content:var(--tw-content);background-color:var(--background-color-error-solid)}.after\:bg-secondary-solid:after{content:var(--tw-content);background-color:var(--background-color-secondary-solid)}.after\:bg-success-solid:after{content:var(--tw-content);background-color:var(--background-color-success-solid)}.after\:bg-warning-solid:after{content:var(--tw-content);background-color:var(--background-color-warning-solid)}.first\:mt-0:first-child{margin-top:0}.first\:rounded-\[calc\(var\(--radius\)_-_2px\)\]:first-child{border-radius:calc(var(--radius) - 2px)}.first\:rounded-l-lg:first-child{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.last\:rounded-\[calc\(var\(--radius\)_-_2px\)\]:last-child{border-radius:calc(var(--radius) - 2px)}.last\:rounded-r-lg:last-child{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:border-transparent:last-child{border-color:#0000}.autofill\:rounded-lg:autofill{border-radius:var(--radius-lg)}.autofill\:text-primary:autofill{color:var(--text-color-primary)}@media (hover:hover){.hover\:border-\[var\(--accent\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){border-color:var(--accent)}.hover\:border-\[var\(--muted-fg\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){border-color:var(--muted-fg)}.hover\:bg-\[var\(--accent-soft\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--accent-soft)}.hover\:bg-\[var\(--muted\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--muted)}.hover\:bg-\[var\(--muted2\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--muted2)}.hover\:bg-brand-solid_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-brand-solid_hover)}.hover\:bg-error-primary:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-error-primary)}.hover\:bg-error-solid_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-error-solid_hover)}.hover\:bg-primary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-primary_hover)}.hover\:bg-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-secondary_hover)}.hover\:bg-transparent:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:#0000}.hover\:bg-utility-blue-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-blue-100)}.hover\:bg-utility-brand-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-brand-100)}.hover\:bg-utility-green-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-green-100)}.hover\:bg-utility-indigo-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-indigo-100)}.hover\:bg-utility-neutral-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-neutral-100)}.hover\:bg-utility-orange-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-orange-100)}.hover\:bg-utility-pink-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-pink-100)}.hover\:bg-utility-purple-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-purple-100)}.hover\:bg-utility-red-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-red-100)}.hover\:bg-utility-sky-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-sky-100)}.hover\:bg-utility-slate-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-slate-100)}.hover\:bg-utility-yellow-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-yellow-100)}.hover\:text-\[var\(--accent-text\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--accent-text)}.hover\:text-brand-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-brand-secondary_hover)}.hover\:text-error-primary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-error-primary_hover)}.hover\:text-fg-quaternary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-fg-quaternary_hover)}.hover\:text-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-secondary_hover)}.hover\:text-tertiary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-tertiary_hover)}.hover\:text-utility-blue-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-blue-500)}.hover\:text-utility-brand-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-brand-500)}.hover\:text-utility-green-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-green-500)}.hover\:text-utility-indigo-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-indigo-500)}.hover\:text-utility-neutral-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-neutral-500)}.hover\:text-utility-orange-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-orange-500)}.hover\:text-utility-pink-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-pink-500)}.hover\:text-utility-purple-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-purple-500)}.hover\:text-utility-red-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-red-500)}.hover\:text-utility-sky-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-sky-500)}.hover\:text-utility-slate-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-slate-500)}.hover\:text-utility-yellow-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-yellow-500)}.hover\:underline:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){text-decoration-line:underline}}.focus\:text-fg-quaternary_hover:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){color:var(--color-fg-quaternary_hover)}.focus\:ring-2:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-brand:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){--tw-ring-color:var(--ring-color-brand)}.focus\:outline-hidden:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){outline-offset:2px;outline:2px solid #0000}}.focus-visible\:z-10:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){z-index:10}.focus-visible\:bg-\[var\(--accent-soft\)\]:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){background-color:var(--accent-soft)}.focus-visible\:ring-2:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--accent\)\]:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){--tw-ring-color:var(--accent)}.focus-visible\:ring-brand:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){--tw-ring-color:var(--ring-color-brand)}.focus-visible\:outline-2:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-offset:1px}.focus-visible\:outline-offset-2:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-offset:2px}.focus-visible\:outline-\[var\(--accent\)\]:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-color:var(--accent)}.disabled\:cursor-not-allowed:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){cursor:not-allowed}.disabled\:text-secondary\/50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){color:#47443e80}@supports (color:color-mix(in lab, red, red)){.disabled\:text-secondary\/50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){color:color-mix(in oklab, var(--text-color-secondary) 50%, transparent)}}.disabled\:opacity-50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled),:is(.disabled\:\*\:opacity-50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled)>*){opacity:.5}:where([data-input-wrapper]) .in-data-input-wrapper\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:px-4{padding-inline:calc(var(--spacing) * 4)}:where([data-input-wrapper]) .in-data-input-wrapper\:py-2\.5{padding-block:calc(var(--spacing) * 2.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:text-md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height))}:where([data-input-wrapper]) .in-data-input-wrapper\:shadow-xs{--tw-shadow:0px 1px 0px var(--tw-shadow-color,#12110f0a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:where([data-input-wrapper]) .in-data-input-wrapper\:focus\:\!z-50:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){z-index:50!important}:where([data-input-wrapper]) .in-data-input-wrapper\:disabled\:opacity-100:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){opacity:1}:where([data-leading]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-leading\:-mr-px){margin-right:-1px}:where([data-leading]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-leading\:rounded-r-none){border-top-right-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none)}:where([data-leading]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-leading\:before\:rounded-r-none):before{content:var(--tw-content);border-top-right-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none)}:where([data-trailing]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-trailing\:-ml-px){margin-left:-1px}:where([data-trailing]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-trailing\:rounded-l-none){border-top-left-radius:var(--radius-none);border-bottom-left-radius:var(--radius-none)}:where([data-trailing]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-trailing\:before\:rounded-l-none):before{content:var(--tw-content);border-top-left-radius:var(--radius-none);border-bottom-left-radius:var(--radius-none)}:where([data-input-size=sm]) .in-data-\[input-size\=sm\]\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}:where([data-placement=left]) .in-placement-left\:-rotate-90{rotate:-90deg}:where([data-placement=left]) .in-placement-left\:slide-in-from-right-0\.5{--tw-enter-translate-x:.125rem}:where([data-placement=left]) .in-placement-left\:slide-out-to-right-0\.5{--tw-exit-translate-x:.125rem}:where([data-placement=right]) .in-placement-right\:rotate-90{rotate:90deg}:where([data-placement=right]) .in-placement-right\:slide-in-from-left-0\.5{--tw-enter-translate-x:-.125rem}:where([data-placement=right]) .in-placement-right\:slide-out-to-left-0\.5{--tw-exit-translate-x:-.125rem}:where([data-placement=top]) .in-placement-top\:rotate-0{rotate:0deg}:where([data-placement=top]) .in-placement-top\:slide-in-from-bottom-0\.5{--tw-enter-translate-y:.125rem}:where([data-placement=top]) .in-placement-top\:slide-out-to-bottom-0\.5{--tw-exit-translate-y:.125rem}:where([data-placement=bottom]) .in-placement-bottom\:rotate-180{rotate:180deg}:where([data-placement=bottom]) .in-placement-bottom\:slide-in-from-top-0\.5{--tw-enter-translate-y:-.125rem}:where([data-placement=bottom]) .in-placement-bottom\:slide-out-to-top-0\.5{--tw-exit-translate-y:-.125rem}.data-focused\:bg-secondary[data-focused]{background-color:var(--background-color-secondary)}:is(.\*\:data-icon\:pointer-events-none>*)[data-icon]{pointer-events:none}:is(.\*\:data-icon\:size-4>*)[data-icon]{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:data-icon\:size-5>*)[data-icon]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}:is(.\*\:data-icon\:size-6>*)[data-icon]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}:is(.\*\:data-icon\:size-7>*)[data-icon]{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}:is(.\*\:data-icon\:shrink-0>*)[data-icon]{flex-shrink:0}:is(.\*\:data-icon\:stroke-\[2\.25px\]>*)[data-icon]{stroke-width:2.25px}:is(.\*\:data-icon\:text-fg-brand-secondary_alt>*)[data-icon]{color:var(--color-fg-brand-secondary_alt)}:is(.\*\:data-icon\:text-fg-brand-secondary_hover>*)[data-icon]{color:var(--color-fg-brand-secondary_hover)}:is(.\*\:data-icon\:text-fg-error-secondary>*)[data-icon]{color:var(--color-fg-error-secondary)}:is(.\*\:data-icon\:text-fg-quaternary>*)[data-icon]{color:var(--color-fg-quaternary)}:is(.\*\:data-icon\:text-fg-secondary_hover>*)[data-icon]{color:var(--color-fg-secondary_hover)}:is(.\*\:data-icon\:text-white\/60>*)[data-icon]{color:#fff9}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-icon\:text-white\/60>*)[data-icon]{color:color-mix(in oklab, var(--color-white) 60%, transparent)}}:is(.\*\:data-icon\:transition-inherit-all>*)[data-icon]{transition-property:inherit;transition-duration:inherit;transition-timing-function:inherit}@media (hover:hover){:is(.hover\:\*\:data-icon\:text-fg-brand-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:var(--color-fg-brand-secondary_hover)}:is(.hover\:\*\:data-icon\:text-fg-error-primary:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:var(--color-fg-error-primary)}:is(.hover\:\*\:data-icon\:text-fg-quaternary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:var(--color-fg-quaternary_hover)}:is(.hover\:\*\:data-icon\:text-white\/70:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){:is(.hover\:\*\:data-icon\:text-white\/70:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}}.data-icon-leading\:pl-3[data-icon-leading]{padding-left:calc(var(--spacing) * 3)}.data-icon-leading\:pl-3\.5[data-icon-leading]{padding-left:calc(var(--spacing) * 3.5)}.data-icon-leading\:pl-4[data-icon-leading]{padding-left:calc(var(--spacing) * 4)}.data-icon-only\:p-2[data-icon-only]{padding:calc(var(--spacing) * 2)}.data-icon-only\:p-2\.5[data-icon-only]{padding:calc(var(--spacing) * 2.5)}.data-icon-only\:p-3[data-icon-only]{padding:calc(var(--spacing) * 3)}.data-icon-only\:p-3\.5[data-icon-only]{padding:calc(var(--spacing) * 3.5)}.data-icon-only\:px-2\.5[data-icon-only]{padding-inline:calc(var(--spacing) * 2.5)}.data-icon-only\:px-3[data-icon-only]{padding-inline:calc(var(--spacing) * 3)}.data-icon-only\:px-3\.5[data-icon-only]{padding-inline:calc(var(--spacing) * 3.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:data-icon-only\:p-2\.5[data-icon-only]{padding:calc(var(--spacing) * 2.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:data-icon-only\:p-3[data-icon-only]{padding:calc(var(--spacing) * 3)}.data-loading\:bg-brand-solid_hover[data-loading]{background-color:var(--background-color-brand-solid_hover)}.data-loading\:bg-error-primary[data-loading]{background-color:var(--background-color-error-primary)}.data-loading\:bg-error-solid_hover[data-loading]{background-color:var(--background-color-error-solid_hover)}.data-loading\:bg-primary_hover[data-loading]{background-color:var(--background-color-primary_hover)}:is(.\*\:data-text\:underline-offset-3>*)[data-text]{text-underline-offset:3px}:is(.\*\:data-text\:underline-offset-4>*)[data-text]{text-underline-offset:4px}.data-\[pressed\]\:scale-\[\.97\][data-pressed]{scale:.97}.data-\[selected\]\:bg-brand-primary_alt[data-selected]{background-color:var(--background-color-brand-primary_alt)}.data-\[selected\]\:font-semibold[data-selected]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[selected\]\:text-brand-secondary[data-selected]{color:var(--text-color-brand-secondary)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media not all and (width>=48rem){.max-md\:hidden{display:none}}@media not all and (width>=40rem){.max-sm\:overflow-y-auto{overflow-y:auto}}@media (width>=40rem){.sm\:mr-auto{margin-right:auto}.sm\:grid{display:grid}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-center{justify-content:center}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-2xl{border-radius:var(--radius-2xl)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.sm\:\[--modal-pb\:32px\]{--modal-pb:32px}.sm\:\[--modal-pt\:32px\]{--modal-pt:32px}}@media (width>=48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.md\:pt-16{padding-top:calc(var(--spacing) * 16)}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}:is(.lg\:\*\*\:data-label\:hidden *)[data-label]{display:none}}@media (width>=80rem){.xl\:pt-\[clamp\(64px\,10vh\,243px\)\]{padding-top:clamp(64px,10vh,243px)}}.dark\:bg-\[\#14120e\]:where(.dark-mode,.dark-mode *){background-color:#14120e}.dark\:text-\[\#f6f4ee\]:where(.dark-mode,.dark-mode *){color:#f6f4ee}.placement-right\:slide-in-from-left-0\.5[data-placement=right]{--tw-enter-translate-x:-.125rem}.placement-right\:slide-out-to-left-0\.5[data-placement=right]{--tw-exit-translate-x:-.125rem}.placement-top\:slide-in-from-bottom-0\.5[data-placement=top]{--tw-enter-translate-y:.125rem}.placement-top\:slide-out-to-bottom-0\.5[data-placement=top]{--tw-exit-translate-y:.125rem}.placement-bottom\:slide-in-from-top-0\.5[data-placement=bottom]{--tw-enter-translate-y:-.125rem}.placement-bottom\:slide-out-to-top-0\.5[data-placement=bottom]{--tw-exit-translate-y:-.125rem}.selected\:bg-\[var\(--accent-soft\)\][data-selected]{background-color:var(--accent-soft)}.selected\:bg-brand-primary_alt[data-selected]{background-color:var(--background-color-brand-primary_alt)}.selected\:bg-primary_hover[data-selected]{background-color:var(--background-color-primary_hover)}.selected\:font-semibold[data-selected]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.selected\:text-brand-secondary[data-selected]{color:var(--text-color-brand-secondary)}.selected\:text-secondary_hover[data-selected]{color:var(--text-color-secondary_hover)}.selected\:ring-\[var\(--accent\)\][data-selected]{--tw-ring-color:var(--accent)}@media (width>=64rem){.lg\:label\:hidden [data-label]{display:none}}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}@media (hover:hover){.\[\&\:not\(\[data-selected\]\)\]\:hover\:bg-\[var\(--muted\)\]:not([data-selected]):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--muted)}.\[\&\:not\(\[data-selected\]\)\]\:hover\:text-secondary:not([data-selected]):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-secondary)}}.\[\&\>\*\:not\(\[data-icon\=loading\]\)\]\:invisible>:not([data-icon=loading]){visibility:hidden}.\[\&\>\*\:not\(\[data-icon\=loading\]\)\:not\(\[data-text\]\)\]\:hidden>:not([data-icon=loading]):not([data-text]){display:none}}}@keyframes loadingBar{0%{transform:translate(-100%)}50%{transform:translate(100%)}to{transform:translate(-100%)}}.animate-loading-bar{animation:2s ease-in-out infinite loadingBar}:root{--bg-page:#f8fafc;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-sidebar:#fff;--bg-input:#f1f5f9;--bg-muted:#e2e8f0;--bg-accent:#8b5cf6;--bg-accent-muted:#8b5cf61a;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-accent:#8b5cf6;--text-inverse:#fff;--border-default:#e2e8f0;--border-muted:#cbd5e1;--icon-fill:#64748b;--icon-color:#8b5cf6;--scrollbar-track:#f1f5f9;--scrollbar-thumb:#cbd5e1;--scrollbar-thumb-hover:#94a3b8;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:0 0% 98%;--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--radius:.625rem;--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--bg-page:#0a0d1a;--bg-card:#151823;--bg-card-hover:#1a1d2e;--bg-sidebar:#0a0d1a;--bg-input:#151823;--bg-muted:#1e2235;--bg-accent:#8b5cf6;--bg-accent-muted:#8b5cf626;--text-primary:#e5e7eb;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-accent:#a78bfa;--text-inverse:#fff;--border-default:#1e2235;--border-muted:#2d3348;--icon-fill:#6b7280;--icon-color:#8b5cf6;--scrollbar-track:#0a0d1a;--scrollbar-thumb:#1e2235;--scrollbar-thumb-hover:#2d3348;--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:0 0% 98%;--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}body{background-color:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s,color .2s}.theme-bg-page{background-color:var(--bg-page)}.theme-bg-card{background-color:var(--bg-card)}.theme-bg-card-hover:hover{background-color:var(--bg-card-hover)}.theme-bg-sidebar{background-color:var(--bg-sidebar)}.theme-bg-input{background-color:var(--bg-input)}.theme-bg-muted{background-color:var(--bg-muted)}.theme-bg-accent{background-color:var(--bg-accent)}.theme-bg-accent-muted{background-color:var(--bg-accent-muted)}.theme-text-primary{color:var(--text-primary)}.theme-text-secondary{color:var(--text-secondary)}.theme-text-muted{color:var(--text-muted)}.theme-text-accent{color:var(--text-accent)}.theme-link{transition:color .14s}.theme-link:hover{color:var(--text-accent)}@supports (color:color-mix(in lab, red, red)){.theme-link:hover{color:color-mix(in oklab, var(--text-accent) 72%, var(--text-primary))}}.theme-text-inverse{color:var(--text-inverse)}.theme-border{border-color:var(--border-default)}.theme-border-muted{border-color:var(--border-muted)}.theme-transition{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:hsl(var(--muted-foreground)/.2);border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground)/.3)}.icon-svg svg,.icon-svg-modal svg{width:100%;height:100%}.icon-svg.icon-colored svg,.icon-svg-modal.icon-colored svg{fill:currentColor;stroke:currentColor}.icon-svg.icon-colored svg path,.icon-svg.icon-colored svg circle,.icon-svg.icon-colored svg rect,.icon-svg.icon-colored svg line,.icon-svg.icon-colored svg polyline,.icon-svg.icon-colored svg polygon,.icon-svg-modal.icon-colored svg path,.icon-svg-modal.icon-colored svg circle,.icon-svg-modal.icon-colored svg rect,.icon-svg-modal.icon-colored svg line,.icon-svg-modal.icon-colored svg polyline,.icon-svg-modal.icon-colored svg polygon{fill:inherit;stroke:inherit}.icon-svg svg[fill=none],.icon-svg-modal svg[fill=none]{fill:none}.icon-svg.icon-colored svg[fill=none] path,.icon-svg.icon-colored svg[fill=none] circle,.icon-svg.icon-colored svg[fill=none] rect,.icon-svg.icon-colored svg[fill=none] line,.icon-svg-modal.icon-colored svg[fill=none] path,.icon-svg-modal.icon-colored svg[fill=none] circle,.icon-svg-modal.icon-colored svg[fill=none] rect,.icon-svg-modal.icon-colored svg[fill=none] line{fill:none;stroke:currentColor}.animate-fade-in{animation:.3s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-down-enter-active,.slide-down-leave-active{transition:all .3s}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translateY(-100%)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}[data-ichava-theme].dark-mode{--color-bg-overlay:#000}:where(:root,[data-ichava-theme]):not(.dark-mode){--canvas:var(--color-bg-tertiary)}.ich-shell{background:var(--canvas)}.ich-sheet{border:1px solid var(--color-border-secondary);border-radius:calc(var(--radius) * 2);background:var(--surface);box-shadow:var(--shadow-sm);margin:0 8px 8px 0;overflow:hidden}[dir=rtl] .ich-sheet{margin:0 0 8px 8px}@media (width<=860px){.ich-sheet,[dir=rtl] .ich-sheet{margin:0 6px 6px}}@font-face{font-family:Geist;src:url(../fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(../fonts/GeistMono-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}[data-ichava-theme].dark-mode{--canvas:var(--color-bg-primary);--surface:var(--color-bg-secondary);--color-bg-error-solid_hover:var(--color-red-700)}@scope([data-ichava-theme]){:scope,*{box-sizing:border-box}}@media (hover:hover){@scope([data-ichava-theme]){:is(button,[role=button],[role=menuitem],[role=option],[role=tab],a):hover:not(:disabled,[aria-disabled=true]){--ich-hover-bg:var(--muted);--ich-hover-fg:var(--fg);--ich-hover-border:var(--muted-fg)}:where(button,[role=button],[role=menuitem],[role=tab],[role=radio]):where(:hover):not(:disabled,[aria-disabled=true],[data-rac]){background-image:linear-gradient(var(--fg), var(--fg))}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){:where(button,[role=button],[role=menuitem],[role=tab],[role=radio]):where(:hover):not(:disabled,[aria-disabled=true],[data-rac]){background-image:linear-gradient(color-mix(in oklab, var(--fg) 7%, transparent), color-mix(in oklab, var(--fg) 7%, transparent))}}}}@scope([data-ichava-theme]){:where(button,[role=button],[role=tab],[role=menuitem],[role=option],[role=radio],a):not([data-rac]){transition:background-color .14s,color .14s,border-color .14s,box-shadow .16s,opacity .14s,transform .12s}:where(button,[role=button],[role=tab],[role=menuitem],[role=radio]):not(:disabled,[aria-disabled=true],[data-rac]):active{background-image:linear-gradient(var(--fg), var(--fg));transform:scale(.96)}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){:where(button,[role=button],[role=tab],[role=menuitem],[role=radio]):not(:disabled,[aria-disabled=true],[data-rac]):active{background-image:linear-gradient(color-mix(in oklab, var(--fg) 12%, transparent), color-mix(in oklab, var(--fg) 12%, transparent))}}}@scope([data-ichava-theme]){:where(button,[role=button])[data-rac][data-pressed]:not([data-disabled]){transform:scale(.97)}:where([data-ich-tile]):active{--ich-press:.97}:where([data-ich-row]):active{transform:scale(.995)}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input:focus:not([data-rac]),select:focus:not([data-rac]),button:focus:not([data-rac]){outline:none}input:focus-visible:not([data-rac]),select:focus-visible:not([data-rac]),button:focus-visible:not([data-rac]),a:focus-visible:not([data-rac]),[tabindex]:focus-visible:not([data-rac]),[role=button]:focus-visible:not([data-rac]),[role=checkbox]:focus-visible:not([data-rac]),[role=radio]:focus-visible:not([data-rac]),[role=menuitem]:focus-visible:not([data-rac]),[role=tab]:focus-visible:not([data-rac]){box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--ring);outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-track{background:0 0}}.ich-side-scroll,.ich-marquee-scroll{scrollbar-width:none}.ich-side-scroll::-webkit-scrollbar{width:0;height:0}.ich-marquee-scroll::-webkit-scrollbar{width:0;height:0}@scope([data-ichava-theme]){[data-region=credits]::-webkit-scrollbar{width:0;height:0}input[type=range]{appearance:none;background:0 0}input[type=range]::-webkit-slider-runnable-track{background:var(--border);border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bg);border:1.5px solid var(--accent);width:13px;height:13px;box-shadow:var(--shadow);cursor:pointer;border-radius:50%;margin-top:-4.5px}input[type=range].ich-hue::-webkit-slider-runnable-track{background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:4px;height:8px}input[type=range].ich-hue::-webkit-slider-thumb{margin-top:-2.5px}input[type=range].ich-light::-webkit-slider-runnable-track{background:linear-gradient(to right, #000, var(--pick-mid,#888), #fff);border-radius:4px;height:8px}input[type=range].ich-light::-webkit-slider-thumb{margin-top:-2.5px}}@keyframes ichPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes ichIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes ichTaskSlide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes ichFade{0%{opacity:0}to{opacity:1}}@keyframes ichRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ichFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes ichGlow{0%,to{box-shadow:0 12px 34px -8px var(--accent-soft), 0 0 0 0 var(--accent-soft)}50%{box-shadow:0 16px 44px -6px var(--accent-soft), 0 0 0 10px transparent}}@keyframes ichSpin{to{transform:rotate(360deg)}}@keyframes ichPulseS{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes ichBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-18%)}}@keyframes ichWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-11deg)}75%{transform:rotate(11deg)}}@keyframes ichPing{0%{opacity:1;transform:scale(1)}80%,to{opacity:0;transform:scale(1.45)}}@keyframes ichSpinPath{to{transform:rotate(360deg)}}@keyframes ichMarqueeY{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes ichMarqueeX{0%{transform:translate(0)}to{transform:translate(-50%)}}.ich-skeleton{--ich-skeleton-base:var(--fg);display:inline-block}@supports (color:color-mix(in lab, red, red)){.ich-skeleton{--ich-skeleton-base:color-mix(in srgb, var(--fg) 8%, transparent)}}.ich-skeleton{--ich-skeleton-shine:var(--fg)}@supports (color:color-mix(in lab, red, red)){.ich-skeleton{--ich-skeleton-shine:color-mix(in srgb, var(--fg) 15%, transparent)}}.ich-skeleton{background:linear-gradient(90deg, var(--ich-skeleton-base) 0%, var(--ich-skeleton-shine) 40%, var(--ich-skeleton-base) 80%) 0 0 / 300% 100%;animation:1.4s ease-in-out infinite ichSkeleton}@keyframes ichSkeleton{0%{background-position:100% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){@scope([data-ichava-theme]){:scope,*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}}.ich-pop{position:relative}[data-reduce-motion] *,[data-reduce-motion]{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (width<=760px){.ich-detail-grid{grid-template-columns:1fr!important}}@media (width<=640px){.ich-header-brand-suffix{display:none}.ich-header-search{flex:none}.ich-header-search-button{justify-content:center;width:30px;max-width:none;padding:0}.ich-header-search-label{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ich-header-actions{overscroll-behavior-x:contain;scrollbar-width:none;flex:1 1 0;min-width:0;overflow-x:auto}.ich-header-actions::-webkit-scrollbar{display:none}.ich-header-actions>*{flex:none}}@media (width<=1024px){.ich-header-search-kbd,.ich-header-brand-suffix{display:none}}@media (width<=640px){.ich-header-actions{padding-inline-end:20px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000)}[dir=rtl] .ich-header-actions{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 20px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 20px),#0000)}}.ich-hamburger,.ich-scrim{display:none}@media (width<=860px){.ich-hamburger{display:flex}.ich-sidebar{z-index:65;box-shadow:var(--shadow-elevated);transition:transform .2s;position:fixed;top:48px;bottom:0;left:0;transform:translate(-100%)}.ich-sidebar.open{transform:translate(0)}[dir=rtl] .ich-sidebar{left:auto;right:0;transform:translate(100%)}[dir=rtl] .ich-sidebar.open{transform:translate(0)}.ich-scrim{z-index:64;background:var(--overlay);animation:.15s ichFade;display:block;position:fixed;inset:48px 0 0}}.ich-tree .ich-tree-guide{background:0 0}.ich-tree[data-connectors] .ich-tree-guide{background:var(--border)}.ich-tree[data-size=sm]{--ich-tree-indent:20px}.ich-tree[data-size=md]{--ich-tree-indent:24px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-mask-linear{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-radial{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-conic{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-left{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-right{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-bottom{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-top{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-bottom-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-bottom-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-bottom-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-bottom-to-color{syntax:"*";inherits:false;initial-value:transparent}@keyframes spin{to{transform:rotate(360deg)}}:root{--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Geist,-apple-system,Segoe UI,Roboto,Arial,sans-serif} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}@scope([data-ichava-theme]){:scope,*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-mask-linear:linear-gradient(#fff, #fff);--tw-mask-radial:linear-gradient(#fff, #fff);--tw-mask-conic:linear-gradient(#fff, #fff);--tw-mask-left:linear-gradient(#fff, #fff);--tw-mask-right:linear-gradient(#fff, #fff);--tw-mask-bottom:linear-gradient(#fff, #fff);--tw-mask-top:linear-gradient(#fff, #fff);--tw-mask-bottom-from-position:0%;--tw-mask-bottom-to-position:100%;--tw-mask-bottom-from-color:black;--tw-mask-bottom-to-color:transparent}}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}[data-ichava-theme]{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, "Roboto Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-indigo-950:oklch(25.7% .09 281.288);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-fuchsia-900:oklch(40.1% .17 325.612);--color-fuchsia-950:oklch(29.3% .136 325.661);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-pink-800:oklch(45.9% .187 3.815);--color-pink-900:oklch(40.8% .153 2.432);--color-pink-950:oklch(28.4% .109 3.907);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-neutral-50:#f6f4ee;--color-neutral-100:#ece8de;--color-neutral-200:#ded8cb;--color-neutral-300:#cbc4b4;--color-neutral-400:#a8a192;--color-neutral-500:#67635a;--color-neutral-600:#5e5a52;--color-neutral-700:#47443e;--color-neutral-800:#2f2b24;--color-neutral-900:#1f1c17;--color-neutral-950:#14120e;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:calc(var(--spacing) * 3);--text-xs--line-height:calc(var(--spacing) * 4.5);--text-sm:calc(var(--spacing) * 3.5);--text-sm--line-height:calc(var(--spacing) * 5);--text-lg:calc(var(--spacing) * 4.5);--text-lg--line-height:calc(var(--spacing) * 7);--text-xl:calc(var(--spacing) * 5);--text-xl--line-height:calc(var(--spacing) * 7.5);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:500;--font-weight-bold:600;--font-weight-extrabold:800;--font-weight-black:900;--tracking-wide:.025em;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-xs:0px 1px 0px #12110f0a;--shadow-sm:0px 1px 2px #12110f0f;--shadow-lg:0px 1px 2px #12110f0f, 0px 12px 32px -12px #12110f3d;--shadow-xl:0px 1px 2px #12110f14, 0px 20px 48px -16px #12110f4d;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-body:var(--font-inter,"Inter"), -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--text-md:calc(var(--spacing) * 4);--text-md--line-height:calc(var(--spacing) * 6);--text-display-xs:calc(var(--spacing) * 6);--text-display-xs--line-height:calc(var(--spacing) * 8);--text-display-sm:calc(var(--spacing) * 7.5);--text-display-sm--line-height:calc(var(--spacing) * 9.5);--max-width-container:1280px;--radius-none:0px;--radius-DEFAULT:.25rem;--radius-full:9999px;--shadow-skeuomorphic:0px 0px 0px 0px transparent;--color-transparent:#0000;--color-alpha-white:#fff;--color-alpha-black:#000;--color-brand-50:#f9f5ff;--color-brand-100:#f4ebff;--color-brand-200:#e9d7fe;--color-brand-300:#d6bbfb;--color-brand-400:#b692f6;--color-brand-500:#9e77ed;--color-brand-600:#7f56d9;--color-brand-700:#6941c6;--color-brand-800:#53389e;--color-brand-900:#42307d;--color-brand-950:#2c1c5f;--color-utility-blue-50:var(--color-blue-50);--color-utility-blue-100:var(--color-blue-100);--color-utility-blue-200:var(--color-blue-200);--color-utility-blue-400:var(--color-blue-400);--color-utility-blue-500:var(--color-blue-500);--color-utility-blue-700:var(--color-blue-700);--color-utility-brand-50:var(--color-brand-50);--color-utility-brand-100:var(--color-brand-100);--color-utility-brand-200:var(--color-brand-200);--color-utility-brand-400:var(--color-brand-400);--color-utility-brand-500:var(--color-brand-500);--color-utility-brand-700:var(--color-brand-700);--color-utility-neutral-50:var(--color-neutral-50);--color-utility-neutral-100:var(--color-neutral-100);--color-utility-neutral-200:var(--color-neutral-200);--color-utility-neutral-300:var(--color-neutral-300);--color-utility-neutral-400:var(--color-neutral-400);--color-utility-neutral-500:var(--color-neutral-500);--color-utility-neutral-600:var(--color-neutral-600);--color-utility-neutral-700:var(--color-neutral-700);--color-utility-neutral-800:var(--color-neutral-800);--color-utility-neutral-900:var(--color-neutral-900);--color-utility-red-50:var(--color-red-50);--color-utility-red-100:var(--color-red-100);--color-utility-red-200:var(--color-red-200);--color-utility-red-400:var(--color-red-400);--color-utility-red-500:var(--color-red-500);--color-utility-red-700:var(--color-red-700);--color-utility-yellow-50:var(--color-yellow-50);--color-utility-yellow-100:var(--color-yellow-100);--color-utility-yellow-200:var(--color-yellow-200);--color-utility-yellow-400:var(--color-yellow-400);--color-utility-yellow-500:var(--color-yellow-500);--color-utility-yellow-700:var(--color-yellow-700);--color-utility-green-50:var(--color-green-50);--color-utility-green-100:var(--color-green-100);--color-utility-green-200:var(--color-green-200);--color-utility-green-400:var(--color-green-400);--color-utility-green-500:var(--color-green-500);--color-utility-green-700:var(--color-green-700);--color-utility-orange-50:var(--color-orange-50);--color-utility-orange-100:var(--color-orange-100);--color-utility-orange-200:var(--color-orange-200);--color-utility-orange-400:var(--color-orange-400);--color-utility-orange-500:var(--color-orange-500);--color-utility-orange-700:var(--color-orange-700);--color-utility-indigo-50:var(--color-indigo-50);--color-utility-indigo-100:var(--color-indigo-100);--color-utility-indigo-200:var(--color-indigo-200);--color-utility-indigo-400:var(--color-indigo-400);--color-utility-indigo-500:var(--color-indigo-500);--color-utility-indigo-700:var(--color-indigo-700);--color-utility-pink-50:var(--color-pink-50);--color-utility-pink-100:var(--color-pink-100);--color-utility-pink-200:var(--color-pink-200);--color-utility-pink-400:var(--color-pink-400);--color-utility-pink-500:var(--color-pink-500);--color-utility-pink-700:var(--color-pink-700);--color-utility-purple-50:var(--color-purple-50);--color-utility-purple-100:var(--color-purple-100);--color-utility-purple-200:var(--color-purple-200);--color-utility-purple-400:var(--color-purple-400);--color-utility-purple-500:var(--color-purple-500);--color-utility-purple-700:var(--color-purple-700);--color-utility-sky-50:var(--color-sky-50);--color-utility-sky-100:var(--color-sky-100);--color-utility-sky-200:var(--color-sky-200);--color-utility-sky-400:var(--color-sky-400);--color-utility-sky-500:var(--color-sky-500);--color-utility-sky-700:var(--color-sky-700);--color-utility-slate-50:var(--color-slate-50);--color-utility-slate-100:var(--color-slate-100);--color-utility-slate-200:var(--color-slate-200);--color-utility-slate-400:var(--color-slate-400);--color-utility-slate-500:var(--color-slate-500);--color-utility-slate-700:var(--color-slate-700);--color-text-primary:var(--color-neutral-900);--color-text-tertiary:var(--color-neutral-600);--color-text-error-primary:var(--color-red-600);--color-text-warning-primary:var(--color-yellow-600);--color-text-success-primary:var(--color-green-600);--color-text-white:var(--color-white);--color-text-secondary:var(--color-neutral-700);--color-text-secondary_hover:var(--color-neutral-800);--color-text-tertiary_hover:var(--color-neutral-700);--color-text-brand-secondary:var(--color-brand-700);--color-text-placeholder:var(--color-neutral-500);--color-text-brand-tertiary:var(--color-brand-600);--color-text-editor-icon-fg:var(--color-neutral-400);--color-text-editor-icon-fg_active:var(--color-neutral-500);--color-text-quaternary:var(--color-neutral-500);--color-text-brand-primary:var(--color-brand-900);--color-text-primary_on-brand:var(--color-white);--color-text-secondary_on-brand:var(--color-brand-200);--color-text-tertiary_on-brand:var(--color-brand-200);--color-text-quaternary_on-brand:var(--color-brand-300);--color-text-brand-tertiary_alt:var(--color-brand-600);--color-text-error-primary_hover:var(--color-red-700);--color-text-brand-secondary_hover:var(--color-brand-800);--color-border-primary:var(--color-neutral-300);--color-border-secondary:var(--color-neutral-200);--color-border-secondary_alt:#0000001a;--color-border-tertiary:var(--color-neutral-100);--color-border-error:var(--color-red-500);--color-border-error_subtle:var(--color-red-300);--color-border-brand:var(--color-brand-500);--color-border-brand_alt:var(--color-brand-600);--color-fg-secondary:var(--color-neutral-700);--color-fg-warning-primary:var(--color-yellow-600);--color-fg-success-primary:var(--color-green-600);--color-fg-white:var(--color-white);--color-fg-success-secondary:var(--color-green-500);--color-fg-secondary_hover:var(--color-neutral-800);--color-fg-brand-secondary:var(--color-brand-500);--color-fg-brand-primary:var(--color-brand-600);--color-fg-quaternary:var(--color-neutral-400);--color-fg-quaternary_hover:var(--color-neutral-500);--color-fg-error-primary:var(--color-red-600);--color-fg-error-secondary:var(--color-red-500);--color-fg-tertiary:var(--color-neutral-600);--color-fg-brand-primary_alt:var(--color-fg-brand-primary);--color-fg-brand-secondary_alt:var(--color-fg-brand-secondary);--color-fg-brand-secondary_hover:var(--color-brand-600);--color-bg-primary:var(--color-white);--color-bg-tertiary:var(--color-neutral-100);--color-bg-brand-primary:var(--color-brand-50);--color-bg-error-secondary:var(--color-red-100);--color-bg-warning-primary:var(--color-yellow-50);--color-bg-warning-secondary:var(--color-yellow-100);--color-bg-success-primary:var(--color-green-50);--color-bg-success-secondary:var(--color-green-100);--color-bg-brand-solid:var(--color-brand-600);--color-bg-secondary-solid:var(--color-neutral-600);--color-bg-error-solid:var(--color-red-600);--color-bg-warning-solid:var(--color-yellow-600);--color-bg-success-solid:var(--color-green-600);--color-bg-secondary_hover:var(--color-neutral-100);--color-bg-primary_hover:var(--color-neutral-50);--color-bg-active:var(--color-neutral-50);--color-bg-brand-solid_hover:var(--color-brand-700);--color-bg-error-primary:var(--color-red-50);--color-bg-brand-secondary:var(--color-brand-100);--color-bg-secondary:var(--color-neutral-50);--color-bg-quaternary:var(--color-neutral-200);--color-bg-primary_alt:var(--color-white);--color-bg-brand-primary_alt:var(--color-brand-50);--color-bg-secondary_alt:var(--color-neutral-50);--color-bg-overlay:var(--color-neutral-950);--color-bg-brand-section:var(--color-brand-800);--color-bg-brand-section_subtle:var(--color-brand-700);--color-bg-primary-solid:var(--color-neutral-950);--color-bg-error-solid_hover:var(--color-red-700);--color-featured-icon-light-fg-brand:var(--color-brand-600);--color-featured-icon-light-fg-error:var(--color-red-600);--color-featured-icon-light-fg-gray:var(--color-neutral-500);--color-featured-icon-light-fg-success:var(--color-green-600);--color-featured-icon-light-fg-warning:var(--color-yellow-600);--color-focus-ring:var(--color-brand-500);--color-icon-fg-brand:var(--color-brand-600);--color-slider-handle-bg:var(--color-white);--color-slider-handle-border:var(--color-brand-600);--color-toggle-border:var(--color-neutral-300);--color-toggle-slim-border_pressed-hover:var(--color-bg-brand-solid_hover);--color-toggle-slim-border_pressed:var(--color-bg-brand-solid);--color-tooltip-supporting-text:var(--color-neutral-300);--background-color-primary:var(--color-bg-primary);--background-color-tertiary:var(--color-bg-tertiary);--background-color-error-secondary:var(--color-bg-error-secondary);--background-color-warning-secondary:var(--color-bg-warning-secondary);--background-color-success-secondary:var(--color-bg-success-secondary);--background-color-brand-solid:var(--color-bg-brand-solid);--background-color-secondary-solid:var(--color-bg-secondary-solid);--background-color-error-solid:var(--color-bg-error-solid);--background-color-warning-solid:var(--color-bg-warning-solid);--background-color-success-solid:var(--color-bg-success-solid);--background-color-secondary_hover:var(--color-bg-secondary_hover);--background-color-primary_hover:var(--color-bg-primary_hover);--background-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--background-color-error-primary:var(--color-bg-error-primary);--background-color-brand-secondary:var(--color-bg-brand-secondary);--background-color-secondary:var(--color-bg-secondary);--background-color-quaternary:var(--color-bg-quaternary);--background-color-primary_alt:var(--color-bg-primary_alt);--background-color-brand-primary_alt:var(--color-bg-brand-primary_alt);--background-color-secondary_alt:var(--color-bg-secondary_alt);--background-color-overlay:var(--color-bg-overlay);--background-color-brand-section:var(--color-bg-brand-section);--background-color-brand-section_subtle:var(--color-bg-brand-section_subtle);--background-color-primary-solid:var(--color-bg-primary-solid);--background-color-error-solid_hover:var(--color-bg-error-solid_hover);--text-color-primary:var(--color-text-primary);--text-color-secondary:var(--color-text-secondary);--text-color-secondary_hover:var(--color-text-secondary_hover);--text-color-tertiary:var(--color-text-tertiary);--text-color-tertiary_hover:var(--color-text-tertiary_hover);--text-color-error-primary:var(--color-text-error-primary);--text-color-brand-secondary:var(--color-text-brand-secondary);--text-color-placeholder:var(--color-text-placeholder);--text-color-brand-tertiary:var(--color-text-brand-tertiary);--text-color-quaternary:var(--color-text-quaternary);--text-color-brand-primary:var(--color-text-brand-primary);--text-color-primary_on-brand:var(--color-text-primary_on-brand);--text-color-tertiary_on-brand:var(--color-text-tertiary_on-brand);--text-color-error-primary_hover:var(--color-text-error-primary_hover);--text-color-brand-secondary_hover:var(--color-text-brand-secondary_hover);--text-color-tooltip-supporting-text:var(--color-tooltip-supporting-text);--border-color-primary:var(--color-border-primary);--border-color-secondary:var(--color-border-secondary);--border-color-brand:var(--color-border-brand);--ring-color-primary:var(--color-border-primary);--ring-color-secondary:var(--color-border-secondary);--ring-color-secondary_alt:var(--color-border-secondary_alt);--ring-color-error:var(--color-border-error);--ring-color-error_subtle:var(--color-border-error_subtle);--ring-color-brand:var(--color-border-brand);--ring-color-brand-solid:var(--color-bg-brand-solid);--outline-color-error:var(--color-border-error);--outline-color-brand:var(--color-border-brand)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@scope([data-ichava-theme]){:scope,*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:scope,html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){@scope([data-ichava-theme]){::placeholder{color:currentColor}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}}@scope([data-ichava-theme]){textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}[data-ichava-theme].dark-mode{--color-alpha-white:#0c0e12;--color-alpha-black:#fff;--color-utility-blue-50:var(--color-blue-950);--color-utility-blue-100:var(--color-blue-900);--color-utility-blue-200:var(--color-blue-800);--color-utility-blue-300:var(--color-blue-700);--color-utility-blue-400:var(--color-blue-600);--color-utility-blue-500:var(--color-blue-500);--color-utility-blue-600:var(--color-blue-400);--color-utility-blue-700:var(--color-blue-300);--color-utility-brand-50:var(--color-brand-950);--color-utility-brand-50_alt:var(--color-utility-neutral-50);--color-utility-brand-100:var(--color-brand-900);--color-utility-brand-100_alt:var(--color-utility-neutral-100);--color-utility-brand-200:var(--color-brand-800);--color-utility-brand-200_alt:var(--color-utility-neutral-200);--color-utility-brand-300:var(--color-brand-700);--color-utility-brand-300_alt:var(--color-utility-neutral-300);--color-utility-brand-400:var(--color-brand-600);--color-utility-brand-400_alt:var(--color-utility-neutral-400);--color-utility-brand-500:var(--color-brand-500);--color-utility-brand-500_alt:var(--color-utility-neutral-500);--color-utility-brand-600:var(--color-brand-400);--color-utility-brand-600_alt:var(--color-utility-neutral-600);--color-utility-brand-700:var(--color-brand-300);--color-utility-brand-700_alt:var(--color-utility-neutral-700);--color-utility-brand-800:var(--color-brand-200);--color-utility-brand-800_alt:var(--color-utility-neutral-800);--color-utility-brand-900:var(--color-brand-100);--color-utility-brand-900_alt:var(--color-utility-neutral-900);--color-utility-neutral-50:var(--color-neutral-900);--color-utility-neutral-100:var(--color-neutral-800);--color-utility-neutral-200:var(--color-neutral-700);--color-utility-neutral-300:var(--color-neutral-700);--color-utility-neutral-400:var(--color-neutral-600);--color-utility-neutral-500:var(--color-neutral-500);--color-utility-neutral-600:var(--color-neutral-400);--color-utility-neutral-700:var(--color-neutral-300);--color-utility-neutral-800:var(--color-neutral-200);--color-utility-neutral-900:var(--color-neutral-100);--color-utility-red-50:var(--color-red-950);--color-utility-red-100:var(--color-red-900);--color-utility-red-200:var(--color-red-800);--color-utility-red-300:var(--color-red-700);--color-utility-red-400:var(--color-red-600);--color-utility-red-500:var(--color-red-500);--color-utility-red-600:var(--color-red-400);--color-utility-red-700:var(--color-red-300);--color-utility-yellow-50:var(--color-yellow-950);--color-utility-yellow-100:var(--color-yellow-900);--color-utility-yellow-200:var(--color-yellow-800);--color-utility-yellow-300:var(--color-yellow-700);--color-utility-yellow-400:var(--color-yellow-600);--color-utility-yellow-500:var(--color-yellow-500);--color-utility-yellow-600:var(--color-yellow-400);--color-utility-yellow-700:var(--color-yellow-300);--color-utility-green-50:var(--color-green-950);--color-utility-green-100:var(--color-green-900);--color-utility-green-200:var(--color-green-800);--color-utility-green-300:var(--color-green-700);--color-utility-green-400:var(--color-green-600);--color-utility-green-500:var(--color-green-500);--color-utility-green-600:var(--color-green-400);--color-utility-green-700:var(--color-green-300);--color-utility-orange-50:var(--color-orange-950);--color-utility-orange-100:var(--color-orange-900);--color-utility-orange-200:var(--color-orange-800);--color-utility-orange-300:var(--color-orange-700);--color-utility-orange-400:var(--color-orange-600);--color-utility-orange-500:var(--color-orange-500);--color-utility-orange-600:var(--color-orange-400);--color-utility-orange-700:var(--color-orange-300);--color-utility-indigo-50:var(--color-indigo-950);--color-utility-indigo-100:var(--color-indigo-900);--color-utility-indigo-200:var(--color-indigo-800);--color-utility-indigo-300:var(--color-indigo-700);--color-utility-indigo-400:var(--color-indigo-600);--color-utility-indigo-500:var(--color-indigo-500);--color-utility-indigo-600:var(--color-indigo-400);--color-utility-indigo-700:var(--color-indigo-300);--color-utility-fuchsia-50:var(--color-fuchsia-950);--color-utility-fuchsia-100:var(--color-fuchsia-900);--color-utility-fuchsia-200:var(--color-fuchsia-800);--color-utility-fuchsia-300:var(--color-fuchsia-700);--color-utility-fuchsia-400:var(--color-fuchsia-600);--color-utility-fuchsia-500:var(--color-fuchsia-500);--color-utility-fuchsia-600:var(--color-fuchsia-400);--color-utility-fuchsia-700:var(--color-fuchsia-300);--color-utility-pink-50:var(--color-pink-950);--color-utility-pink-100:var(--color-pink-900);--color-utility-pink-200:var(--color-pink-800);--color-utility-pink-300:var(--color-pink-700);--color-utility-pink-400:var(--color-pink-600);--color-utility-pink-500:var(--color-pink-500);--color-utility-pink-600:var(--color-pink-400);--color-utility-pink-700:var(--color-pink-300);--color-utility-purple-50:var(--color-purple-950);--color-utility-purple-100:var(--color-purple-900);--color-utility-purple-200:var(--color-purple-800);--color-utility-purple-300:var(--color-purple-700);--color-utility-purple-400:var(--color-purple-600);--color-utility-purple-500:var(--color-purple-500);--color-utility-purple-600:var(--color-purple-400);--color-utility-purple-700:var(--color-purple-300);--color-utility-sky-50:var(--color-sky-950);--color-utility-sky-100:var(--color-sky-900);--color-utility-sky-200:var(--color-sky-800);--color-utility-sky-300:var(--color-sky-700);--color-utility-sky-400:var(--color-sky-600);--color-utility-sky-500:var(--color-sky-500);--color-utility-sky-600:var(--color-sky-400);--color-utility-sky-700:var(--color-sky-300);--color-utility-slate-50:var(--color-slate-950);--color-utility-slate-100:var(--color-slate-900);--color-utility-slate-200:var(--color-slate-800);--color-utility-slate-300:var(--color-slate-700);--color-utility-slate-400:var(--color-slate-600);--color-utility-slate-500:var(--color-slate-500);--color-utility-slate-600:var(--color-slate-400);--color-utility-slate-700:var(--color-slate-300);--color-utility-emerald-50:var(--color-emerald-950);--color-utility-emerald-100:var(--color-emerald-900);--color-utility-emerald-200:var(--color-emerald-800);--color-utility-emerald-300:var(--color-emerald-700);--color-utility-emerald-400:var(--color-emerald-600);--color-utility-emerald-500:var(--color-emerald-500);--color-utility-emerald-600:var(--color-emerald-400);--color-utility-emerald-700:var(--color-emerald-300);--color-utility-amber-50:var(--color-amber-950);--color-utility-amber-100:var(--color-amber-900);--color-utility-amber-200:var(--color-amber-800);--color-utility-amber-300:var(--color-amber-700);--color-utility-amber-400:var(--color-amber-600);--color-utility-amber-500:var(--color-amber-500);--color-utility-amber-600:var(--color-amber-400);--color-utility-amber-700:var(--color-amber-300);--color-text-primary:var(--color-neutral-50);--color-text-tertiary:var(--color-neutral-400);--color-text-error-primary:var(--color-red-400);--color-text-warning-primary:var(--color-yellow-400);--color-text-success-primary:var(--color-green-400);--color-text-white:var(--color-white);--color-text-secondary:var(--color-neutral-300);--color-text-secondary_hover:var(--color-neutral-200);--color-text-tertiary_hover:var(--color-neutral-300);--color-text-brand-secondary:var(--color-neutral-300);--color-text-placeholder:var(--color-neutral-500);--color-text-brand-tertiary:var(--color-neutral-400);--color-text-editor-icon-fg:var(--color-neutral-400);--color-text-editor-icon-fg_active:var(--color-white);--color-text-quaternary:var(--color-neutral-400);--color-text-brand-primary:var(--color-neutral-50);--color-text-primary_on-brand:var(--color-neutral-50);--color-text-secondary_on-brand:var(--color-neutral-300);--color-text-tertiary_on-brand:var(--color-neutral-400);--color-text-quaternary_on-brand:var(--color-neutral-400);--color-text-brand-tertiary_alt:var(--color-neutral-50);--color-text-error-primary_hover:var(--color-red-300);--color-text-brand-secondary_hover:var(--color-neutral-200);--color-border-secondary:var(--color-neutral-800);--color-border-error_subtle:var(--color-red-500);--color-border-primary:var(--color-neutral-700);--color-border-brand:var(--color-brand-400);--color-border-error:var(--color-red-400);--color-border-tertiary:var(--color-neutral-800);--color-border-brand_alt:var(--color-neutral-700);--color-border-secondary_alt:var(--color-neutral-800);--color-fg-secondary:var(--color-neutral-300);--color-fg-warning-primary:var(--color-yellow-500);--color-fg-success-primary:var(--color-green-500);--color-fg-white:var(--color-white);--color-fg-success-secondary:var(--color-green-400);--color-fg-secondary_hover:var(--color-neutral-200);--color-fg-primary:var(--color-white);--color-fg-brand-secondary:var(--color-brand-500);--color-fg-brand-primary:var(--color-brand-500);--color-fg-quaternary:var(--color-neutral-600);--color-fg-quaternary_hover:var(--color-neutral-500);--color-fg-error-primary:var(--color-red-500);--color-fg-warning-secondary:var(--color-yellow-400);--color-fg-error-secondary:var(--color-red-400);--color-fg-tertiary:var(--color-neutral-400);--color-fg-tertiary_hover:var(--color-neutral-300);--color-fg-brand-primary_alt:var(--color-neutral-300);--color-fg-brand-secondary_alt:var(--color-neutral-600);--color-fg-brand-secondary_hover:var(--color-neutral-500);--color-bg-primary:var(--color-neutral-950);--color-bg-tertiary:var(--color-neutral-800);--color-bg-brand-primary:var(--color-brand-500);--color-bg-error-secondary:var(--color-red-600);--color-bg-warning-primary:var(--color-yellow-950);--color-bg-warning-secondary:var(--color-yellow-600);--color-bg-success-primary:var(--color-green-950);--color-bg-success-secondary:var(--color-green-600);--color-bg-brand-solid:var(--color-brand-600);--color-bg-secondary-solid:var(--color-neutral-600);--color-bg-error-solid:var(--color-red-600);--color-bg-warning-solid:var(--color-yellow-600);--color-bg-success-solid:var(--color-green-600);--color-bg-secondary_hover:var(--color-neutral-800);--color-bg-primary_hover:var(--color-neutral-900);--color-bg-active:var(--color-neutral-800);--color-bg-brand-solid_hover:var(--color-brand-500);--color-bg-error-primary:var(--color-red-950);--color-bg-brand-secondary:var(--color-brand-600);--color-bg-secondary:var(--color-neutral-900);--color-bg-quaternary:var(--color-neutral-700);--color-bg-primary_alt:var(--color-bg-secondary);--color-bg-brand-primary_alt:var(--color-bg-secondary);--color-bg-secondary_alt:var(--color-bg-primary);--color-bg-overlay:var(--color-neutral-800);--color-bg-brand-section:var(--color-bg-secondary);--color-bg-brand-section_subtle:var(--color-bg-primary);--color-bg-primary-solid:var(--color-bg-secondary);--color-bg-error-solid_hover:var(--color-red-500);--color-app-store-badg-border:var(--color-white);--color-avatar-styles-bg-neutral:224 224 224 1;--color-featured-icon-light-fg-brand:var(--color-brand-200);--color-featured-icon-light-fg-error:var(--color-red-200);--color-featured-icon-light-fg-gray:var(--color-neutral-200);--color-featured-icon-light-fg-success:var(--color-green-200);--color-featured-icon-light-fg-warning:var(--color-yellow-200);--color-focus-ring-error:var(--color-red-500);--color-focus-ring:var(--color-brand-500);--color-footer-button-fg:var(--color-neutral-300);--color-footer-button-fg_hover:var(--color-neutral-100);--color-icon-fg-brand:var(--color-neutral-400);--color-icon-fg-brand_on-brand:var(--color-neutral-400);--color-screen-mockup-border:var(--color-neutral-700);--color-slider-handle-bg:var(--color-fg-brand-primary);--color-slider-handle-border:var(--color-bg-primary);--color-toggle-border:var(--color-transparent);--color-toggle-slim-border_pressed-hover:var(--color-transparent);--color-toggle-slim-border_pressed:var(--color-transparent);--color-tooltip-supporting-text:var(--color-neutral-300);--background-color-primary:var(--color-bg-primary);--background-color-tertiary:var(--color-bg-tertiary);--background-color-brand-primary:var(--color-bg-brand-primary);--background-color-error-secondary:var(--color-bg-error-secondary);--background-color-warning-primary:var(--color-bg-warning-primary);--background-color-warning-secondary:var(--color-bg-warning-secondary);--background-color-success-primary:var(--color-bg-success-primary);--background-color-success-secondary:var(--color-bg-success-secondary);--background-color-brand-solid:var(--color-bg-brand-solid);--background-color-secondary-solid:var(--color-bg-secondary-solid);--background-color-error-solid:var(--color-bg-error-solid);--background-color-warning-solid:var(--color-bg-warning-solid);--background-color-success-solid:var(--color-bg-success-solid);--background-color-secondary_hover:var(--color-bg-secondary_hover);--background-color-primary_hover:var(--color-bg-primary_hover);--background-color-active:var(--color-bg-active);--background-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--background-color-error-primary:var(--color-bg-error-primary);--background-color-brand-secondary:var(--color-bg-brand-secondary);--background-color-secondary:var(--color-bg-secondary);--background-color-quaternary:var(--color-bg-quaternary);--background-color-primary_alt:var(--color-bg-primary_alt);--background-color-brand-primary_alt:var(--color-bg-brand-primary_alt);--background-color-secondary_alt:var(--color-bg-secondary_alt);--background-color-overlay:var(--color-bg-overlay);--background-color-brand-section:var(--color-bg-brand-section);--background-color-brand-section_subtle:var(--color-bg-brand-section_subtle);--background-color-primary-solid:var(--color-bg-primary-solid);--background-color-error-solid_hover:var(--color-bg-error-solid_hover);--background-color-border-brand:var(--color-border-brand);--background-color-border-tertiary:var(--color-border-tertiary);--background-color-border-brand_alt:var(--color-border-brand_alt);--text-color-primary:var(--color-text-primary);--text-color-tertiary:var(--color-text-tertiary);--text-color-error-primary:var(--color-text-error-primary);--text-color-warning-primary:var(--color-text-warning-primary);--text-color-success-primary:var(--color-text-success-primary);--text-color-white:var(--color-text-white);--text-color-secondary:var(--color-text-secondary);--text-color-secondary_hover:var(--color-text-secondary_hover);--text-color-tertiary_hover:var(--color-text-tertiary_hover);--text-color-brand-secondary:var(--color-text-brand-secondary);--text-color-placeholder:var(--color-text-placeholder);--text-color-brand-tertiary:var(--color-text-brand-tertiary);--text-color-editor-icon-fg:var(--color-text-editor-icon-fg);--text-color-editor-icon-fg_active:var(--color-text-editor-icon-fg_active);--text-color-quaternary:var(--color-text-quaternary);--text-color-brand-primary:var(--color-text-brand-primary);--text-color-primary_on-brand:var(--color-text-primary_on-brand);--text-color-secondary_on-brand:var(--color-text-secondary_on-brand);--text-color-tertiary_on-brand:var(--color-text-tertiary_on-brand);--text-color-quaternary_on-brand:var(--color-text-quaternary_on-brand);--text-color-brand-tertiary_alt:var(--color-text-brand-tertiary_alt);--text-color-error-primary_hover:var(--color-text-error-primary_hover);--text-color-brand-secondary_hover:var(--color-text-brand-secondary_hover);--text-color-tooltip-supporting-text:var(--color-tooltip-supporting-text);--border-color-primary:var(--color-border-primary);--border-color-secondary:var(--color-border-secondary);--border-color-secondary_alt:var(--color-border-secondary_alt);--border-color-tertiary:var(--color-border-tertiary);--border-color-error:var(--color-border-error);--border-color-error_subtle:var(--color-border-error_subtle);--border-color-brand:var(--color-border-brand);--border-color-brand_alt:var(--color-border-brand_alt);--border-color-brand-solid:var(--color-bg-brand-solid);--border-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--ring-color-primary:var(--color-border-primary);--ring-color-secondary:var(--color-border-secondary);--ring-color-secondary_alt:var(--color-border-secondary_alt);--ring-color-tertiary:var(--color-border-tertiary);--ring-color-error:var(--color-border-error);--ring-color-error_subtle:var(--color-border-error_subtle);--ring-color-brand:var(--color-border-brand);--ring-color-brand-solid:var(--color-bg-brand-solid);--ring-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--ring-color-brand_alt:var(--color-border-brand_alt);--outline-color-primary:var(--color-border-primary);--outline-color-secondary:var(--color-border-secondary);--outline-color-secondary_alt:var(--color-border-secondary_alt);--outline-color-tertiary:var(--color-border-tertiary);--outline-color-error:var(--color-border-error);--outline-color-error_subtle:var(--color-border-error_subtle);--outline-color-brand:var(--color-border-brand);--outline-color-brand-solid:var(--color-bg-brand-solid);--outline-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--outline-color-brand_alt:var(--color-border-brand_alt)}[data-ichava-root] :is(h1,h2,h3),[data-ichava-portal] :is(h1,h2,h3){letter-spacing:-.01em}[data-ichava-theme]{--font-inter:"Geist";--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-sans:var(--font-body);--bg:var(--color-bg-primary);--fg:var(--color-text-primary);--card:var(--color-bg-primary);--pop:var(--surface);--muted:var(--color-bg-secondary);--muted2:var(--color-bg-tertiary);--z-overlay:60;--z-popover:70;--z-tooltip:80;--z-toast:90;--canvas:var(--color-bg-secondary);--surface:var(--color-bg-primary);--muted-fg:var(--color-text-tertiary);--faint-fg:var(--color-text-quaternary);--border:var(--color-border-primary);--input:var(--color-border-primary);--danger:var(--color-fg-error-primary);--danger-soft:var(--color-bg-error-primary);--success:var(--color-fg-success-primary);--warning:var(--color-fg-warning-primary);--info:var(--color-fg-brand-primary);--shadow:var(--shadow-xs);--shadow-elevated:var(--shadow-lg);--overlay:var(--color-bg-overlay);--code:var(--color-bg-secondary);--tip-bg:var(--color-bg-primary-solid);--tip-fg:var(--color-text-primary_on-brand);--accent:var(--color-bg-brand-solid);--ichm-glow-color:var(--accent);--accent-fg:var(--color-text-white);--accent-soft:var(--color-bg-brand-primary);--ring:var(--color-border-brand);--radius:var(--radius-lg);--console-bg:#0b0b0e;--console-chrome:#18181b;--console-border:#26262b;--console-fg:#e4e4e7;--console-gutter:#7e7e88;--console-comment:#8b8b96;--console-string:#6ee7b7;--console-number:#fbbf24;--console-keyword:#c4b5fd;--console-punct:#94a3b8}:where([data-ichava-theme]){--color-utility-brand-50:var(--color-brand-50);--color-utility-brand-50_alt:var(--color-brand-50);--color-utility-brand-100:var(--color-brand-100);--color-utility-brand-100_alt:var(--color-brand-100);--color-utility-brand-200:var(--color-brand-200);--color-utility-brand-200_alt:var(--color-brand-200);--color-utility-brand-300:var(--color-brand-300);--color-utility-brand-300_alt:var(--color-brand-300);--color-utility-brand-400:var(--color-brand-400);--color-utility-brand-400_alt:var(--color-brand-400);--color-utility-brand-500:var(--color-brand-500);--color-utility-brand-500_alt:var(--color-brand-500);--color-utility-brand-600:var(--color-brand-600);--color-utility-brand-600_alt:var(--color-brand-600);--color-utility-brand-700:var(--color-brand-700);--color-utility-brand-700_alt:var(--color-brand-700);--color-utility-brand-800:var(--color-brand-800);--color-utility-brand-800_alt:var(--color-brand-800);--color-utility-brand-900:var(--color-brand-900);--color-utility-brand-900_alt:var(--color-brand-900);--color-text-brand-secondary:var(--color-brand-700);--color-text-brand-tertiary:var(--color-brand-600);--color-text-brand-primary:var(--color-brand-900);--color-text-secondary_on-brand:var(--color-brand-200);--color-text-tertiary_on-brand:var(--color-brand-200);--color-text-quaternary_on-brand:var(--color-brand-300);--color-text-brand-tertiary_alt:var(--color-brand-600);--color-text-brand-secondary_hover:var(--color-brand-800);--color-border-brand:var(--color-brand-500);--color-border-brand_alt:var(--color-brand-600);--color-fg-brand-secondary:var(--color-brand-500);--color-fg-brand-primary:var(--color-brand-600);--color-fg-brand-primary_alt:var(--color-fg-brand-primary);--color-fg-brand-secondary_alt:var(--color-fg-brand-secondary);--color-fg-brand-secondary_hover:var(--color-brand-600);--color-bg-brand-primary:var(--color-brand-50);--color-bg-brand-solid:var(--color-brand-600);--color-bg-brand-solid_hover:var(--color-brand-700);--color-bg-brand-secondary:var(--color-brand-100);--color-bg-brand-primary_alt:var(--color-brand-50);--color-bg-brand-section:var(--color-brand-800);--color-bg-brand-section_subtle:var(--color-brand-700);--color-featured-icon-light-fg-brand:var(--color-brand-600);--color-focus-ring:var(--color-brand-500);--color-footer-button-fg:var(--color-brand-200);--color-icon-fg-brand:var(--color-brand-600);--color-icon-fg-brand_on-brand:var(--color-brand-200);--color-slider-handle-border:var(--color-brand-600);--color-toggle-slim-border_pressed-hover:var(--color-bg-brand-solid_hover);--color-toggle-slim-border_pressed:var(--color-bg-brand-solid);--background-color-brand-primary:var(--color-bg-brand-primary);--background-color-brand-solid:var(--color-bg-brand-solid);--background-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--background-color-brand-secondary:var(--color-bg-brand-secondary);--background-color-brand-primary_alt:var(--color-bg-brand-primary_alt);--background-color-brand-section:var(--color-bg-brand-section);--background-color-brand-section_subtle:var(--color-bg-brand-section_subtle);--background-color-border-brand:var(--color-border-brand);--background-color-border-brand_alt:var(--color-border-brand_alt);--text-color-brand-secondary:var(--color-text-brand-secondary);--text-color-brand-tertiary:var(--color-text-brand-tertiary);--text-color-brand-primary:var(--color-text-brand-primary);--text-color-secondary_on-brand:var(--color-text-secondary_on-brand);--text-color-tertiary_on-brand:var(--color-text-tertiary_on-brand);--text-color-quaternary_on-brand:var(--color-text-quaternary_on-brand);--text-color-brand-tertiary_alt:var(--color-text-brand-tertiary_alt);--text-color-brand-secondary_hover:var(--color-text-brand-secondary_hover);--border-color-brand:var(--color-border-brand);--border-color-brand_alt:var(--color-border-brand_alt);--border-color-brand-solid:var(--color-bg-brand-solid);--border-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--ring-color-brand:var(--color-border-brand);--ring-color-brand_alt:var(--color-border-brand_alt);--ring-color-brand-solid:var(--color-bg-brand-solid);--ring-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--outline-color-brand:var(--color-border-brand);--outline-color-brand_alt:var(--color-border-brand_alt);--outline-color-brand-solid:var(--color-bg-brand-solid);--outline-color-brand-solid_hover:var(--color-bg-brand-solid_hover);--info:var(--color-fg-brand-primary);--ichm-glow-color:var(--accent)}[data-ichava-root],[data-ichava-portal]{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@scope([data-ichava-theme]){input,select,button{font-family:inherit}button{white-space:nowrap}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent)}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){a:hover{color:color-mix(in oklab, var(--accent) 78%, var(--fg))}}}}@layer components;@layer utilities{.\@container{container-type:inline-size}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-\[13px\]{width:13px;height:13px}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-full{height:100%}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.bg-\[\#ece8de\]{background-color:#ece8de}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-1{padding-top:var(--spacing)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[\#1f1c17\]{color:#1f1c17}.text-green-400{color:var(--color-green-400)}.text-red-400{color:var(--color-red-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.filter{filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out);animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:bg-\[\#14120e\]:where(.dark-mode,.dark-mode *){background-color:#14120e}@media (prefers-color-scheme:dark){.dark\:bg-\[\#14120e\]{background-color:#14120e}}.dark\:text-\[\#f6f4ee\]:where(.dark-mode,.dark-mode *){color:#f6f4ee}@media (prefers-color-scheme:dark){.dark\:text-\[\#f6f4ee\]{color:#f6f4ee}}@scope([data-ichava-theme]){.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.inset-y-0\.5{inset-block:calc(var(--spacing) * .5)}.start-4{inset-inline-start:calc(var(--spacing) * 4)}.-end-\[5px\]{inset-inline-end:-5px}.end-0{inset-inline-end:calc(var(--spacing) * 0)}.end-1{inset-inline-end:calc(var(--spacing) * 1)}.end-2{inset-inline-end:calc(var(--spacing) * 2)}.end-2\.5{inset-inline-end:calc(var(--spacing) * 2.5)}.end-3{inset-inline-end:calc(var(--spacing) * 3)}.end-4{inset-inline-end:calc(var(--spacing) * 4)}.end-\[1\.5px\]{inset-inline-end:1.5px}.end-\[1px\]{inset-inline-end:1px}.-top-2{top:calc(var(--spacing) * -2)}.-top-\[5px\]{top:-5px}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-\[1px\]{top:1px}.top-\[2px\]{top:2px}.-right-px{right:-1px}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.-bottom-px{bottom:-1px}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\[3px\]{bottom:3px}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-3\.5{left:calc(var(--spacing) * 3.5)}.isolate{isolation:isolate}.z-\(--z-overlay\){z-index:var(--z-overlay)}.z-\(--z-popover\){z-index:var(--z-popover)}.z-\(--z-tooltip\){z-index:var(--z-tooltip)}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-10{z-index:10}.z-50{z-index:50}.z-55{z-index:55}.z-70{z-index:70}.z-88{z-index:88}.z-\[var\(--z-toast\)\]{z-index:var(--z-toast)}.container{width:100%}@media (width>=320px){.container{max-width:320px}}@media (width>=600px){.container{max-width:600px}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-m-1{margin:calc(var(--spacing) * -1)}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-\[10px\]{margin-inline:-10px}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.-my-px{margin-block:-1px}.my-0{margin-block:0}.my-1{margin-block:var(--spacing)}.ms-1{margin-inline-start:var(--spacing)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:var(--spacing)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-\[8vh\]{margin-top:8vh}.mt-\[10\%\]{margin-top:10%}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-0\.75{margin-left:calc(var(--spacing) * -.75)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[1_\/_0\.9\]{aspect-ratio:1/.9}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-\[13px\]{width:13px;height:13px}.size-full{width:100%;height:100%}.size-max{width:max-content;height:max-content}.h-0{height:0}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-32{height:calc(var(--spacing) * 32)}.h-56{height:calc(var(--spacing) * 56)}.h-\[1px\]{height:1px}.h-\[3px\]{height:3px}.h-\[9px\]{height:9px}.h-\[10px\]{height:10px}.h-\[15px\]{height:15px}.h-\[17px\]{height:17px}.h-\[18px\]{height:18px}.h-\[20\%\]{height:20%}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[38px\]{height:38px}.h-\[42px\]{height:42px}.h-\[44px\]{height:44px}.h-\[46px\]{height:46px}.h-full{height:100%}.h-max{height:max-content}.h-min{height:min-content}.h-px{height:1px}.max-h-56\!{max-height:calc(var(--spacing) * 56)!important}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-64\!{max-height:calc(var(--spacing) * 64)!important}.max-h-80\!{max-height:calc(var(--spacing) * 80)!important}.max-h-106{max-height:calc(var(--spacing) * 106)}.max-h-\[72vh\]{max-height:72vh}.max-h-\[340px\]{max-height:340px}.max-h-\[calc\(var\(--visual-viewport-height\)-var\(--modal-pt\)-var\(--modal-pb\)\)\]{max-height:calc(var(--visual-viewport-height) - var(--modal-pt) - var(--modal-pb))}.max-h-\[inherit\]{max-height:inherit}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-\[34px\]{min-height:34px}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/5{width:40%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-62{width:calc(var(--spacing) * 62)}.w-80{width:calc(var(--spacing) * 80)}.w-160{width:calc(var(--spacing) * 160)}.w-\[1px\]{width:1px}.w-\[10px\]{width:10px}.w-\[12px\]{width:12px}.w-\[15px\]{width:15px}.w-\[17px\]{width:17px}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[26px\]{width:26px}.w-\[30px\]{width:30px}.w-\[38px\]{width:38px}.w-\[46px\]{width:46px}.w-\[60\%\]{width:60%}.w-\[88px\]{width:88px}.w-\[104px\]{width:104px}.w-\[280px\]{width:280px}.w-\[360px\]{width:360px}.w-\[560px\]{width:560px}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[40ch\]{max-width:40ch}.max-w-\[44ch\]{max-width:44ch}.max-w-\[90\%\]{max-width:90%}.max-w-\[94vw\]{max-width:94vw}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[280px\]{max-width:280px}.max-w-\[360px\]{max-width:360px}.max-w-\[calc\(100vw-16px\)\]{max-width:calc(100vw - 16px)}.max-w-\[calc\(100vw-32px\)\],.max-w-\[calc\(100vw_-_32px\)\]{max-width:calc(100vw - 32px)}.max-w-\[min\(24rem\,calc\(100vw-16px\)\)\]{max-width:min(24rem,100vw - 16px)}.max-w-full{max-width:100%}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--trigger-width\){min-width:var(--trigger-width)}.min-w-0{min-width:0}.min-w-2{min-width:calc(var(--spacing) * 2)}.min-w-3\.5{min-width:calc(var(--spacing) * 3.5)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\(--trigger-anchor-point\){transform-origin:var(--trigger-anchor-point)}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )}.\[animation\:ichIn_\.14s_ease\]{animation:.14s ichIn}.\[animation\:ichRise_\.2s_ease\]{animation:.2s ichRise}.\[animation\:ichTaskSlide_1\.1s_ease-in-out_infinite\]{animation:1.1s ease-in-out infinite ichTaskSlide}.\[animation\:…\]{animation:…}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x, ) var(--tw-pan-y, ) var(--tw-pinch-zoom, )}.touch-none{touch-action:none}.resize{resize:both}.scroll-py-10{scroll-padding-block:calc(var(--spacing) * 10)}.scroll-pb-22{scroll-padding-bottom:calc(var(--spacing) * 22)}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[max-content_1fr\]{grid-template-columns:max-content 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(84px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-\[1px\]{gap:1px}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.gap-\[9px\]{gap:9px}.gap-\[10px\]{gap:10px}.gap-\[11px\]{gap:11px}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{-moz-column-gap:var(--spacing);column-gap:var(--spacing)}.gap-x-1\.5{-moz-column-gap:calc(var(--spacing) * 1.5);column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{-moz-column-gap:calc(var(--spacing) * 2);column-gap:calc(var(--spacing) * 2)}.gap-x-3{-moz-column-gap:calc(var(--spacing) * 3);column-gap:calc(var(--spacing) * 3)}.gap-x-4{-moz-column-gap:calc(var(--spacing) * 4);column-gap:calc(var(--spacing) * 4)}:where(.-space-x-0>:not(:last-child)){--tw-space-x-reverse:0;margin-inline:0}:where(.-space-x-px>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(-1px * var(--tw-space-x-reverse));margin-inline-end:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[7px\]{border-radius:7px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[12px\]{border-radius:12px}.rounded-\[14px\]{border-radius:14px}.rounded-\[calc\(var\(--radius\)_-_2px\)\]{border-radius:calc(var(--radius) - 2px)}.rounded-\[calc\(var\(--radius\)_-_3px\)\]{border-radius:calc(var(--radius) - 3px)}.rounded-\[var\(--radius\)\]{border-radius:var(--radius)}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-r-\[inherit\]{border-top-right-radius:inherit;border-bottom-right-radius:inherit}.rounded-bl-\[5px\]{border-bottom-left-radius:5px}.rounded-bl-\[6px\]{border-bottom-left-radius:6px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[color-mix\(in_oklab\,var\(--accent\)_45\%\,transparent\)\]{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_oklab\,var\(--accent\)_45\%\,transparent\)\]{border-color:color-mix(in oklab,var(--accent) 45%,transparent)}}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--console-border\)\]{border-color:var(--console-border)}.border-border-secondary{border-color:var(--color-border-secondary)}.border-fg-brand-primary_alt{border-color:var(--color-fg-brand-primary_alt)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-secondary{border-color:var(--border-color-secondary)}.border-toggle-border{border-color:var(--color-toggle-border)}.border-toggle-slim-border_pressed{border-color:var(--color-toggle-slim-border_pressed)}.border-toggle-slim-border_pressed-hover{border-color:var(--color-toggle-slim-border_pressed-hover)}.border-transparent{border-color:#0000}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-t-\[var\(--border\)\]{border-top-color:var(--border)}.border-b-\[var\(--border\)\]{border-bottom-color:var(--border)}.border-b-\[var\(--console-border\)\]{border-bottom-color:var(--console-border)}.bg-\[\#ece8de\]{background-color:#ece8de}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--accent-soft\)\]{background-color:var(--accent-soft)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--card\)\]{background-color:var(--card)}.bg-\[var\(--console-bg\)\]{background-color:var(--console-bg)}.bg-\[var\(--console-chrome\)\]{background-color:var(--console-chrome)}.bg-\[var\(--danger\)\]{background-color:var(--danger)}.bg-\[var\(--faint-fg\)\]{background-color:var(--faint-fg)}.bg-\[var\(--muted\)\]{background-color:var(--muted)}.bg-\[var\(--muted2\)\]{background-color:var(--muted2)}.bg-\[var\(--pop\)\]{background-color:var(--pop)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-alpha-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-alpha-white\/80{background-color:color-mix(in oklab, var(--color-alpha-white) 80%, transparent)}}.bg-border-secondary{background-color:var(--color-border-secondary)}.bg-brand-primary_alt{background-color:var(--background-color-brand-primary_alt)}.bg-brand-secondary{background-color:var(--background-color-brand-secondary)}.bg-brand-solid{background-color:var(--background-color-brand-solid)}.bg-brand-solid_hover{background-color:var(--background-color-brand-solid_hover)}.bg-error-secondary{background-color:var(--background-color-error-secondary)}.bg-error-solid{background-color:var(--background-color-error-solid)}.bg-fg-brand-primary_alt{background-color:var(--color-fg-brand-primary_alt)}.bg-fg-error-primary{background-color:var(--color-fg-error-primary)}.bg-fg-success-secondary{background-color:var(--color-fg-success-secondary)}.bg-fg-white{background-color:var(--color-fg-white)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-overlay\/70{background-color:#14120eb3}@supports (color:color-mix(in lab, red, red)){.bg-overlay\/70{background-color:color-mix(in oklab, var(--background-color-overlay) 70%, transparent)}}.bg-primary{background-color:var(--background-color-primary)}.bg-primary-solid{background-color:var(--background-color-primary-solid)}.bg-primary_alt{background-color:var(--background-color-primary_alt)}.bg-primary_hover{background-color:var(--background-color-primary_hover)}.bg-quaternary{background-color:var(--background-color-quaternary)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:var(--background-color-secondary)}.bg-secondary-solid{background-color:var(--background-color-secondary-solid)}.bg-secondary_alt{background-color:var(--background-color-secondary_alt)}.bg-secondary_hover{background-color:var(--background-color-secondary_hover)}.bg-slider-handle-bg{background-color:var(--color-slider-handle-bg)}.bg-success-secondary{background-color:var(--background-color-success-secondary)}.bg-success-solid{background-color:var(--background-color-success-solid)}.bg-tertiary{background-color:var(--background-color-tertiary)}.bg-transparent{background-color:#0000}.bg-utility-blue-50{background-color:var(--color-utility-blue-50)}.bg-utility-brand-50{background-color:var(--color-utility-brand-50)}.bg-utility-green-50{background-color:var(--color-utility-green-50)}.bg-utility-indigo-50{background-color:var(--color-utility-indigo-50)}.bg-utility-neutral-50{background-color:var(--color-utility-neutral-50)}.bg-utility-neutral-300{background-color:var(--color-utility-neutral-300)}.bg-utility-orange-50{background-color:var(--color-utility-orange-50)}.bg-utility-pink-50{background-color:var(--color-utility-pink-50)}.bg-utility-purple-50{background-color:var(--color-utility-purple-50)}.bg-utility-red-50{background-color:var(--color-utility-red-50)}.bg-utility-sky-50{background-color:var(--color-utility-sky-50)}.bg-utility-slate-50{background-color:var(--color-utility-slate-50)}.bg-utility-yellow-50{background-color:var(--color-utility-yellow-50)}.bg-warning-secondary{background-color:var(--background-color-warning-secondary)}.bg-warning-solid{background-color:var(--background-color-warning-solid)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(155deg\,color-mix\(in_srgb\,var\(--accent\)_60\%\,\#fff\)\,var\(--accent\)_72\%\)\]{background-image:linear-gradient(155deg,var(--accent),var(--accent) 72%)}@supports (color:color-mix(in lab, red, red)){.bg-\[linear-gradient\(155deg\,color-mix\(in_srgb\,var\(--accent\)_60\%\,\#fff\)\,var\(--accent\)_72\%\)\]{background-image:linear-gradient(155deg,color-mix(in srgb,var(--accent) 60%,#fff),var(--accent) 72%)}}.bg-none{background-image:none}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-bg-primary{--tw-gradient-to:var(--color-bg-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-40\%{--tw-gradient-to-position:40%}.fill-bg-primary-solid{fill:var(--color-bg-primary-solid)}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.stroke-\[2\.25px\]{stroke-width:2.25px}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\!{padding:0!important}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-\[1\.5px\]{padding:1.5px}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\.5{padding-inline:calc(var(--spacing) * 4.5)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-\[3px\]{padding-inline:3px}.px-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[9px\]{padding-inline:9px}.px-\[10px\]{padding-inline:10px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[1px\]{padding-block:1px}.py-\[5px\]{padding-block:5px}.py-\[9px\]{padding-block:9px}.py-\[18px\]{padding-block:18px}.py-px{padding-block:1px}.ps-2{padding-inline-start:calc(var(--spacing) * 2)}.pe-7{padding-inline-end:calc(var(--spacing) * 7)}.pe-8{padding-inline-end:calc(var(--spacing) * 8)}.pe-11{padding-inline-end:calc(var(--spacing) * 11)}.pt-\(--modal-pt\){padding-top:var(--modal-pt)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[10px\]{padding-top:10px}.pt-\[26px\]{padding-top:26px}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-9\.5{padding-right:calc(var(--spacing) * 9.5)}.pb-\(--modal-pb\){padding-bottom:var(--modal-pb)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-13{padding-bottom:calc(var(--spacing) * 13)}.pb-\[18px\]{padding-bottom:18px}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4\.5{padding-left:calc(var(--spacing) * 4.5)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-10\.5{padding-left:calc(var(--spacing) * 10.5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-\[family-name\:\'Geist\'\,system-ui\]{font-family:Geist,system-ui}.font-\[family-name\:\'Geist_Mono\'\,monospace\]{font-family:Geist Mono,monospace}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-\[13px\]\/5{font-size:13px;line-height:calc(var(--spacing) * 5)}.text-display-xs{font-size:var(--text-display-xs);line-height:var(--tw-leading,var(--text-display-xs--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[length\:var\(--app-font\,13\.5px\)\]{font-size:var(--app-font,13.5px)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.7\]{--tw-leading:1.7;line-height:1.7}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-\[1\.55\]{--tw-leading:1.55;line-height:1.55}.leading-\[13px\]{--tw-leading:13px;line-height:13px}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.font-\[500\]{--tw-font-weight:500;font-weight:500}.font-\[550\]{--tw-font-weight:550;font-weight:550}.font-\[600\]{--tw-font-weight:600;font-weight:600}.font-\[700\]{--tw-font-weight:700;font-weight:700}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[word-break\:break-word\]{word-break:break-word}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#1f1c17\]{color:#1f1c17}.text-\[\#fff\]{color:#fff}.text-\[var\(--accent-fg\)\]{color:var(--accent-fg)}.text-\[var\(--accent-text\)\]{color:var(--accent-text)}.text-\[var\(--bg\)\]{color:var(--bg)}.text-\[var\(--color-text-brand-secondary\)\]{color:var(--color-text-brand-secondary)}.text-\[var\(--console-comment\)\]{color:var(--console-comment)}.text-\[var\(--console-fg\)\]{color:var(--console-fg)}.text-\[var\(--console-gutter\)\]{color:var(--console-gutter)}.text-\[var\(--danger\)\]{color:var(--danger)}.text-\[var\(--faint-fg\)\]{color:var(--faint-fg)}.text-\[var\(--fg\)\]{color:var(--fg)}.text-\[var\(--muted-fg\)\]{color:var(--muted-fg)}.text-brand-primary{color:var(--text-color-brand-primary)}.text-brand-secondary{color:var(--text-color-brand-secondary)}.text-brand-tertiary{color:var(--text-color-brand-tertiary)}.text-current{color:currentColor}.text-error-primary{color:var(--text-color-error-primary)}.text-featured-icon-light-fg-brand{color:var(--color-featured-icon-light-fg-brand)}.text-featured-icon-light-fg-error{color:var(--color-featured-icon-light-fg-error)}.text-featured-icon-light-fg-gray{color:var(--color-featured-icon-light-fg-gray)}.text-featured-icon-light-fg-success{color:var(--color-featured-icon-light-fg-success)}.text-featured-icon-light-fg-warning{color:var(--color-featured-icon-light-fg-warning)}.text-fg-brand-primary{color:var(--color-fg-brand-primary)}.text-fg-brand-primary_alt{color:var(--color-fg-brand-primary_alt)}.text-fg-error-primary{color:var(--color-fg-error-primary)}.text-fg-error-secondary{color:var(--color-fg-error-secondary)}.text-fg-quaternary{color:var(--color-fg-quaternary)}.text-fg-quaternary_hover{color:var(--color-fg-quaternary_hover)}.text-fg-secondary{color:var(--color-fg-secondary)}.text-fg-success-primary{color:var(--color-fg-success-primary)}.text-fg-success-secondary{color:var(--color-fg-success-secondary)}.text-fg-tertiary{color:var(--color-fg-tertiary)}.text-fg-warning-primary{color:var(--color-fg-warning-primary)}.text-fg-white{color:var(--color-fg-white)}.text-green-400{color:var(--color-green-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-placeholder{color:var(--text-color-placeholder)}.text-primary{color:var(--text-color-primary)}.text-quaternary{color:var(--text-color-quaternary)}.text-red-400{color:var(--color-red-400)}.text-secondary{color:var(--text-color-secondary)}.text-secondary_hover{color:var(--text-color-secondary_hover)}.text-tertiary{color:var(--text-color-tertiary)}.text-tooltip-supporting-text{color:var(--text-color-tooltip-supporting-text)}.text-transparent{color:#0000}.text-utility-blue-400{color:var(--color-utility-blue-400)}.text-utility-blue-500{color:var(--color-utility-blue-500)}.text-utility-blue-700{color:var(--color-utility-blue-700)}.text-utility-brand-400{color:var(--color-utility-brand-400)}.text-utility-brand-500{color:var(--color-utility-brand-500)}.text-utility-brand-700{color:var(--color-utility-brand-700)}.text-utility-green-400{color:var(--color-utility-green-400)}.text-utility-green-500{color:var(--color-utility-green-500)}.text-utility-green-700{color:var(--color-utility-green-700)}.text-utility-indigo-400{color:var(--color-utility-indigo-400)}.text-utility-indigo-500{color:var(--color-utility-indigo-500)}.text-utility-indigo-700{color:var(--color-utility-indigo-700)}.text-utility-neutral-400{color:var(--color-utility-neutral-400)}.text-utility-neutral-500{color:var(--color-utility-neutral-500)}.text-utility-neutral-700{color:var(--color-utility-neutral-700)}.text-utility-orange-400{color:var(--color-utility-orange-400)}.text-utility-orange-500{color:var(--color-utility-orange-500)}.text-utility-orange-700{color:var(--color-utility-orange-700)}.text-utility-pink-400{color:var(--color-utility-pink-400)}.text-utility-pink-500{color:var(--color-utility-pink-500)}.text-utility-pink-700{color:var(--color-utility-pink-700)}.text-utility-purple-400{color:var(--color-utility-purple-400)}.text-utility-purple-500{color:var(--color-utility-purple-500)}.text-utility-purple-700{color:var(--color-utility-purple-700)}.text-utility-red-400{color:var(--color-utility-red-400)}.text-utility-red-500{color:var(--color-utility-red-500)}.text-utility-red-700{color:var(--color-utility-red-700)}.text-utility-sky-400{color:var(--color-utility-sky-400)}.text-utility-sky-500{color:var(--color-utility-sky-500)}.text-utility-sky-700{color:var(--color-utility-sky-700)}.text-utility-slate-400{color:var(--color-utility-slate-400)}.text-utility-slate-500{color:var(--color-utility-slate-500)}.text-utility-slate-700{color:var(--color-utility-slate-700)}.text-utility-yellow-400{color:var(--color-utility-yellow-400)}.text-utility-yellow-500{color:var(--color-utility-yellow-500)}.text-utility-yellow-700{color:var(--color-utility-yellow-700)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.caret-alpha-black\/90{caret-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.caret-alpha-black\/90{caret-color:color-mix(in oklab, var(--color-alpha-black) 90%, transparent)}}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_6px_16px_-6px_var\(--accent-soft\)\]{--tw-shadow:0 6px 16px -6px var(--tw-shadow-color,var(--accent-soft));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow\)\]{--tw-shadow:var(--shadow);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-elevated\)\]{--tw-shadow:var(--shadow-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f0f), 0px 12px 32px -12px var(--tw-shadow-color,#12110f3d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f0f), 0px 8px 20px -10px var(--tw-shadow-color,#12110f2e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-skeuomorphic{--tw-shadow:0px 0px 0px 0px var(--tw-shadow-color,transparent);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f0f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0px 1px 2px var(--tw-shadow-color,#12110f14), 0px 20px 48px -16px var(--tw-shadow-color,#12110f4d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0px 1px 0px var(--tw-shadow-color,#12110f0a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs-skeuomorphic{--tw-shadow:var(--shadow-xs);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[0\.5px\]{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[1\.5px\]{--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[var\(--border\)\]{--tw-ring-color:var(--border)}.ring-bg-primary{--tw-ring-color:var(--color-bg-primary)}.ring-brand{--tw-ring-color:var(--ring-color-brand)}.ring-brand-solid{--tw-ring-color:var(--ring-color-brand-solid)}.ring-error{--tw-ring-color:var(--ring-color-error)}.ring-error_subtle{--tw-ring-color:var(--ring-color-error_subtle)}.ring-focus-ring{--tw-ring-color:var(--color-focus-ring)}.ring-primary{--tw-ring-color:var(--ring-color-primary)}.ring-secondary{--tw-ring-color:var(--ring-color-secondary)}.ring-secondary_alt{--tw-ring-color:var(--ring-color-secondary_alt)}.ring-slider-handle-border{--tw-ring-color:var(--color-slider-handle-border)}.ring-transparent{--tw-ring-color:transparent}.ring-utility-blue-200{--tw-ring-color:var(--color-utility-blue-200)}.ring-utility-brand-200{--tw-ring-color:var(--color-utility-brand-200)}.ring-utility-green-200{--tw-ring-color:var(--color-utility-green-200)}.ring-utility-indigo-200{--tw-ring-color:var(--color-utility-indigo-200)}.ring-utility-neutral-200{--tw-ring-color:var(--color-utility-neutral-200)}.ring-utility-orange-200{--tw-ring-color:var(--color-utility-orange-200)}.ring-utility-pink-200{--tw-ring-color:var(--color-utility-pink-200)}.ring-utility-purple-200{--tw-ring-color:var(--color-utility-purple-200)}.ring-utility-red-200{--tw-ring-color:var(--color-utility-red-200)}.ring-utility-sky-200{--tw-ring-color:var(--color-utility-sky-200)}.ring-utility-slate-200{--tw-ring-color:var(--color-utility-slate-200)}.ring-utility-yellow-200{--tw-ring-color:var(--color-utility-yellow-200)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline-hidden\!{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.outline-hidden\!{outline-offset:2px!important;outline:2px solid #0000!important}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\[0\.5px\]{outline-style:var(--tw-outline-style);outline-width:.5px}.-outline-offset-2{outline-offset:calc(2px * -1)}.-outline-offset-\[0\.5px\]{outline-offset:calc(.5px * -1)}.outline-offset-2{outline-offset:2px}.outline-black\/16{outline-color:#00000029}@supports (color:color-mix(in lab, red, red)){.outline-black\/16{outline-color:color-mix(in oklab, var(--color-black) 16%, transparent)}}.outline-brand{outline-color:var(--outline-color-brand)}.outline-error{outline-color:var(--outline-color-error)}.outline-focus-ring{outline-color:var(--color-focus-ring)}.outline-transparent{outline-color:#0000}.blur{--tw-blur:blur(8px);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.invert{--tw-invert:invert(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.filter{filter:var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}.\[backdrop-filter\:…\]{-webkit-backdrop-filter:…;backdrop-filter:…}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[inherit\]{transition-property:inherit;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[translate\]{transition-property:translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-inherit-all{transition-property:inherit;transition-duration:inherit;transition-timing-function:inherit}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.animate-out{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--modal-pb\:clamp\(16px\,8vh\,64px\)\]{--modal-pb:clamp(16px, 8vh, 64px)}.\[--modal-pt\:16px\]{--modal-pt:16px}.duration-100{animation-duration:.1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.fade-in{--tw-enter-opacity:0}.fade-out{--tw-exit-opacity:0}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.zoom-in-95{--tw-enter-scale:.95}.zoom-out{--tw-exit-scale:0}.zoom-out-95{--tw-exit-scale:.95}:is(.\*\:grow>*){flex-grow:1}.not-last\:pr-1:not(:last-child){padding-right:var(--spacing)}.not-last\:pr-2:not(:last-child){padding-right:calc(var(--spacing) * 2)}.not-last\:pr-\[calc\(calc\(var\(--spacing\)\*3\.5\)\+1px\)\]:not(:last-child){padding-right:calc(calc(var(--spacing) * 3.5) + 1px)}.not-last\:pr-\[calc\(calc\(var\(--spacing\)\*4\)\+1px\)\]:not(:last-child){padding-right:calc(calc(var(--spacing) * 4) + 1px)}.not-last\:pr-\[calc\(calc\(var\(--spacing\)\*4\.5\)\+1px\)\]:not(:last-child){padding-right:calc(calc(var(--spacing) * 4.5) + 1px)}:is(:where(.group):is(:where([data-rac])[data-required],:where(:not([data-rac])):required) .group-required\:block){display:block}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:text-error-primary){color:var(--text-color-error-primary)}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:ring-2){--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:ring-error){--tw-ring-color:var(--ring-color-error)}:is(:where(.group):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\:ring-error_subtle){--tw-ring-color:var(--ring-color-error_subtle)}:is(:where(.group\/input):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\/input\:block){display:block}:is(:where(.group\/input):is(:where([data-rac])[data-invalid],:where(:not([data-rac])):invalid) .group-invalid\/input\:hidden){display:none}@media (hover:hover){:is(:where(.group):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover) .group-hover\:bg-primary_hover){background-color:var(--background-color-primary_hover)}:is(:where(.group\/button-group):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover) .group-hover\/button-group\:text-fg-quaternary_hover){color:var(--color-fg-quaternary_hover)}}:is(:where(.group):is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible) .group-focus-visible\:outline-2){outline-style:var(--tw-outline-style);outline-width:2px}:is(:where(.group):is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible) .group-focus-visible\:outline-offset-2){outline-offset:2px}:is(:where(.group):is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible) .group-focus-visible\:outline-focus-ring){outline-color:var(--color-focus-ring)}:is(:where(.group):is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled) .group-disabled\:cursor-not-allowed){cursor:not-allowed}:is(:where(.group):is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled) .group-disabled\:opacity-50){opacity:.5}:is(:where(.group)[data-orientation=vertical] .group-orientation-vertical\:justify-start){justify-content:flex-start}:is(:where(.group\/button-group)[data-selected] .group-selected\/button-group\:text-fg-quaternary_hover){color:var(--color-fg-quaternary_hover)}.placeholder\:text-placeholder::placeholder{color:var(--text-color-placeholder)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-0:before{content:var(--tw-content);inset:0}.before\:inset-1:before{content:var(--tw-content);inset:var(--spacing)}.before\:inset-\[0\.5px\]:before{content:var(--tw-content);inset:.5px}.before\:inset-px:before{content:var(--tw-content);inset:1px}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:-top-px:before{content:var(--tw-content);top:-1px}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:z-10:before{content:var(--tw-content);z-index:10}.before\:size-6:before{content:var(--tw-content);width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.before\:size-7:before{content:var(--tw-content);width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.before\:size-8:before{content:var(--tw-content);width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.before\:size-9:before{content:var(--tw-content);width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.before\:size-full:before{content:var(--tw-content);width:100%;height:100%}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing) * .5)}.before\:h-px:before{content:var(--tw-content);height:1px}.before\:rounded-\[4px\]:before{content:var(--tw-content);border-radius:4px}.before\:rounded-\[5px\]:before{content:var(--tw-content);border-radius:5px}.before\:rounded-\[6px\]:before{content:var(--tw-content);border-radius:6px}.before\:rounded-\[7px\]:before{content:var(--tw-content);border-radius:7px}.before\:rounded-\[8px\]:before{content:var(--tw-content);border-radius:8px}.before\:rounded-\[9px\]:before{content:var(--tw-content);border-radius:9px}.before\:rounded-\[10px\]:before{content:var(--tw-content);border-radius:10px}.before\:rounded-\[11px\]:before{content:var(--tw-content);border-radius:11px}.before\:rounded-\[inherit\]:before{content:var(--tw-content);border-radius:inherit}.before\:rounded-full:before{content:var(--tw-content);border-radius:var(--radius-full)}.before\:border:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.before\:border-fg-brand-primary\/30:before{content:var(--tw-content);border-color:#7f56d94d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-brand-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-brand-primary) 30%, transparent)}}.before\:border-fg-error-primary\/30:before{content:var(--tw-content);border-color:#e400144d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-error-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-error-primary) 30%, transparent)}}.before\:border-fg-success-primary\/30:before{content:var(--tw-content);border-color:#00a5444d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-success-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-success-primary) 30%, transparent)}}.before\:border-fg-tertiary\/30:before{content:var(--tw-content);border-color:#5e5a524d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-tertiary\/30:before{border-color:color-mix(in oklab, var(--color-fg-tertiary) 30%, transparent)}}.before\:border-fg-warning-primary\/30:before{content:var(--tw-content);border-color:#cd89004d}@supports (color:color-mix(in lab, red, red)){.before\:border-fg-warning-primary\/30:before{border-color:color-mix(in oklab, var(--color-fg-warning-primary) 30%, transparent)}}.before\:border-utility-brand-200:before{content:var(--tw-content);border-color:var(--color-utility-brand-200)}.before\:border-utility-brand-200\/12:before{content:var(--tw-content);border-color:#e9d7fe1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-brand-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-brand-200) 12%, transparent)}}.before\:border-utility-green-200:before{content:var(--tw-content);border-color:var(--color-utility-green-200)}.before\:border-utility-green-200\/12:before{content:var(--tw-content);border-color:#b9f8cf1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-green-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-green-200) 12%, transparent)}}.before\:border-utility-neutral-200:before{content:var(--tw-content);border-color:var(--color-utility-neutral-200)}.before\:border-utility-neutral-200\/12:before{content:var(--tw-content);border-color:#ded8cb1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-neutral-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-neutral-200) 12%, transparent)}}.before\:border-utility-red-200:before{content:var(--tw-content);border-color:var(--color-utility-red-200)}.before\:border-utility-red-200\/12:before{content:var(--tw-content);border-color:#ffcaca1f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-red-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-red-200) 12%, transparent)}}.before\:border-utility-yellow-200:before{content:var(--tw-content);border-color:var(--color-utility-yellow-200)}.before\:border-utility-yellow-200\/12:before{content:var(--tw-content);border-color:#fff0851f}@supports (color:color-mix(in lab, red, red)){.before\:border-utility-yellow-200\/12:before{border-color:color-mix(in oklab, var(--color-utility-yellow-200) 12%, transparent)}}.before\:border-white\/12:before{content:var(--tw-content);border-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.before\:border-white\/12:before{border-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.before\:border-white\/32:before{content:var(--tw-content);border-color:#ffffff52}@supports (color:color-mix(in lab, red, red)){.before\:border-white\/32:before{border-color:color-mix(in oklab, var(--color-white) 32%, transparent)}}.before\:bg-border-secondary:before{content:var(--tw-content);background-color:var(--color-border-secondary)}.before\:bg-brand-solid:before{content:var(--tw-content);background-color:var(--background-color-brand-solid)}.before\:bg-utility-brand-50:before{content:var(--tw-content);background-color:var(--color-utility-brand-50)}.before\:bg-utility-green-50:before{content:var(--tw-content);background-color:var(--color-utility-green-50)}.before\:bg-utility-neutral-50:before{content:var(--tw-content);background-color:var(--color-utility-neutral-50)}.before\:bg-utility-red-50:before{content:var(--tw-content);background-color:var(--color-utility-red-50)}.before\:bg-utility-yellow-50:before{content:var(--tw-content);background-color:var(--color-utility-yellow-50)}.before\:mask-b-from-0\%:before{content:var(--tw-content);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);-webkit-mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);mask-image:var(--tw-mask-linear), var(--tw-mask-radial), var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left), var(--tw-mask-right), var(--tw-mask-bottom), var(--tw-mask-top);--tw-mask-bottom:linear-gradient(to bottom, var(--tw-mask-bottom-from-color) var(--tw-mask-bottom-from-position), var(--tw-mask-bottom-to-color) var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:0%;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;mask-composite:intersect}.before\:mask-\[linear-gradient\(to_bottom\,black_0\%\,transparent_25\%\,transparent_75\%\,black_100\%\)\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#000 0%,#0000 25% 75%,#000 100%);mask-image:linear-gradient(#000 0%,#0000 25% 75%,#000 100%)}.before\:shadow-\[0px_1px_2px_0px_rgba\(0\,0\,0\,0\.1\)\,0px_3px_3px_0px_rgba\(0\,0\,0\,0\.09\)\,1px_8px_5px_0px_rgba\(0\,0\,0\,0\.05\)\,2px_21px_6px_0px_rgba\(0\,0\,0\,0\)\,0px_0px_0px_1px_rgba\(0\,0\,0\,0\.08\)\,1px_13px_5px_0px_rgba\(0\,0\,0\,0\.01\)\,0px_-2px_2px_0px_rgba\(0\,0\,0\,0\.13\)_inset\]:before{content:var(--tw-content);--tw-shadow:0px 1px 2px 0px var(--tw-shadow-color,#0000001a), 0px 3px 3px 0px var(--tw-shadow-color,#00000017), 1px 8px 5px 0px var(--tw-shadow-color,#0000000d), 2px 21px 6px 0px var(--tw-shadow-color,#0000), 0px 0px 0px 1px var(--tw-shadow-color,#00000014), 1px 13px 5px 0px var(--tw-shadow-color,#00000003), 0px -2px 2px 0px var(--tw-shadow-color,#00000021) inset;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:ring-1:before{content:var(--tw-content);--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.before\:ring-secondary_alt:before{content:var(--tw-content);--tw-ring-color:var(--ring-color-secondary_alt)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bottom-0:after{content:var(--tw-content);bottom:0}.after\:left-0:after{content:var(--tw-content);left:0}.after\:block:after{content:var(--tw-content);display:block}.after\:size-6:after{content:var(--tw-content);width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.after\:size-7:after{content:var(--tw-content);width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.after\:size-8:after{content:var(--tw-content);width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.after\:size-8\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 8.5);height:calc(var(--spacing) * 8.5)}.after\:size-9\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 9.5);height:calc(var(--spacing) * 9.5)}.after\:size-10:after{content:var(--tw-content);width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.after\:size-10\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 10.5);height:calc(var(--spacing) * 10.5)}.after\:size-11\.5:after{content:var(--tw-content);width:calc(var(--spacing) * 11.5);height:calc(var(--spacing) * 11.5)}.after\:h-px:after{content:var(--tw-content);height:1px}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\:border-2:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.after\:border-fg-brand-primary\/10:after{content:var(--tw-content);border-color:#7f56d91a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-brand-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-brand-primary) 10%, transparent)}}.after\:border-fg-error-primary\/10:after{content:var(--tw-content);border-color:#e400141a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-error-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-error-primary) 10%, transparent)}}.after\:border-fg-success-primary\/10:after{content:var(--tw-content);border-color:#00a5441a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-success-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-success-primary) 10%, transparent)}}.after\:border-fg-tertiary\/10:after{content:var(--tw-content);border-color:#5e5a521a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-tertiary\/10:after{border-color:color-mix(in oklab, var(--color-fg-tertiary) 10%, transparent)}}.after\:border-fg-warning-primary\/10:after{content:var(--tw-content);border-color:#cd89001a}@supports (color:color-mix(in lab, red, red)){.after\:border-fg-warning-primary\/10:after{border-color:color-mix(in oklab, var(--color-fg-warning-primary) 10%, transparent)}}.after\:bg-border-secondary:after{content:var(--tw-content);background-color:var(--color-border-secondary)}.after\:bg-brand-solid:after{content:var(--tw-content);background-color:var(--background-color-brand-solid)}.after\:bg-error-solid:after{content:var(--tw-content);background-color:var(--background-color-error-solid)}.after\:bg-secondary-solid:after{content:var(--tw-content);background-color:var(--background-color-secondary-solid)}.after\:bg-success-solid:after{content:var(--tw-content);background-color:var(--background-color-success-solid)}.after\:bg-warning-solid:after{content:var(--tw-content);background-color:var(--background-color-warning-solid)}.first\:mt-0:first-child{margin-top:0}.first\:rounded-\[calc\(var\(--radius\)_-_2px\)\]:first-child{border-radius:calc(var(--radius) - 2px)}.first\:rounded-l-lg:first-child{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.last\:rounded-\[calc\(var\(--radius\)_-_2px\)\]:last-child{border-radius:calc(var(--radius) - 2px)}.last\:rounded-r-lg:last-child{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:border-transparent:last-child{border-color:#0000}.autofill\:rounded-lg:autofill{border-radius:var(--radius-lg)}.autofill\:text-primary:autofill{color:var(--text-color-primary)}@media (hover:hover){.hover\:border-\[var\(--accent\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){border-color:var(--accent)}.hover\:border-\[var\(--muted-fg\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){border-color:var(--muted-fg)}.hover\:bg-\[var\(--accent-soft\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--accent-soft)}.hover\:bg-\[var\(--muted\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--muted)}.hover\:bg-\[var\(--muted2\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--muted2)}.hover\:bg-brand-solid_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-brand-solid_hover)}.hover\:bg-error-primary:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-error-primary)}.hover\:bg-error-solid_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-error-solid_hover)}.hover\:bg-primary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-primary_hover)}.hover\:bg-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--background-color-secondary_hover)}.hover\:bg-transparent:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:#0000}.hover\:bg-utility-blue-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-blue-100)}.hover\:bg-utility-brand-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-brand-100)}.hover\:bg-utility-green-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-green-100)}.hover\:bg-utility-indigo-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-indigo-100)}.hover\:bg-utility-neutral-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-neutral-100)}.hover\:bg-utility-orange-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-orange-100)}.hover\:bg-utility-pink-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-pink-100)}.hover\:bg-utility-purple-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-purple-100)}.hover\:bg-utility-red-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-red-100)}.hover\:bg-utility-sky-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-sky-100)}.hover\:bg-utility-slate-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-slate-100)}.hover\:bg-utility-yellow-100:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--color-utility-yellow-100)}.hover\:text-\[var\(--accent-text\)\]:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--accent-text)}.hover\:text-brand-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-brand-secondary_hover)}.hover\:text-error-primary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-error-primary_hover)}.hover\:text-fg-quaternary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-fg-quaternary_hover)}.hover\:text-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-secondary_hover)}.hover\:text-tertiary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-tertiary_hover)}.hover\:text-utility-blue-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-blue-500)}.hover\:text-utility-brand-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-brand-500)}.hover\:text-utility-green-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-green-500)}.hover\:text-utility-indigo-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-indigo-500)}.hover\:text-utility-neutral-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-neutral-500)}.hover\:text-utility-orange-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-orange-500)}.hover\:text-utility-pink-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-pink-500)}.hover\:text-utility-purple-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-purple-500)}.hover\:text-utility-red-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-red-500)}.hover\:text-utility-sky-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-sky-500)}.hover\:text-utility-slate-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-slate-500)}.hover\:text-utility-yellow-500:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--color-utility-yellow-500)}.hover\:underline:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){text-decoration-line:underline}}.focus\:text-fg-quaternary_hover:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){color:var(--color-fg-quaternary_hover)}.focus\:ring-2:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-brand:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){--tw-ring-color:var(--ring-color-brand)}.focus\:outline-hidden:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){outline-offset:2px;outline:2px solid #0000}}.focus-visible\:z-10:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){z-index:10}.focus-visible\:bg-\[var\(--accent-soft\)\]:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){background-color:var(--accent-soft)}.focus-visible\:ring-2:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){--tw-ring-shadow:var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--accent\)\]:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){--tw-ring-color:var(--accent)}.focus-visible\:ring-brand:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){--tw-ring-color:var(--ring-color-brand)}.focus-visible\:outline-2:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-offset:1px}.focus-visible\:outline-offset-2:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-offset:2px}.focus-visible\:outline-\[var\(--accent\)\]:is(:where([data-rac])[data-focus-visible],:where(:not([data-rac])):focus-visible){outline-color:var(--accent)}.disabled\:cursor-not-allowed:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){cursor:not-allowed}.disabled\:text-secondary\/50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){color:#47443e80}@supports (color:color-mix(in lab, red, red)){.disabled\:text-secondary\/50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){color:color-mix(in oklab, var(--text-color-secondary) 50%, transparent)}}.disabled\:opacity-50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled),:is(.disabled\:\*\:opacity-50:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled)>*){opacity:.5}:where([data-input-wrapper]) .in-data-input-wrapper\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:px-4{padding-inline:calc(var(--spacing) * 4)}:where([data-input-wrapper]) .in-data-input-wrapper\:py-2\.5{padding-block:calc(var(--spacing) * 2.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:text-md{font-size:var(--text-md);line-height:var(--tw-leading,var(--text-md--line-height))}:where([data-input-wrapper]) .in-data-input-wrapper\:shadow-xs{--tw-shadow:0px 1px 0px var(--tw-shadow-color,#12110f0a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:where([data-input-wrapper]) .in-data-input-wrapper\:focus\:\!z-50:is(:where([data-rac])[data-focused],:where(:not([data-rac])):focus){z-index:50!important}:where([data-input-wrapper]) .in-data-input-wrapper\:disabled\:opacity-100:is(:where([data-rac])[data-disabled],:where(:not([data-rac])):disabled){opacity:1}:where([data-leading]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-leading\:-mr-px){margin-right:-1px}:where([data-leading]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-leading\:rounded-r-none){border-top-right-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none)}:where([data-leading]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-leading\:before\:rounded-r-none):before{content:var(--tw-content);border-top-right-radius:var(--radius-none);border-bottom-right-radius:var(--radius-none)}:where([data-trailing]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-trailing\:-ml-px){margin-left:-1px}:where([data-trailing]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-trailing\:rounded-l-none){border-top-left-radius:var(--radius-none);border-bottom-left-radius:var(--radius-none)}:where([data-trailing]) :is(:where([data-input-wrapper]) .in-data-input-wrapper\:in-data-trailing\:before\:rounded-l-none):before{content:var(--tw-content);border-top-left-radius:var(--radius-none);border-bottom-left-radius:var(--radius-none)}:where([data-input-size=sm]) .in-data-\[input-size\=sm\]\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}:where([data-placement=left]) .in-placement-left\:-rotate-90{rotate:-90deg}:where([data-placement=left]) .in-placement-left\:slide-in-from-right-0\.5{--tw-enter-translate-x:.125rem}:where([data-placement=left]) .in-placement-left\:slide-out-to-right-0\.5{--tw-exit-translate-x:.125rem}:where([data-placement=right]) .in-placement-right\:rotate-90{rotate:90deg}:where([data-placement=right]) .in-placement-right\:slide-in-from-left-0\.5{--tw-enter-translate-x:-.125rem}:where([data-placement=right]) .in-placement-right\:slide-out-to-left-0\.5{--tw-exit-translate-x:-.125rem}:where([data-placement=top]) .in-placement-top\:rotate-0{rotate:0deg}:where([data-placement=top]) .in-placement-top\:slide-in-from-bottom-0\.5{--tw-enter-translate-y:.125rem}:where([data-placement=top]) .in-placement-top\:slide-out-to-bottom-0\.5{--tw-exit-translate-y:.125rem}:where([data-placement=bottom]) .in-placement-bottom\:rotate-180{rotate:180deg}:where([data-placement=bottom]) .in-placement-bottom\:slide-in-from-top-0\.5{--tw-enter-translate-y:-.125rem}:where([data-placement=bottom]) .in-placement-bottom\:slide-out-to-top-0\.5{--tw-exit-translate-y:-.125rem}.data-focused\:bg-secondary[data-focused]{background-color:var(--background-color-secondary)}:is(.\*\:data-icon\:pointer-events-none>*)[data-icon]{pointer-events:none}:is(.\*\:data-icon\:size-4>*)[data-icon]{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:data-icon\:size-5>*)[data-icon]{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}:is(.\*\:data-icon\:size-6>*)[data-icon]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}:is(.\*\:data-icon\:size-7>*)[data-icon]{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}:is(.\*\:data-icon\:shrink-0>*)[data-icon]{flex-shrink:0}:is(.\*\:data-icon\:stroke-\[2\.25px\]>*)[data-icon]{stroke-width:2.25px}:is(.\*\:data-icon\:text-fg-brand-secondary_alt>*)[data-icon]{color:var(--color-fg-brand-secondary_alt)}:is(.\*\:data-icon\:text-fg-brand-secondary_hover>*)[data-icon]{color:var(--color-fg-brand-secondary_hover)}:is(.\*\:data-icon\:text-fg-error-secondary>*)[data-icon]{color:var(--color-fg-error-secondary)}:is(.\*\:data-icon\:text-fg-quaternary>*)[data-icon]{color:var(--color-fg-quaternary)}:is(.\*\:data-icon\:text-fg-secondary_hover>*)[data-icon]{color:var(--color-fg-secondary_hover)}:is(.\*\:data-icon\:text-white\/60>*)[data-icon]{color:#fff9}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-icon\:text-white\/60>*)[data-icon]{color:color-mix(in oklab, var(--color-white) 60%, transparent)}}:is(.\*\:data-icon\:transition-inherit-all>*)[data-icon]{transition-property:inherit;transition-duration:inherit;transition-timing-function:inherit}@media (hover:hover){:is(.hover\:\*\:data-icon\:text-fg-brand-secondary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:var(--color-fg-brand-secondary_hover)}:is(.hover\:\*\:data-icon\:text-fg-error-primary:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:var(--color-fg-error-primary)}:is(.hover\:\*\:data-icon\:text-fg-quaternary_hover:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:var(--color-fg-quaternary_hover)}:is(.hover\:\*\:data-icon\:text-white\/70:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){:is(.hover\:\*\:data-icon\:text-white\/70:is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover)>*)[data-icon]{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}}.data-icon-leading\:pl-3[data-icon-leading]{padding-left:calc(var(--spacing) * 3)}.data-icon-leading\:pl-3\.5[data-icon-leading]{padding-left:calc(var(--spacing) * 3.5)}.data-icon-leading\:pl-4[data-icon-leading]{padding-left:calc(var(--spacing) * 4)}.data-icon-only\:p-2[data-icon-only]{padding:calc(var(--spacing) * 2)}.data-icon-only\:p-2\.5[data-icon-only]{padding:calc(var(--spacing) * 2.5)}.data-icon-only\:p-3[data-icon-only]{padding:calc(var(--spacing) * 3)}.data-icon-only\:p-3\.5[data-icon-only]{padding:calc(var(--spacing) * 3.5)}.data-icon-only\:px-2\.5[data-icon-only]{padding-inline:calc(var(--spacing) * 2.5)}.data-icon-only\:px-3[data-icon-only]{padding-inline:calc(var(--spacing) * 3)}.data-icon-only\:px-3\.5[data-icon-only]{padding-inline:calc(var(--spacing) * 3.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:data-icon-only\:p-2\.5[data-icon-only]{padding:calc(var(--spacing) * 2.5)}:where([data-input-wrapper]) .in-data-input-wrapper\:data-icon-only\:p-3[data-icon-only]{padding:calc(var(--spacing) * 3)}.data-loading\:bg-brand-solid_hover[data-loading]{background-color:var(--background-color-brand-solid_hover)}.data-loading\:bg-error-primary[data-loading]{background-color:var(--background-color-error-primary)}.data-loading\:bg-error-solid_hover[data-loading]{background-color:var(--background-color-error-solid_hover)}.data-loading\:bg-primary_hover[data-loading]{background-color:var(--background-color-primary_hover)}:is(.\*\:data-text\:underline-offset-3>*)[data-text]{text-underline-offset:3px}:is(.\*\:data-text\:underline-offset-4>*)[data-text]{text-underline-offset:4px}.data-\[pressed\]\:scale-\[\.97\][data-pressed]{scale:.97}.data-\[selected\]\:bg-brand-primary_alt[data-selected]{background-color:var(--background-color-brand-primary_alt)}.data-\[selected\]\:font-semibold[data-selected]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.data-\[selected\]\:text-brand-secondary[data-selected]{color:var(--text-color-brand-secondary)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media not all and (width>=48rem){.max-md\:hidden{display:none}}@media not all and (width>=40rem){.max-sm\:overflow-y-auto{overflow-y:auto}}@media (width>=40rem){.sm\:mr-auto{margin-right:auto}.sm\:grid{display:grid}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-center{justify-content:center}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-2xl{border-radius:var(--radius-2xl)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:pb-6{padding-bottom:calc(var(--spacing) * 6)}.sm\:\[--modal-pb\:32px\]{--modal-pb:32px}.sm\:\[--modal-pt\:32px\]{--modal-pt:32px}}@media (width>=48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-\[280px_1fr\]{grid-template-columns:280px 1fr}.md\:pt-16{padding-top:calc(var(--spacing) * 16)}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}:is(.lg\:\*\*\:data-label\:hidden *)[data-label]{display:none}}@media (width>=80rem){.xl\:pt-\[clamp\(64px\,10vh\,243px\)\]{padding-top:clamp(64px,10vh,243px)}}.dark\:bg-\[\#14120e\]:where(.dark-mode,.dark-mode *){background-color:#14120e}.dark\:text-\[\#f6f4ee\]:where(.dark-mode,.dark-mode *){color:#f6f4ee}.placement-right\:slide-in-from-left-0\.5[data-placement=right]{--tw-enter-translate-x:-.125rem}.placement-right\:slide-out-to-left-0\.5[data-placement=right]{--tw-exit-translate-x:-.125rem}.placement-top\:slide-in-from-bottom-0\.5[data-placement=top]{--tw-enter-translate-y:.125rem}.placement-top\:slide-out-to-bottom-0\.5[data-placement=top]{--tw-exit-translate-y:.125rem}.placement-bottom\:slide-in-from-top-0\.5[data-placement=bottom]{--tw-enter-translate-y:-.125rem}.placement-bottom\:slide-out-to-top-0\.5[data-placement=bottom]{--tw-exit-translate-y:-.125rem}.selected\:bg-\[var\(--accent-soft\)\][data-selected]{background-color:var(--accent-soft)}.selected\:bg-brand-primary_alt[data-selected]{background-color:var(--background-color-brand-primary_alt)}.selected\:bg-primary_hover[data-selected]{background-color:var(--background-color-primary_hover)}.selected\:font-semibold[data-selected]{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.selected\:text-brand-secondary[data-selected]{color:var(--text-color-brand-secondary)}.selected\:text-secondary_hover[data-selected]{color:var(--text-color-secondary_hover)}.selected\:ring-\[var\(--accent\)\][data-selected]{--tw-ring-color:var(--accent)}@media (width>=64rem){.lg\:label\:hidden [data-label]{display:none}}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}@media (hover:hover){.\[\&\:not\(\[data-selected\]\)\]\:hover\:bg-\[var\(--muted\)\]:not([data-selected]):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){background-color:var(--muted)}.\[\&\:not\(\[data-selected\]\)\]\:hover\:text-secondary:not([data-selected]):is(:where([data-rac])[data-hovered],:where(:not([data-rac])):hover){color:var(--text-color-secondary)}}.\[\&\>\*\:not\(\[data-icon\=loading\]\)\]\:invisible>:not([data-icon=loading]){visibility:hidden}.\[\&\>\*\:not\(\[data-icon\=loading\]\)\:not\(\[data-text\]\)\]\:hidden>:not([data-icon=loading]):not([data-text]){display:none}}}@keyframes loadingBar{0%{transform:translate(-100%)}50%{transform:translate(100%)}to{transform:translate(-100%)}}.animate-loading-bar{animation:2s ease-in-out infinite loadingBar}:root{--bg-page:#f8fafc;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-sidebar:#fff;--bg-input:#f1f5f9;--bg-muted:#e2e8f0;--bg-accent:#8b5cf6;--bg-accent-muted:#8b5cf61a;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-accent:#8b5cf6;--text-inverse:#fff;--border-default:#e2e8f0;--border-muted:#cbd5e1;--icon-fill:#64748b;--icon-color:#8b5cf6;--scrollbar-track:#f1f5f9;--scrollbar-thumb:#cbd5e1;--scrollbar-thumb-hover:#94a3b8;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:0 0% 98%;--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--radius:.625rem;--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--bg-page:#0a0d1a;--bg-card:#151823;--bg-card-hover:#1a1d2e;--bg-sidebar:#0a0d1a;--bg-input:#151823;--bg-muted:#1e2235;--bg-accent:#8b5cf6;--bg-accent-muted:#8b5cf626;--text-primary:#e5e7eb;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-accent:#a78bfa;--text-inverse:#fff;--border-default:#1e2235;--border-muted:#2d3348;--icon-fill:#6b7280;--icon-color:#8b5cf6;--scrollbar-track:#0a0d1a;--scrollbar-thumb:#1e2235;--scrollbar-thumb-hover:#2d3348;--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:0 0% 98%;--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}body{background-color:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s,color .2s}.theme-bg-page{background-color:var(--bg-page)}.theme-bg-card{background-color:var(--bg-card)}.theme-bg-card-hover:hover{background-color:var(--bg-card-hover)}.theme-bg-sidebar{background-color:var(--bg-sidebar)}.theme-bg-input{background-color:var(--bg-input)}.theme-bg-muted{background-color:var(--bg-muted)}.theme-bg-accent{background-color:var(--bg-accent)}.theme-bg-accent-muted{background-color:var(--bg-accent-muted)}.theme-text-primary{color:var(--text-primary)}.theme-text-secondary{color:var(--text-secondary)}.theme-text-muted{color:var(--text-muted)}.theme-text-accent{color:var(--text-accent)}.theme-link{transition:color .14s}.theme-link:hover{color:var(--text-accent)}@supports (color:color-mix(in lab, red, red)){.theme-link:hover{color:color-mix(in oklab, var(--text-accent) 72%, var(--text-primary))}}.theme-text-inverse{color:var(--text-inverse)}.theme-border{border-color:var(--border-default)}.theme-border-muted{border-color:var(--border-muted)}.theme-transition{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:hsl(var(--muted-foreground)/.2);border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground)/.3)}.icon-svg svg,.icon-svg-modal svg{width:100%;height:100%}.icon-svg.icon-colored svg,.icon-svg-modal.icon-colored svg{fill:currentColor;stroke:currentColor}.icon-svg.icon-colored svg path,.icon-svg.icon-colored svg circle,.icon-svg.icon-colored svg rect,.icon-svg.icon-colored svg line,.icon-svg.icon-colored svg polyline,.icon-svg.icon-colored svg polygon,.icon-svg-modal.icon-colored svg path,.icon-svg-modal.icon-colored svg circle,.icon-svg-modal.icon-colored svg rect,.icon-svg-modal.icon-colored svg line,.icon-svg-modal.icon-colored svg polyline,.icon-svg-modal.icon-colored svg polygon{fill:inherit;stroke:inherit}.icon-svg svg[fill=none],.icon-svg-modal svg[fill=none]{fill:none}.icon-svg.icon-colored svg[fill=none] path,.icon-svg.icon-colored svg[fill=none] circle,.icon-svg.icon-colored svg[fill=none] rect,.icon-svg.icon-colored svg[fill=none] line,.icon-svg-modal.icon-colored svg[fill=none] path,.icon-svg-modal.icon-colored svg[fill=none] circle,.icon-svg-modal.icon-colored svg[fill=none] rect,.icon-svg-modal.icon-colored svg[fill=none] line{fill:none;stroke:currentColor}.animate-fade-in{animation:.3s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-down-enter-active,.slide-down-leave-active{transition:all .3s}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translateY(-100%)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}[data-ichava-theme].dark-mode{--color-bg-overlay:#000}:where(:root,[data-ichava-theme]):not(.dark-mode){--canvas:var(--color-bg-tertiary)}.ich-shell{background:var(--canvas)}.ich-sheet{border:1px solid var(--color-border-secondary);border-radius:calc(var(--radius) * 2);background:var(--surface);box-shadow:var(--shadow-sm);margin:0 8px 8px 0;overflow:hidden}[dir=rtl] .ich-sheet{margin:0 0 8px 8px}@media (width<=860px){.ich-sheet,[dir=rtl] .ich-sheet{margin:0 6px 6px}}@font-face{font-family:Geist;src:url(../fonts/Geist-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(../fonts/GeistMono-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}[data-ichava-theme].dark-mode{--canvas:var(--color-bg-primary);--surface:var(--color-bg-secondary);--color-bg-error-solid_hover:var(--color-red-700)}@scope([data-ichava-theme]){:scope,*{box-sizing:border-box}}@media (hover:hover){@scope([data-ichava-theme]){:is(button,[role=button],[role=menuitem],[role=option],[role=tab],a):hover:not(:disabled,[aria-disabled=true]){--ich-hover-bg:var(--muted);--ich-hover-fg:var(--fg);--ich-hover-border:var(--muted-fg)}:where(button,[role=button],[role=menuitem],[role=tab],[role=radio]):where(:hover):not(:disabled,[aria-disabled=true],[data-rac]){background-image:linear-gradient(var(--fg), var(--fg))}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){:where(button,[role=button],[role=menuitem],[role=tab],[role=radio]):where(:hover):not(:disabled,[aria-disabled=true],[data-rac]){background-image:linear-gradient(color-mix(in oklab, var(--fg) 7%, transparent), color-mix(in oklab, var(--fg) 7%, transparent))}}}}@scope([data-ichava-theme]){:where(button,[role=button],[role=tab],[role=menuitem],[role=option],[role=radio],a):not([data-rac]){transition:background-color .14s,color .14s,border-color .14s,box-shadow .16s,opacity .14s,transform .12s}:where(button,[role=button],[role=tab],[role=menuitem],[role=radio]):not(:disabled,[aria-disabled=true],[data-rac]):active{background-image:linear-gradient(var(--fg), var(--fg));transform:scale(.96)}}@supports (color:color-mix(in lab, red, red)){@scope([data-ichava-theme]){:where(button,[role=button],[role=tab],[role=menuitem],[role=radio]):not(:disabled,[aria-disabled=true],[data-rac]):active{background-image:linear-gradient(color-mix(in oklab, var(--fg) 12%, transparent), color-mix(in oklab, var(--fg) 12%, transparent))}}}@scope([data-ichava-theme]){:where(button,[role=button])[data-rac][data-pressed]:not([data-disabled]){transform:scale(.97)}:where([data-ich-tile]):active{--ich-press:.97}:where([data-ich-row]):active{transform:scale(.995)}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input:focus:not([data-rac]),select:focus:not([data-rac]),button:focus:not([data-rac]){outline:none}input:focus-visible:not([data-rac]),select:focus-visible:not([data-rac]),button:focus-visible:not([data-rac]),a:focus-visible:not([data-rac]),[tabindex]:focus-visible:not([data-rac]),[role=button]:focus-visible:not([data-rac]),[role=checkbox]:focus-visible:not([data-rac]),[role=radio]:focus-visible:not([data-rac]),[role=menuitem]:focus-visible:not([data-rac]),[role=tab]:focus-visible:not([data-rac]){box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--ring);outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-track{background:0 0}}.ich-side-scroll,.ich-marquee-scroll{scrollbar-width:none}.ich-side-scroll::-webkit-scrollbar{width:0;height:0}.ich-marquee-scroll::-webkit-scrollbar{width:0;height:0}@scope([data-ichava-theme]){[data-region=credits]::-webkit-scrollbar{width:0;height:0}input[type=range]{appearance:none;background:0 0}input[type=range]::-webkit-slider-runnable-track{background:var(--border);border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bg);border:1.5px solid var(--accent);width:13px;height:13px;box-shadow:var(--shadow);cursor:pointer;border-radius:50%;margin-top:-4.5px}input[type=range].ich-hue::-webkit-slider-runnable-track{background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);border-radius:4px;height:8px}input[type=range].ich-hue::-webkit-slider-thumb{margin-top:-2.5px}input[type=range].ich-light::-webkit-slider-runnable-track{background:linear-gradient(to right, #000, var(--pick-mid,#888), #fff);border-radius:4px;height:8px}input[type=range].ich-light::-webkit-slider-thumb{margin-top:-2.5px}}@keyframes ichPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes ichIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes ichTaskSlide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes ichFade{0%{opacity:0}to{opacity:1}}@keyframes ichRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ichFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes ichGlow{0%,to{box-shadow:0 12px 34px -8px var(--accent-soft), 0 0 0 0 var(--accent-soft)}50%{box-shadow:0 16px 44px -6px var(--accent-soft), 0 0 0 10px transparent}}@keyframes ichSpin{to{transform:rotate(360deg)}}@keyframes ichPulseS{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes ichBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-18%)}}@keyframes ichWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-11deg)}75%{transform:rotate(11deg)}}@keyframes ichPing{0%{opacity:1;transform:scale(1)}80%,to{opacity:0;transform:scale(1.45)}}@keyframes ichSpinPath{to{transform:rotate(360deg)}}@keyframes ichMarqueeY{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes ichMarqueeX{0%{transform:translate(0)}to{transform:translate(-50%)}}.ich-skeleton{--ich-skeleton-base:var(--fg);display:inline-block}@supports (color:color-mix(in lab, red, red)){.ich-skeleton{--ich-skeleton-base:color-mix(in srgb, var(--fg) 8%, transparent)}}.ich-skeleton{--ich-skeleton-shine:var(--fg)}@supports (color:color-mix(in lab, red, red)){.ich-skeleton{--ich-skeleton-shine:color-mix(in srgb, var(--fg) 15%, transparent)}}.ich-skeleton{background:linear-gradient(90deg, var(--ich-skeleton-base) 0%, var(--ich-skeleton-shine) 40%, var(--ich-skeleton-base) 80%) 0 0 / 300% 100%;animation:1.4s ease-in-out infinite ichSkeleton}@keyframes ichSkeleton{0%{background-position:100% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){@scope([data-ichava-theme]){:scope,*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}}.ich-pop{position:relative}[data-reduce-motion] *,[data-reduce-motion]{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (width<=760px){.ich-detail-grid{grid-template-columns:1fr!important}}@media (width<=640px){.ich-header-brand-suffix{display:none}.ich-header-search{flex:none}.ich-header-search-button{justify-content:center;width:30px;max-width:none;padding:0}.ich-header-search-label{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ich-header-actions{overscroll-behavior-x:contain;scrollbar-width:none;flex:1 1 0;min-width:0;overflow-x:auto}.ich-header-actions::-webkit-scrollbar{display:none}.ich-header-actions>*{flex:none}}@media (width<=1024px){.ich-header-search-kbd,.ich-header-brand-suffix{display:none}}@media (width<=640px){.ich-header-actions{padding-inline-end:20px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000)}[dir=rtl] .ich-header-actions{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 20px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 20px),#0000)}}.ich-hamburger,.ich-scrim{display:none}@media (width<=860px){.ich-hamburger{display:flex}.ich-sidebar{z-index:65;box-shadow:var(--shadow-elevated);transition:transform .2s;position:fixed;top:48px;bottom:0;left:0;transform:translate(-100%)}.ich-sidebar.open{transform:translate(0)}[dir=rtl] .ich-sidebar{left:auto;right:0;transform:translate(100%)}[dir=rtl] .ich-sidebar.open{transform:translate(0)}.ich-scrim{z-index:64;background:var(--overlay);animation:.15s ichFade;display:block;position:fixed;inset:48px 0 0}}.ich-tree .ich-tree-guide{background:0 0}.ich-tree[data-connectors] .ich-tree-guide{background:var(--border)}.ich-tree[data-size=sm]{--ich-tree-indent:20px}.ich-tree[data-size=md]{--ich-tree-indent:24px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-mask-linear{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-radial{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-conic{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-left{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-right{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-bottom{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-top{syntax:"*";inherits:false;initial-value:linear-gradient(#fff, #fff)}@property --tw-mask-bottom-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-bottom-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-bottom-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-bottom-to-color{syntax:"*";inherits:false;initial-value:transparent}@keyframes spin{to{transform:rotate(360deg)}}:root{--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Geist,-apple-system,Segoe UI,Roboto,Arial,sans-serif} /*$vite$:1*/ \ No newline at end of file diff --git a/resources/assets/styles/ichava.scss b/resources/assets/styles/ichava.scss index 415d1fc..c138cea 100644 --- a/resources/assets/styles/ichava.scss +++ b/resources/assets/styles/ichava.scss @@ -13,11 +13,6 @@ /* Tailwind CSS v4 - Import base styles */ @use "tailwindcss"; -/* The vendored browser library ships its own prebuilt stylesheet, generated against its own - theme. Scanning its bundle here would regenerate its class names against this file's - default theme, a second and different definition of each. */ -@source not "../../vendor/react-icon-browser"; - /* The browser's own source lives in resources/js beside this package's pages since react consolidation 3d (2026-11-12). Its stylesheet (resources/js/styles/theme.css) generates its classes against its own theme, scoped to its root, so this one must not scan it either: the diff --git a/resources/js/components/appearance/AppearancePopover.tsx b/resources/js/components/appearance/AppearancePopover.tsx index 4ca65d9..94e3937 100644 --- a/resources/js/components/appearance/AppearancePopover.tsx +++ b/resources/js/components/appearance/AppearancePopover.tsx @@ -7,7 +7,7 @@ import { Glyph } from '@/components/ui/Glyph'; import { Popover } from '@/components/ui/Popover'; import { iconBtn } from '@/components/ui/controls'; import { Segmented } from '@/components/ui/Segmented'; -import { Toggle } from '@/components/base/toggle/toggle'; +import { Toggle } from '@ichava/js-ui-kernel/react'; import { isValidHex } from '@ichava/js-ui-kernel'; import { CONFIG_DEFAULTS } from '@/core/config'; import { LOCALES, type Locale } from '@/core/i18n'; diff --git a/resources/js/components/application/command-menus/base-components/command-input.tsx b/resources/js/components/application/command-menus/base-components/command-input.tsx index b06858b..89ae83f 100644 --- a/resources/js/components/application/command-menus/base-components/command-input.tsx +++ b/resources/js/components/application/command-menus/base-components/command-input.tsx @@ -4,7 +4,7 @@ import { HelpCircle, SearchLg } from "@/components/ui/chromeIcons"; import type { InputProps as AriaInputProps } from "react-aria-components"; import { Group as AriaGroup, Input as AriaInput } from "react-aria-components"; import { Tooltip, TooltipTrigger } from "@/components/base/tooltip/tooltip"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; import { CommandShortcut } from "./command-shortcut"; type CommandInputProps = AriaInputProps & diff --git a/resources/js/components/application/command-menus/base-components/command-menu-footer.tsx b/resources/js/components/application/command-menus/base-components/command-menu-footer.tsx index b02b349..afe55d6 100644 --- a/resources/js/components/application/command-menus/base-components/command-menu-footer.tsx +++ b/resources/js/components/application/command-menus/base-components/command-menu-footer.tsx @@ -1,7 +1,7 @@ // Untitled UI React PRO, used under licence; see LICENSE import { ArrowDown, ArrowLeft, ArrowUp, CornerDownLeft, Settings01 } from "@/components/ui/chromeIcons"; import { Button } from "@/components/base/buttons/button"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; import { CommandMenuNavigationIcon } from "./command-menu-navigation-icon"; interface CommandMenuFooterProps { diff --git a/resources/js/components/application/command-menus/base-components/command-menu-header.tsx b/resources/js/components/application/command-menus/base-components/command-menu-header.tsx index 27a17b3..11edeff 100644 --- a/resources/js/components/application/command-menus/base-components/command-menu-header.tsx +++ b/resources/js/components/application/command-menus/base-components/command-menu-header.tsx @@ -1,7 +1,7 @@ // Untitled UI React PRO, used under licence; see LICENSE import type { ReactNode } from "react"; import { Header as AriaHeader } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface CommandMenuHeaderProps { children: ReactNode; diff --git a/resources/js/components/application/command-menus/base-components/command-menu-item.tsx b/resources/js/components/application/command-menus/base-components/command-menu-item.tsx index b299e01..998f47f 100644 --- a/resources/js/components/application/command-menus/base-components/command-menu-item.tsx +++ b/resources/js/components/application/command-menus/base-components/command-menu-item.tsx @@ -11,8 +11,8 @@ import type { FC } from "react"; import { Text as AriaText, ListBoxItem, type ListBoxItemProps } from "react-aria-components"; import { Avatar } from "@/components/base/avatar/avatar"; -import { FeaturedIcon } from "@/components/foundations/featured-icon/featured-icon"; -import { cx } from "@/lib/utils/cx"; +import { FeaturedIcon } from "@ichava/js-ui-kernel/react"; +import { cx } from "@ichava/js-ui-kernel/react"; import { CommandShortcut } from "./command-shortcut"; interface CommandMenuItemBaseType { diff --git a/resources/js/components/application/command-menus/base-components/command-shortcut.tsx b/resources/js/components/application/command-menus/base-components/command-shortcut.tsx index c3545c9..da3001b 100644 --- a/resources/js/components/application/command-menus/base-components/command-shortcut.tsx +++ b/resources/js/components/application/command-menus/base-components/command-shortcut.tsx @@ -3,7 +3,7 @@ // Local adaptation: `size="sm"` for the compact palette rows (see command-menu-item.tsx). import { Fragment } from "react"; import { ArrowRight } from "@/components/ui/chromeIcons"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface CommandShortcutProps { keys: string[]; diff --git a/resources/js/components/application/command-menus/command-menu.tsx b/resources/js/components/application/command-menus/command-menu.tsx index ad14838..a63d929 100644 --- a/resources/js/components/application/command-menus/command-menu.tsx +++ b/resources/js/components/application/command-menus/command-menu.tsx @@ -24,7 +24,7 @@ import { TextField as AriaTextField, useFilter, } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; import { CommandInput } from "./base-components/command-input"; import { CommandMenuFooter } from "./base-components/command-menu-footer"; import { CommandMenuHeader } from "./base-components/command-menu-header"; diff --git a/resources/js/components/application/modal-layouts/modal-layouts.tsx b/resources/js/components/application/modal-layouts/modal-layouts.tsx index 5bac8d6..30f8f00 100644 --- a/resources/js/components/application/modal-layouts/modal-layouts.tsx +++ b/resources/js/components/application/modal-layouts/modal-layouts.tsx @@ -9,7 +9,7 @@ // dialog's `slot="title"` heading, the stacked or right-aligned action row. import type { ReactNode } from "react"; import { Heading as AriaHeading } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface ModalHeaderProps { /** A logo, avatar or featured icon above (centered) or beside the title. */ diff --git a/resources/js/components/application/modals/modal.tsx b/resources/js/components/application/modals/modal.tsx index 7ca5924..dfd5689 100644 --- a/resources/js/components/application/modals/modal.tsx +++ b/resources/js/components/application/modals/modal.tsx @@ -1,6 +1,6 @@ import type { DialogProps as AriaDialogProps, ModalOverlayProps as AriaModalOverlayProps } from "react-aria-components"; import { Dialog as AriaDialog, DialogTrigger as AriaDialogTrigger, Modal as AriaModal, ModalOverlay as AriaModalOverlay } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; export const DialogTrigger = AriaDialogTrigger; diff --git a/resources/js/components/application/notifications/notification-card.tsx b/resources/js/components/application/notifications/notification-card.tsx index cc6729a..344a4e9 100644 --- a/resources/js/components/application/notifications/notification-card.tsx +++ b/resources/js/components/application/notifications/notification-card.tsx @@ -12,8 +12,8 @@ import type { FC, ReactNode } from "react"; import { X } from "@/components/ui/chromeIcons"; import { Button } from "@/components/base/buttons/button"; -import { FeaturedIcon } from "@/components/foundations/featured-icon/featured-icon"; -import { cx } from "@/lib/utils/cx"; +import { FeaturedIcon } from "@ichava/js-ui-kernel/react"; +import { cx } from "@ichava/js-ui-kernel/react"; export type NotificationColor = "brand" | "gray" | "error" | "warning" | "success"; diff --git a/resources/js/components/application/tabs/tabs.tsx b/resources/js/components/application/tabs/tabs.tsx index 0ceb3bf..8eeab6f 100644 --- a/resources/js/components/application/tabs/tabs.tsx +++ b/resources/js/components/application/tabs/tabs.tsx @@ -3,8 +3,8 @@ import { createContext, isValidElement, useContext } from "react"; import type { TabListProps as AriaTabListProps, TabProps as AriaTabProps, TabRenderProps as AriaTabRenderProps } from "react-aria-components"; import { Tab as AriaTab, TabList as AriaTabList, TabPanel as AriaTabPanel, Tabs as AriaTabs, TabsContext, useSlottedContext } from "react-aria-components"; import { Badge } from "@/components/base/badges/badges"; -import { cx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; type Orientation = "horizontal" | "vertical"; diff --git a/resources/js/components/application/tree-view/tree-view.tsx b/resources/js/components/application/tree-view/tree-view.tsx index 484d4a8..6ec3959 100644 --- a/resources/js/components/application/tree-view/tree-view.tsx +++ b/resources/js/components/application/tree-view/tree-view.tsx @@ -16,8 +16,8 @@ import { useDragAndDrop, } from "react-aria-components"; import { CheckboxBase } from "@/components/base/checkbox/checkbox"; -import { cx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; import { type TreeCollection, cascadeSelection, createDragPreview, getDescendants } from "./tree-view-utils"; interface TreeViewContextType { diff --git a/resources/js/components/auth/AccountAvatar.tsx b/resources/js/components/auth/AccountAvatar.tsx index fa5fe22..6196161 100644 --- a/resources/js/components/auth/AccountAvatar.tsx +++ b/resources/js/components/auth/AccountAvatar.tsx @@ -1,5 +1,5 @@ import { useState } from 'react'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; /** * The account's picture: the host's avatar when it gave one and it loads, otherwise the diff --git a/resources/js/components/auth/AccountMenu.tsx b/resources/js/components/auth/AccountMenu.tsx index 59a6228..ecfe0c0 100644 --- a/resources/js/components/auth/AccountMenu.tsx +++ b/resources/js/components/auth/AccountMenu.tsx @@ -7,7 +7,7 @@ import { Glyph } from '@/components/ui/Glyph'; import { glyphIcon } from '@/components/ui/glyphIcon'; import { MENU_CLASS, MenuPopover, MenuText } from '@/components/ui/Menu'; import { Dropdown } from '@/components/base/dropdown/dropdown'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; import { useAppStore } from '@/hooks/useStoreApi'; import { useAccount } from '@/hooks/useAccount'; import { AccountAvatar } from '@/components/auth/AccountAvatar'; diff --git a/resources/js/components/auth/ProfileModal.tsx b/resources/js/components/auth/ProfileModal.tsx index 2089b8f..0e5ae4d 100644 --- a/resources/js/components/auth/ProfileModal.tsx +++ b/resources/js/components/auth/ProfileModal.tsx @@ -4,7 +4,7 @@ import { useId } from 'react'; import { useT } from '@/hooks/useT'; import { Modal } from '@/components/ui/Modal'; import { Button } from '@/components/base/buttons/button'; -import { RadioButton, RadioGroup } from '@/components/base/radio-buttons/radio-buttons'; +import { RadioButton, RadioGroup } from '@ichava/js-ui-kernel/react'; import { ModalBody, ModalFooter, ModalHeader } from '@/components/application/modal-layouts/modal-layouts'; import { useAppStore } from '@/hooks/useStoreApi'; import { useAccount } from '@/hooks/useAccount'; diff --git a/resources/js/components/base/avatar/avatar.tsx b/resources/js/components/base/avatar/avatar.tsx index fcfa658..4ffa3c4 100644 --- a/resources/js/components/base/avatar/avatar.tsx +++ b/resources/js/components/base/avatar/avatar.tsx @@ -1,8 +1,8 @@ import { type FC, type ReactNode, useState } from "react"; import { User01 } from "@/components/ui/chromeIcons"; -import { cx } from "@/lib/utils/cx"; -import { AvatarOnlineIndicator, VerifiedTick } from "./base-components"; -import { AvatarCount } from "./base-components/avatar-count"; +import { cx } from "@ichava/js-ui-kernel/react"; +import { AvatarOnlineIndicator, VerifiedTick } from "@ichava/js-ui-kernel/react"; +import { AvatarCount } from "@ichava/js-ui-kernel/react"; export interface AvatarProps { size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl"; diff --git a/resources/js/components/base/avatar/base-components/avatar-count.tsx b/resources/js/components/base/avatar/base-components/avatar-count.tsx deleted file mode 100644 index c828a32..0000000 --- a/resources/js/components/base/avatar/base-components/avatar-count.tsx +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { AvatarCount } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/base/avatar/base-components/avatar-online-indicator.tsx b/resources/js/components/base/avatar/base-components/avatar-online-indicator.tsx deleted file mode 100644 index 811cdaa..0000000 --- a/resources/js/components/base/avatar/base-components/avatar-online-indicator.tsx +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { AvatarOnlineIndicator } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/base/avatar/base-components/index.tsx b/resources/js/components/base/avatar/base-components/index.tsx deleted file mode 100644 index 2072054..0000000 --- a/resources/js/components/base/avatar/base-components/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { AvatarOnlineIndicator, VerifiedTick } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/base/avatar/base-components/verified-tick.tsx b/resources/js/components/base/avatar/base-components/verified-tick.tsx deleted file mode 100644 index c9bd9a1..0000000 --- a/resources/js/components/base/avatar/base-components/verified-tick.tsx +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { VerifiedTick } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/base/badges/badges.tsx b/resources/js/components/base/badges/badges.tsx index 9e72345..e87a812 100644 --- a/resources/js/components/base/badges/badges.tsx +++ b/resources/js/components/base/badges/badges.tsx @@ -1,5 +1,5 @@ import type { ReactNode } from "react"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; import type { BadgeColors, BadgeTypeToColorMap, BadgeTypes, Sizes } from "./badge-types"; import { badgeTypes } from "./badge-types"; diff --git a/resources/js/components/base/button-group/button-group.tsx b/resources/js/components/base/button-group/button-group.tsx index 383e116..3f1a23e 100644 --- a/resources/js/components/base/button-group/button-group.tsx +++ b/resources/js/components/base/button-group/button-group.tsx @@ -5,8 +5,8 @@ import { type ToggleButtonGroupProps, type ToggleButtonProps, } from "react-aria-components"; -import { cx, sortCx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx, sortCx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; export const styles = sortCx({ common: { diff --git a/resources/js/components/base/buttons/button.tsx b/resources/js/components/base/buttons/button.tsx index 10bde90..5d5a72d 100644 --- a/resources/js/components/base/buttons/button.tsx +++ b/resources/js/components/base/buttons/button.tsx @@ -2,8 +2,8 @@ import type { FC, ReactElement, ReactNode } from "react"; import { isValidElement } from "react"; import type { ButtonProps as AriaButtonProps, LinkProps as AriaLinkProps } from "react-aria-components"; import { Button as AriaButton, Link as AriaLink } from "react-aria-components"; -import { cx, sortCx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx, sortCx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; export const styles = sortCx({ common: { diff --git a/resources/js/components/base/checkbox/checkbox.tsx b/resources/js/components/base/checkbox/checkbox.tsx index abd62d2..20ebc4a 100644 --- a/resources/js/components/base/checkbox/checkbox.tsx +++ b/resources/js/components/base/checkbox/checkbox.tsx @@ -1,6 +1,6 @@ import type { ReactNode, Ref } from "react"; import { Checkbox as AriaCheckbox, type CheckboxProps as AriaCheckboxProps } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; export interface CheckboxBaseProps { size?: "sm" | "md"; diff --git a/resources/js/components/base/dropdown/dropdown.tsx b/resources/js/components/base/dropdown/dropdown.tsx index bc9bb76..c31db8d 100644 --- a/resources/js/components/base/dropdown/dropdown.tsx +++ b/resources/js/components/base/dropdown/dropdown.tsx @@ -18,11 +18,11 @@ import { Popover as AriaPopover, Separator as AriaSeparator, } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; import { Avatar } from "../avatar/avatar"; import { CheckboxBase } from "../checkbox/checkbox"; -import { RadioButtonBase } from "../radio-buttons/radio-buttons"; -import { ToggleBase } from "../toggle/toggle"; +import { RadioButtonBase } from "@ichava/js-ui-kernel/react"; +import { ToggleBase } from "@ichava/js-ui-kernel/react"; interface DropdownItemProps extends AriaMenuItemProps { /** The label of the item to be displayed. */ diff --git a/resources/js/components/base/input/hint-text.tsx b/resources/js/components/base/input/hint-text.tsx index 87dffa5..0472cbd 100644 --- a/resources/js/components/base/input/hint-text.tsx +++ b/resources/js/components/base/input/hint-text.tsx @@ -1,7 +1,7 @@ import type { ReactNode, Ref } from "react"; import type { TextProps as AriaTextProps } from "react-aria-components"; import { Text as AriaText } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface HintTextProps extends AriaTextProps { /** Indicates that the hint text is an error message. */ diff --git a/resources/js/components/base/input/input.tsx b/resources/js/components/base/input/input.tsx index 1200743..ecffae5 100644 --- a/resources/js/components/base/input/input.tsx +++ b/resources/js/components/base/input/input.tsx @@ -5,7 +5,7 @@ import { Button as AriaButton, Group as AriaGroup, Input as AriaInput, TextField import { HintText } from "@/components/base/input/hint-text"; import { Label } from "@/components/base/input/label"; import { Tooltip, TooltipTrigger } from "@/components/base/tooltip/tooltip"; -import { cx, sortCx } from "@/lib/utils/cx"; +import { cx, sortCx } from "@ichava/js-ui-kernel/react"; export interface InputBaseProps extends Omit { /** Tooltip message on hover. */ diff --git a/resources/js/components/base/input/label.tsx b/resources/js/components/base/input/label.tsx index 4b9c87f..27eea2a 100644 --- a/resources/js/components/base/input/label.tsx +++ b/resources/js/components/base/input/label.tsx @@ -3,7 +3,7 @@ import { HelpCircle } from "@/components/ui/chromeIcons"; import type { LabelProps as AriaLabelProps } from "react-aria-components"; import { Label as AriaLabel } from "react-aria-components"; import { Tooltip, TooltipTrigger } from "@/components/base/tooltip/tooltip"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface LabelProps extends AriaLabelProps { children: ReactNode; diff --git a/resources/js/components/base/radio-buttons/radio-buttons.tsx b/resources/js/components/base/radio-buttons/radio-buttons.tsx deleted file mode 100644 index a6019f1..0000000 --- a/resources/js/components/base/radio-buttons/radio-buttons.tsx +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { RadioButton, RadioButtonBase, RadioGroup } from '@ichava/js-ui-kernel/react'; -export type { RadioButtonBaseProps, RadioGroupContextType } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/base/select/combobox.tsx b/resources/js/components/base/select/combobox.tsx index aaddc91..283c1ce 100644 --- a/resources/js/components/base/select/combobox.tsx +++ b/resources/js/components/base/select/combobox.tsx @@ -8,8 +8,8 @@ import { Label } from "@/components/base/input/label"; import { Popover } from "@/components/base/select/popover"; import { type CommonProps, SelectContext, type SelectItemType, sizes } from "@/components/base/select/select-shared"; import { useResizeObserver } from "@/hooks/use-resize-observer"; -import { cx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; interface ComboBoxProps extends Omit, "children" | "items">, RefAttributes, CommonProps { shortcut?: boolean; diff --git a/resources/js/components/base/select/popover.tsx b/resources/js/components/base/select/popover.tsx index 0d92d2a..021bf3d 100644 --- a/resources/js/components/base/select/popover.tsx +++ b/resources/js/components/base/select/popover.tsx @@ -1,7 +1,7 @@ import type { RefAttributes } from "react"; import type { PopoverProps as AriaPopoverProps } from "react-aria-components"; import { Popover as AriaPopover } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface PopoverProps extends AriaPopoverProps, RefAttributes { size: "sm" | "md" | "lg"; diff --git a/resources/js/components/base/select/select-item.tsx b/resources/js/components/base/select/select-item.tsx index b504faa..d1f3308 100644 --- a/resources/js/components/base/select/select-item.tsx +++ b/resources/js/components/base/select/select-item.tsx @@ -4,8 +4,8 @@ import type { ListBoxItemProps as AriaListBoxItemProps } from "react-aria-compon import { ListBoxItem as AriaListBoxItem, Text as AriaText } from "react-aria-components"; import { Avatar } from "@/components/base/avatar/avatar"; import { CheckboxBase } from "@/components/base/checkbox/checkbox"; -import { cx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; import type { SelectItemType } from "./select-shared"; import { SelectContext } from "./select-shared"; diff --git a/resources/js/components/base/select/select.tsx b/resources/js/components/base/select/select.tsx index 4a9d9b3..1fd2c5f 100644 --- a/resources/js/components/base/select/select.tsx +++ b/resources/js/components/base/select/select.tsx @@ -6,8 +6,8 @@ import { Button as AriaButton, ListBox as AriaListBox, Select as AriaSelect, Sel import { Avatar } from "@/components/base/avatar/avatar"; import { HintText } from "@/components/base/input/hint-text"; import { Label } from "@/components/base/input/label"; -import { cx } from "@/lib/utils/cx"; -import { isReactComponent } from "@/lib/utils/is-react-component"; +import { cx } from "@ichava/js-ui-kernel/react"; +import { isReactComponent } from "@ichava/js-ui-kernel/react"; import { ComboBox } from "./combobox"; import { Popover } from "./popover"; import { SelectItem } from "./select-item"; diff --git a/resources/js/components/base/slider/slider.tsx b/resources/js/components/base/slider/slider.tsx index 3fb1b73..b84c155 100644 --- a/resources/js/components/base/slider/slider.tsx +++ b/resources/js/components/base/slider/slider.tsx @@ -6,7 +6,7 @@ import { SliderThumb as AriaSliderThumb, SliderTrack as AriaSliderTrack, } from "react-aria-components"; -import { cx, sortCx } from "@/lib/utils/cx"; +import { cx, sortCx } from "@ichava/js-ui-kernel/react"; const styles = sortCx({ default: "hidden", diff --git a/resources/js/components/base/toggle/toggle.tsx b/resources/js/components/base/toggle/toggle.tsx deleted file mode 100644 index 0a38de2..0000000 --- a/resources/js/components/base/toggle/toggle.tsx +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { Toggle, ToggleBase } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/base/tooltip/tooltip.tsx b/resources/js/components/base/tooltip/tooltip.tsx index 1369ab1..fe02101 100644 --- a/resources/js/components/base/tooltip/tooltip.tsx +++ b/resources/js/components/base/tooltip/tooltip.tsx @@ -5,7 +5,7 @@ import type { TooltipTriggerComponentProps as AriaTooltipTriggerComponentProps, } from "react-aria-components"; import { Button as AriaButton, OverlayArrow as AriaOverlayArrow, Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger } from "react-aria-components"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface TooltipProps extends AriaTooltipTriggerComponentProps, Omit { /** diff --git a/resources/js/components/browser/MotionPicker.tsx b/resources/js/components/browser/MotionPicker.tsx index 10653e5..a435321 100644 --- a/resources/js/components/browser/MotionPicker.tsx +++ b/resources/js/components/browser/MotionPicker.tsx @@ -19,7 +19,7 @@ import { import type { MotionPreset } from '@/core/MotionEngine'; import { groupPresets } from './presetGroups'; import { useT } from '@/hooks/useT'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; /** * MotionPicker -- a select that opens onto a search field and a grouped list. diff --git a/resources/js/components/command/CommandPalette.tsx b/resources/js/components/command/CommandPalette.tsx index 5f52f54..8b4f96c 100644 --- a/resources/js/components/command/CommandPalette.tsx +++ b/resources/js/components/command/CommandPalette.tsx @@ -7,7 +7,7 @@ import { Glyph } from '@/components/ui/Glyph'; import { glyphIcon, type GlyphIconComponent } from '@/components/ui/glyphIcon'; import { CommandMenu, type CommandMenuGroupType } from '@/components/application/command-menus/command-menu'; import type { CommandDropdownMenuItemProps } from '@/components/application/command-menus/base-components/command-menu-item'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; import { devtoolsKeyHint, modKey, resetKeyHint } from '@/core/format'; import { useT } from '@/hooks/useT'; import { CONFIG_DEFAULTS } from '@/core/config'; diff --git a/resources/js/components/consent/ConsentBanner.tsx b/resources/js/components/consent/ConsentBanner.tsx index 4613419..3a542e4 100644 --- a/resources/js/components/consent/ConsentBanner.tsx +++ b/resources/js/components/consent/ConsentBanner.tsx @@ -8,7 +8,7 @@ import { CONFIG_DEFAULTS } from '@/core/config'; import { useDraggableNotice } from '@/hooks/useDraggableNotice'; import { useT } from '@/hooks/useT'; import { useAppStore } from '@/hooks/useStoreApi'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; /** * ConsentBanner — the "Cookies & storage" notice (plan Part B). Shown until a diff --git a/resources/js/components/foundations/featured-icon/featured-icon.tsx b/resources/js/components/foundations/featured-icon/featured-icon.tsx deleted file mode 100644 index 41ae644..0000000 --- a/resources/js/components/foundations/featured-icon/featured-icon.tsx +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { FeaturedIcon } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/components/layout/AppSidebar.tsx b/resources/js/components/layout/AppSidebar.tsx index e48f59e..e20825f 100644 --- a/resources/js/components/layout/AppSidebar.tsx +++ b/resources/js/components/layout/AppSidebar.tsx @@ -8,7 +8,7 @@ import { SearchMd } from '@/components/ui/chromeIcons'; import { Glyph } from '@/components/ui/Glyph'; import { InputBase } from '@/components/base/input/input'; import { CheckboxBase } from '@/components/base/checkbox/checkbox'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; import { Segmented } from '@/components/ui/Segmented'; import { CategoryTree } from './CategoryTree'; import { num } from '@/core/format'; diff --git a/resources/js/components/shared-assets/banners/notice-banner.tsx b/resources/js/components/shared-assets/banners/notice-banner.tsx index a9095f6..7f73c79 100644 --- a/resources/js/components/shared-assets/banners/notice-banner.tsx +++ b/resources/js/components/shared-assets/banners/notice-banner.tsx @@ -5,7 +5,7 @@ // dismiss button; the app supplies translated copy and its own actions. import type { FC, HTMLAttributes, ReactNode, Ref } from "react"; import { useId } from "react"; -import { cx } from "@/lib/utils/cx"; +import { cx } from "@ichava/js-ui-kernel/react"; interface NoticeBannerProps extends Omit, "title"> { icon?: FC<{ className?: string }>; diff --git a/resources/js/components/tour/TourModal.tsx b/resources/js/components/tour/TourModal.tsx index 12c1e49..57cc90e 100644 --- a/resources/js/components/tour/TourModal.tsx +++ b/resources/js/components/tour/TourModal.tsx @@ -1,9 +1,9 @@ import { Modal } from '@/components/ui/Modal'; import { glyphIcon } from '@/components/ui/glyphIcon'; import { Button } from '@/components/base/buttons/button'; -import { FeaturedIcon } from '@/components/foundations/featured-icon/featured-icon'; +import { FeaturedIcon } from '@ichava/js-ui-kernel/react'; import { ModalFooter, ModalHeader } from '@/components/application/modal-layouts/modal-layouts'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; import { useT } from '@/hooks/useT'; import { TOUR_STEPS } from '@/components/tour/steps'; import { useAppStore } from '@/hooks/useStoreApi'; diff --git a/resources/js/components/ui/ConfirmDialog.tsx b/resources/js/components/ui/ConfirmDialog.tsx index 77631e6..8b961fc 100644 --- a/resources/js/components/ui/ConfirmDialog.tsx +++ b/resources/js/components/ui/ConfirmDialog.tsx @@ -1,7 +1,7 @@ import { Modal } from '@/components/ui/Modal'; import { glyphIcon } from '@/components/ui/glyphIcon'; import { Button } from '@/components/base/buttons/button'; -import { FeaturedIcon } from '@/components/foundations/featured-icon/featured-icon'; +import { FeaturedIcon } from '@ichava/js-ui-kernel/react'; import { ModalFooter, ModalHeader } from '@/components/application/modal-layouts/modal-layouts'; import { useT } from '@/hooks/useT'; import { useAppStore } from '@/hooks/useStoreApi'; diff --git a/resources/js/components/ui/EmptyState.tsx b/resources/js/components/ui/EmptyState.tsx index e1cf4e6..3bc539c 100644 --- a/resources/js/components/ui/EmptyState.tsx +++ b/resources/js/components/ui/EmptyState.tsx @@ -1,8 +1,8 @@ import type { ReactNode } from 'react'; import { glyphIcon } from '@/components/ui/glyphIcon'; -import { FeaturedIcon } from '@/components/foundations/featured-icon/featured-icon'; -import { cx } from '@/lib/utils/cx'; +import { FeaturedIcon } from '@ichava/js-ui-kernel/react'; +import { cx } from '@ichava/js-ui-kernel/react'; /** * EmptyState — "nothing here" for the grid, the library tabs and the notifications list, diff --git a/resources/js/components/ui/Menu.tsx b/resources/js/components/ui/Menu.tsx index d83f591..fa61e03 100644 --- a/resources/js/components/ui/Menu.tsx +++ b/resources/js/components/ui/Menu.tsx @@ -5,7 +5,7 @@ import { Pressable } from 'react-aria-components'; import { Dropdown } from '@/components/base/dropdown/dropdown'; import { CARET_CORNER_CLEARANCE, CARET_HEIGHT } from '@/components/ui/caretGeometry'; import { PopoverCaret } from '@/components/ui/PopoverCaret'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; /** * Menus on Untitled UI's `Dropdown` (free, `base/dropdown`), inventory #17, #23, #32, #39. diff --git a/resources/js/components/ui/Segmented.tsx b/resources/js/components/ui/Segmented.tsx index 0dee4a4..9a19464 100644 --- a/resources/js/components/ui/Segmented.tsx +++ b/resources/js/components/ui/Segmented.tsx @@ -1,7 +1,7 @@ import type { Key } from 'react-aria-components'; import { ButtonGroup, ButtonGroupItem } from '@/components/base/button-group/button-group'; -import { cx } from '@/lib/utils/cx'; +import { cx } from '@ichava/js-ui-kernel/react'; /** * Segmented — a compact single-choice control on Untitled UI's `ButtonGroup` (a react-aria diff --git a/resources/js/core/docsUrl.test.ts b/resources/js/core/docsUrl.test.ts index dc8dfbe..1f1c6e7 100644 --- a/resources/js/core/docsUrl.test.ts +++ b/resources/js/core/docsUrl.test.ts @@ -33,10 +33,10 @@ describe('docs link', () => { expect(docs[0]!.href).toBe(expected); }); - it('matches the fallback built into the vendored library', () => { - // The library ships index.js plus the chunks its on-demand layers load; the defaults may sit in either. - const dir = resolve(process.cwd(), 'resources/vendor/react-icon-browser'); - const bundle = readdirSync(dir).filter((f) => f.endsWith('.js')).map((f) => readFileSync(resolve(dir, f), 'utf8')).join('\n'); + it('matches the fallback built into the committed bundle', () => { + // The bundle is the entry plus the chunks its on-demand layers load; the defaults may sit in either. + const dir = resolve(process.cwd(), 'public/assets/js'); + const bundle = readdirSync(dir).filter((f) => f.startsWith('inertia-app') && f.endsWith('.js')).map((f) => readFileSync(resolve(dir, f), 'utf8')).join('\n'); const urls = bundle.match(/https:\/\/github\.com\/ichava\/icon-browser\/tree\/main\/docs/g) ?? []; // Floor: the default Docs link and HelpMenu's fallback. A pattern that stops matching must fail. diff --git a/resources/js/core/minifiedBundle.test.ts b/resources/js/core/minifiedBundle.test.ts index 26075ce..4d06a21 100644 --- a/resources/js/core/minifiedBundle.test.ts +++ b/resources/js/core/minifiedBundle.test.ts @@ -4,10 +4,9 @@ import { join, resolve } from 'node:path'; import { minificationProblems } from './minifiedBundle'; /** - * The browser code this public repository ships is fully minified: the vendored - * react-icon-browser build and the page bundle built from it (see `minifiedBundle.ts`). + * The browser code this public repository ships is fully minified: the page bundle built from + * resources/js (see `minifiedBundle.ts`). The vendored react-icon-browser build was removed on 2026-11-13. */ -const vendored = resolve(process.cwd(), 'resources/vendor/react-icon-browser/index.js'); const page = resolve(process.cwd(), 'public/assets/js/inertia-app.js'); describe('minificationProblems', () => { @@ -31,23 +30,18 @@ describe('minificationProblems', () => { const walk = (d: string): string[] => readdirSync(d, { withFileTypes: true }).flatMap((e) => (e.isDirectory() ? walk(join(d, e.name)) : [join(d, e.name)])); -/** Every file this repository ships browser code from: the vendored library and the built assets. */ -const shipped = ['resources/vendor/react-icon-browser', 'public'].flatMap((d) => walk(resolve(process.cwd(), d))); +/** Every file this repository ships browser code from: the built assets under public/. */ +const shipped = walk(resolve(process.cwd(), 'public')); describe('shipped browser code', () => { it('holds no source map, nor any file carrying map sources', () => { - // Floor: the vendored library alone is 200 files; a walk that reads nothing must fail. - expect(shipped.length).toBeGreaterThan(200); + // Floor: public/ held 60 files on 2026-11-13; a walk that reads nothing must fail. + expect(shipped.length).toBeGreaterThan(40); expect(shipped.filter((f) => f.endsWith('.map'))).toEqual([]); const text = shipped.filter((f) => /\.(js|mjs|css|json|html)$/.test(f)); expect(text.filter((f) => /sourcesContent|sourceMappingURL/.test(readFileSync(f, 'utf8')))).toEqual([]); }); - it('vendors react-icon-browser fully minified', () => { - expect(existsSync(vendored)).toBe(true); - expect(minificationProblems(readFileSync(vendored, 'utf8'))).toEqual([]); - }); - it('builds the page bundle fully minified', () => { expect(existsSync(page)).toBe(true); expect(minificationProblems(readFileSync(page, 'utf8'))).toEqual([]); diff --git a/resources/js/core/minifiedBundle.ts b/resources/js/core/minifiedBundle.ts index d79e2fb..f1eec74 100644 --- a/resources/js/core/minifiedBundle.ts +++ b/resources/js/core/minifiedBundle.ts @@ -5,7 +5,7 @@ * repository is public. Untitled UI PRO's licence bars exposing its source, so the * vendored bundle and the page bundle built from it must carry no readable layout, no * comments but licences and pure annotations, no unmangled names and no source map. - * react-icon-browser's `check-lib-build.mjs` applies the same rules to its build. + * react-icon-browser's library build applied the same rules; that build is retired. * * Template literals keep their own newlines and indentation, so the layout limits are * per byte rather than zero. diff --git a/resources/js/core/noDeprecations.test.ts b/resources/js/core/noDeprecations.test.ts index 457ec4e..efbc56f 100644 --- a/resources/js/core/noDeprecations.test.ts +++ b/resources/js/core/noDeprecations.test.ts @@ -7,24 +7,10 @@ import { join, relative, resolve, sep } from 'node:path'; * a new `@deprecated` from settling in unnoticed: deprecate and remove in the same release * cycle, or keep the thing as supported. CHANGELOG history is not scanned. * - * One exception, and it is a ceiling: the ten files whose code moved to - * @ichava/js-ui-kernel/react in react consolidation 3d (2026-11-12). The owner's rule is that - * nothing is removed without a per-item yes, so each stays as a deprecated re-export, recorded - * in react-consolidation audits/deprecations.md. The list must match exactly: a new - * `@deprecated` fails, and so does an entry whose file stopped being one. + * The ten kernel re-exports deprecated in react consolidation 3d were removed on 2026-11-13 + * (owner: "wire in what can be wired, otherwise remove"); their importers now import + * @ichava/js-ui-kernel/react directly. */ -const KERNEL_RE_EXPORTS = [ - 'components/base/avatar/base-components/avatar-count.tsx', - 'components/base/avatar/base-components/avatar-online-indicator.tsx', - 'components/base/avatar/base-components/index.tsx', - 'components/base/avatar/base-components/verified-tick.tsx', - 'components/base/radio-buttons/radio-buttons.tsx', - 'components/base/toggle/toggle.tsx', - 'components/foundations/featured-icon/featured-icon.tsx', - 'lib/utils/cx.ts', - 'lib/utils/is-react-component.ts', - 'styles/uui-theme.css', -]; const ROOT = resolve(process.cwd(), 'resources/js'); function sources(dir: string): string[] { @@ -46,7 +32,7 @@ describe('no deprecated symbols', () => { .filter((f) => readFileSync(f, 'utf8').includes('@deprecated')) .map((f) => relative(ROOT, f).split(sep).join('/')) .sort(); - expect(offenders).toEqual(KERNEL_RE_EXPORTS); + expect(offenders).toEqual([]); }); it('names the motion engine by its package in generated snippets', () => { diff --git a/resources/js/core/prepaint.test.ts b/resources/js/core/prepaint.test.ts index d51bcfa..5368dee 100644 --- a/resources/js/core/prepaint.test.ts +++ b/resources/js/core/prepaint.test.ts @@ -28,16 +28,16 @@ describe('dismissPrepaint', () => { expect(() => dismissPrepaint()).not.toThrow(); }); - // The id is the only link between this file, the vendored markup and the library. - it('uses the id the vendored prepaint.html renders', () => { - const html = readFileSync(resolve(process.cwd(), 'resources/vendor/react-icon-browser/prepaint.html'), 'utf8'); + // The id is the only link between this file and the markup Prepaint.php inlines. + it('uses the id the prepaint.html fragment renders', () => { + const html = readFileSync(resolve(process.cwd(), 'resources/views/prepaint.html'), 'utf8'); expect(html).toContain(`id="${PREPAINT_ID}"`); }); - // Prepaint.php still inlines the vendored file. Its source is resources/js/boot/prepaint.html - // since react consolidation 3d, so the two must agree: `npm run build:prepaint` rewrites it. - it('vendors exactly the prepaint the browser source renders', () => { - const html = readFileSync(resolve(process.cwd(), 'resources/vendor/react-icon-browser/prepaint.html'), 'utf8'); + // Prepaint.php inlines resources/views/prepaint.html, generated from resources/js/boot/prepaint.html, + // so the two must agree: `npm run build:prepaint` rewrites it. + it('ships exactly the prepaint the browser source renders', () => { + const html = readFileSync(resolve(process.cwd(), 'resources/views/prepaint.html'), 'utf8'); expect(html, 'stale: run npm run build:prepaint').toBe(`${prepaintFragment({ suffix: 'Browser' })}\n`); }); }); diff --git a/resources/js/core/syncVendoredLibrary.test.ts b/resources/js/core/syncVendoredLibrary.test.ts index 45d77e3..a7e40a6 100644 --- a/resources/js/core/syncVendoredLibrary.test.ts +++ b/resources/js/core/syncVendoredLibrary.test.ts @@ -9,7 +9,7 @@ import { pathToFileURL } from 'node:url'; /** * `.dev/tools/sync-vendored-library.mjs` is shared byte-for-byte with ichava/ichava.com, so its * host-agnostic rules are pinned here: the vendored package.json it derives, and the arguments - * it refuses. `vendoredLibrary.test.ts` checks the output it wrote. + * it refuses. ichava.com's landing build is its one caller. */ type Mod = { vendoredManifest: (pkg: Record, o: { typeDependencies?: string[]; generatedBy: string }) => Record; @@ -56,12 +56,6 @@ describe('sync-vendored-library', () => { expect(m.description).toBe('Vendored build of @ichava/react-example. Generated by x.mjs; do not edit.'); }); - it('keeps the key order the committed vendored package.json has', () => { - const m = mod.vendoredManifest(library, { typeDependencies: ['@ichava/js-ui-kernel'], generatedBy: 'x.mjs' }); - const committed = JSON.parse(readFileSync(resolve(process.cwd(), 'resources/vendor/react-icon-browser/package.json'), 'utf8')); - expect(Object.keys(m)).toEqual(Object.keys(committed)); - }); - it('refuses a type dependency the library does not have, and a library exporting nothing built', () => { expect(() => mod.vendoredManifest(library, { typeDependencies: ['zod'], generatedBy: 'x' })).toThrow(mod.SyncError); expect(() => mod.vendoredManifest({ ...library, exports: { '.': './src/index.ts' } }, { generatedBy: 'x' })).toThrow(/exports nothing/); diff --git a/resources/js/core/vendoredLibrary.test.ts b/resources/js/core/vendoredLibrary.test.ts deleted file mode 100644 index ca831c3..0000000 --- a/resources/js/core/vendoredLibrary.test.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { describe, expect, it } from 'vitest'; -import { createHash } from 'node:crypto'; -import { existsSync, readdirSync, readFileSync } from 'node:fs'; -import { join, relative, resolve, sep } from 'node:path'; - -/** - * The vendored @ichava/react-icon-browser build is exactly what its manifest says. - * - * `.dev/tools/sync-react-icon-browser.mjs` copies the library's `dist/lib` here and writes - * `vendored.json`: the commit it was built from and a hash of every file. A hand edit to the - * bundle, a partial copy, or a stray file would otherwise ship unnoticed, since nothing else - * reads these files until a host's page renders them. Re-run the sync script; never edit - * the vendored files. - */ -const dir = resolve(process.cwd(), 'resources/vendor/react-icon-browser'); -// The manifest is vendored.json and nothing else: the sync writes only that name. -const MANIFEST = 'vendored.json'; -const manifest = JSON.parse(readFileSync(join(dir, MANIFEST), 'utf8')) as { - package: string; - commit: string; - files: Record; -}; - -const walk = (d: string): string[] => - readdirSync(d, { withFileTypes: true }).flatMap((e) => (e.isDirectory() ? walk(join(d, e.name)) : [join(d, e.name)])); - -// DEPRECATED.md says the directory is no longer rebuilt (react consolidation 3e, 2026-11-12); -// it is not part of the vendored build, so the manifest does not list it. -const NOTICE = 'DEPRECATED.md'; -const onDisk = walk(dir) - .map((f) => relative(dir, f).split(sep).join('/')) - .filter((f) => f !== MANIFEST && f !== NOTICE) - .sort(); - -describe('vendored react-icon-browser', () => { - it('says it is deprecated', () => { - expect(readFileSync(join(dir, NOTICE), 'utf8')).toContain('Deprecated on 2026-11-12'); - }); - - it('keeps its manifest as vendored.json, the name the sync writes', () => { - expect(readdirSync(dir)).toContain('vendored.json'); - expect(readdirSync(dir)).not.toContain('VENDORED.json'); - }); - - it('names the package and the full commit it was built from', () => { - expect(manifest.package).toBe('@ichava/react-icon-browser'); - expect(manifest.commit).toMatch(/^[0-9a-f]{40}$/); - }); - - it('holds exactly the files its manifest lists', () => { - // Floor: the bundle, the stylesheet, two fonts and the declarations. A walk that finds - // nothing must fail rather than agree with an empty manifest. - expect(onDisk.length).toBeGreaterThan(100); - expect(onDisk).toEqual(Object.keys(manifest.files).sort()); - }); - - it('matches every hash in the manifest', () => { - const drift = onDisk.filter((f) => createHash('sha256').update(readFileSync(join(dir, f))).digest('hex') !== manifest.files[f]); - expect(drift).toEqual([]); - }); - - it('ships no source map, whose sources are the readable library source', () => { - expect(onDisk.filter((f) => f.endsWith('.map'))).toEqual([]); - expect(existsSync(join(dir, 'index.js.map'))).toBe(false); - }); - - it('carries the library licence', () => { - expect(readFileSync(join(dir, 'LICENSE'), 'utf8')).toContain('Untitled UI PRO'); - }); - - it('does not say the repository it ships in must stay private', () => { - // react-icon-browser's own LICENSE says its repository must remain private, which is - // true there and false here: ichava/icon-browser is public and carries only the compiled - // build. A re-sync copies that LICENSE back verbatim, so this fails until it is reworded. - const license = readFileSync(join(dir, 'LICENSE'), 'utf8').replace(/\s+/g, ' '); - expect(license).not.toMatch(/must (therefore )?remain private/i); - expect(license).toContain('may not be redistributed outside them'); - }); -}); diff --git a/resources/js/lib/browser.ts b/resources/js/lib/browser.ts index 5f79777..70643e1 100644 --- a/resources/js/lib/browser.ts +++ b/resources/js/lib/browser.ts @@ -2,8 +2,8 @@ // // The UI is the browser library, whose source lives in this repository since react consolidation // 3d (2026-11-12): resources/js/index.ts is its public surface, imported from -// ichava/react-icon-browser as a snapshot. It used to be a built library vendored under -// resources/vendor/react-icon-browser. The adapter around it is the rest of this package's own +// ichava/react-icon-browser as a snapshot. It used to be a built library vendored into this +// package; that copy was removed on 2026-11-13. The adapter around it is the rest of this package's own // code: pages, the props-to-catalog bridge, the Inertia-backed IconCatalog, and the server // mutations for library state. // diff --git a/resources/js/lib/utils/cx.ts b/resources/js/lib/utils/cx.ts deleted file mode 100644 index 516a8f2..0000000 --- a/resources/js/lib/utils/cx.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { cx, sortCx } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/lib/utils/is-react-component.ts b/resources/js/lib/utils/is-react-component.ts deleted file mode 100644 index 30ca3c5..0000000 --- a/resources/js/lib/utils/is-react-component.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @deprecated since 2026-11-12 (react consolidation 3d): this lives in @ichava/js-ui-kernel/react now, - * shared with ichava.com. Import it from there. This file re-exports it so every existing import - * keeps working; removing it needs the owner's yes (react-consolidation audits/deprecations.md). - */ -export { isClassComponent, isForwardRefComponent, isFunctionComponent, isReactComponent } from '@ichava/js-ui-kernel/react'; diff --git a/resources/js/modules/catalog/domain/listParams.ts b/resources/js/modules/catalog/domain/listParams.ts index f14597c..454f107 100644 --- a/resources/js/modules/catalog/domain/listParams.ts +++ b/resources/js/modules/catalog/domain/listParams.ts @@ -8,7 +8,7 @@ import type { IconKind } from '@ichava/js-ui-kernel'; * answers. * * Written out member by member rather than extending the kernel's type, so the public - * declaration only gains lines (scripts/check-public-api.mjs). + * declaration only gains lines. */ export interface ListParams { search?: string; diff --git a/resources/js/styles/theme.css b/resources/js/styles/theme.css index 9dd74b2..a3e4b56 100644 --- a/resources/js/styles/theme.css +++ b/resources/js/styles/theme.css @@ -22,7 +22,7 @@ */ @import 'tailwindcss'; -@import './uui-theme.css'; +@import '@ichava/js-ui-kernel/react/uui-theme.css'; @import './ichava-theme.css'; /* Tailwind generates a utility for every class-like word in the sources it scans, comments diff --git a/resources/js/styles/uui-theme.css b/resources/js/styles/uui-theme.css deleted file mode 100644 index af073bd..0000000 --- a/resources/js/styles/uui-theme.css +++ /dev/null @@ -1,6 +0,0 @@ -/* - * @deprecated since 2026-11-12 (react consolidation 3d): the Untitled UI theme lives in - * @ichava/js-ui-kernel/react/uui-theme.css now, shared with ichava.com. This file imports it so - * styles/theme.css keeps working unchanged; removing it needs the owner's yes. - */ -@import '@ichava/js-ui-kernel/react/uui-theme.css'; diff --git a/resources/vendor/react-icon-browser/AboutDialog-3ajb2X6F.js b/resources/vendor/react-icon-browser/AboutDialog-3ajb2X6F.js deleted file mode 100644 index c67335d..0000000 --- a/resources/vendor/react-icon-browser/AboutDialog-3ajb2X6F.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{h as e,u as t}from"./index.js";import{t as n}from"./Glyph-ifDznOhl.js";import{A as r,Ct as i,K as a}from"./chromeIcons-ITgd2uHk.js";import{useEffect as o,useRef as s,useState as c}from"react";import{jsx as l,jsxs as u}from"react/jsx-runtime";function d({children:e,direction:t=`vertical`,durationSec:n=16,gap:r=0,style:i,fade:a=!0,fadeColor:o=`var(--muted2)`}){return l(t===`horizontal`?m:p,{durationSec:n,gap:r,style:i,fade:a,fadeColor:o,children:e})}function f(e,t){return{position:`absolute`,inset:0,pointerEvents:`none`,background:e?`linear-gradient(${t}, transparent 16px, transparent calc(100% - 16px), ${t})`:`linear-gradient(90deg, ${t}, transparent 24px, transparent calc(100% - 24px), ${t})`}}function p({children:e,durationSec:t,gap:n,style:r,fade:i,fadeColor:a}){let c=s(null),d=s(!1);return o(()=>{let e=c.current;if(!e)return;let n=0,r=performance.now(),i=e.scrollTop,a=o=>{let s=o-r;r=o;let c=document.documentElement.hasAttribute(`data-reduce-motion`),l=e.scrollHeight/2;d.current||c?(i=e.scrollTop,l>0&&i>=l&&(i-=l,e.scrollTop=i)):l>0&&(i+=l/(t*1e3)*s,i>=l&&(i-=l),e.scrollTop=i),n=requestAnimationFrame(a)};return n=requestAnimationFrame(a),()=>cancelAnimationFrame(n)},[t]),/* @__PURE__ */ u(`div`,{onMouseEnter:()=>d.current=!0,onMouseLeave:()=>d.current=!1,style:{position:`relative`,overflow:`hidden`,...r},children:[/* @__PURE__ */ u(`div`,{ref:c,className:`ich-marquee-scroll`,style:{height:`100%`,overflowY:`auto`,overscrollBehavior:`contain`},children:[/* @__PURE__ */ l(`div`,{style:{display:`flex`,flexDirection:`column`,gap:n},children:e}),/* @__PURE__ */ l(`div`,{style:{display:`flex`,flexDirection:`column`,gap:n},"aria-hidden":!0,children:e})]}),i&&/* @__PURE__ */ l(`div`,{style:f(!0,a)})]})}function m({children:e,durationSec:t,gap:n,style:r,fade:i,fadeColor:a}){let[o,s]=c(!1);return/* @__PURE__ */ u(`div`,{onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),style:{position:`relative`,overflow:`hidden`,...r},children:[/* @__PURE__ */ u(`div`,{style:{display:`flex`,flexDirection:`row`,gap:n,animation:`ichMarqueeX ${t}s linear infinite`,animationPlayState:o?`paused`:`running`,willChange:`transform`},children:[/* @__PURE__ */ l(`div`,{style:{display:`flex`,flexDirection:`row`,gap:n},children:e}),/* @__PURE__ */ l(`div`,{style:{display:`flex`,flexDirection:`row`,gap:n},"aria-hidden":!0,children:e})]}),i&&/* @__PURE__ */ l(`div`,{style:f(!1,a)})]})}function h(){let o=r(),s=a(e=>e.closeLayer),c=a(e=>e.config),f=a(e=>e.catalog),p=c?.about??i.about,m=p.credits,h=p.links,_=c?.crossLinks?.landing,v=typeof _==`string`&&/^https?:\/\//i.test(_)?_:null;return/* @__PURE__ */ u(t,{showClose:!1,onClose:s,width:400,panelStyle:{overflow:`hidden`},children:[/* @__PURE__ */ u(`div`,{className:`relative`,children:[/* @__PURE__ */ l(`button`,{onClick:s,title:`${o(`common.close`)} — Esc`,className:`absolute top-2.5 end-2.5 z-2 w-[26px] h-[26px] border border-[var(--border)] bg-[var(--pop)] shadow-[var(--shadow)] rounded-[6px] cursor-pointer flex items-center justify-center text-[var(--muted-fg)]`,children:/* @__PURE__ */ l(n,{name:`close`,size:12,color:`currentColor`})}),/* @__PURE__ */ u(`div`,{className:`flex flex-col items-center gap-2.5 pt-[26px] px-5 pb-[18px] bg-[var(--accent-soft)]`,children:[/* @__PURE__ */ l(`div`,{className:`w-[46px] h-[46px] rounded-[12px] bg-[var(--accent)] flex items-center justify-center shadow-[var(--shadow-elevated)]`,children:/* @__PURE__ */ l(n,{name:`layers`,size:25,color:`var(--accent-fg)`})}),/* @__PURE__ */ u(`div`,{className:`flex items-baseline gap-1.5`,children:[/* @__PURE__ */ l(`span`,{className:`font-bold text-[16px] tracking-[-.02em]`,children:c?.brand.name??`Ichava`}),/* @__PURE__ */ l(`span`,{className:`text-[var(--muted-fg)] text-[14px]`,children:c?.brand.suffix??o(`about.browser`)}),/* @__PURE__ */ u(`span`,{className:`font-[family-name:'Geist_Mono',monospace] text-[11px] text-[var(--accent-text)]`,children:[`v`,c?.meta.version??`0.1.0`]})]}),/* @__PURE__ */ l(`div`,{className:`text-[12px] text-[var(--muted-fg)] text-center leading-[1.55] max-w-[40ch]`,children:p.description}),/* @__PURE__ */ u(`div`,{className:`text-[11px] text-[var(--faint-fg)]`,children:[o(`about.craftedBy`),` `,/* @__PURE__ */ l(`b`,{className:`text-[var(--fg)] font-semibold`,children:c?.meta.author??`Simtabi LLC`})]})]})]}),/* @__PURE__ */ u(`div`,{className:`flex border-t border-t-[var(--border)] border-b border-b-[var(--border)]`,children:[/* @__PURE__ */ l(g,{value:e(f?.meta.total_ecosystem??0),label:p.stats[0]?.label??o(`about.statIcons`),border:!0}),/* @__PURE__ */ l(g,{value:String(c?.meta.sets??70),label:p.stats[1]?.label??o(`about.statSets`),border:!0}),/* @__PURE__ */ l(g,{value:c?.meta.license??i.meta.license,label:p.stats[2]?.label??o(`about.statLicense`)})]}),/* @__PURE__ */ l(`div`,{className:`text-[9.5px] font-bold tracking-[.08em] text-[var(--faint-fg)] text-center pt-2 px-0 pb-1.5 bg-[var(--muted2)] border-b border-b-[var(--border)]`,children:p.creditsTitle}),/* @__PURE__ */ l(d,{durationSec:p.creditsMarqueeSec,style:{height:126,background:`var(--muted2)`},fadeColor:`var(--muted2)`,children:m.map(e=>/* @__PURE__ */ u(`div`,{className:`flex items-baseline justify-center gap-2 py-[5px] px-4`,children:[/* @__PURE__ */ l(`span`,{className:`text-[11.5px] font-[600]`,children:e.name}),/* @__PURE__ */ l(`span`,{className:`text-[10px] text-[var(--muted-fg)]`,children:e.author}),/* @__PURE__ */ l(`span`,{className:`font-[family-name:'Geist_Mono',monospace] text-[9.5px] text-[var(--accent-text)] bg-[var(--accent-soft)] rounded-[3px] py-0 px-[5px]`,children:e.license})]},e.name))}),/* @__PURE__ */ u(`div`,{className:`flex items-center gap-3 py-3 px-4 flex-wrap`,children:[/* @__PURE__ */ l(`span`,{className:`text-[11px] text-[var(--muted-fg)]`,children:p.copyright}),/* @__PURE__ */ l(`span`,{className:`flex-1`}),/* @__PURE__ */ u(`div`,{className:`flex items-center gap-3`,children:[v&&/* @__PURE__ */ l(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,className:`text-[12px]`,"data-ichava-landing":``,children:o(`about.landing`)}),h.map(e=>/* @__PURE__ */ l(`a`,{href:e.href,target:`_blank`,rel:`noreferrer`,className:`text-[12px]`,children:e.label},e.label))]})]})]})}function g({value:e,label:t,border:n}){return/* @__PURE__ */ u(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,gap:2,padding:10,borderRight:n?`1px solid var(--border)`:void 0},children:[/* @__PURE__ */ l(`span`,{className:`font-[family-name:'Geist_Mono',monospace] text-[14px] font-semibold`,children:e}),/* @__PURE__ */ l(`span`,{className:`text-[10px] text-[var(--muted-fg)]`,children:t})]})}export{h as AboutDialog}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/CommandPalette-CeLqONKy.js b/resources/vendor/react-icon-browser/CommandPalette-CeLqONKy.js deleted file mode 100644 index c9cad63..0000000 --- a/resources/vendor/react-icon-browser/CommandPalette-CeLqONKy.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{a as e,n as t,r as n,t as r}from"./IconAsset-BVRD6Pac.js";import{t as i}from"./Glyph-ifDznOhl.js";import{t as a}from"./glyphIcon-D8F12BiB.js";import{t as o}from"./cx-B63ov-ZV.js";import{A as s,C as c,Ct as l,K as u,T as d,g as f,i as p,l as m,n as h,q as g,r as _,t as v}from"./chromeIcons-ITgd2uHk.js";import{n as y,t as b}from"./tooltip-Dya0yQP2.js";import{O as x,_ as S,m as C,p as ee,v as w}from"./index.js";import{t as T}from"./avatar-D043d4aw.js";import{t as E}from"./featured-icon-CzZVq73R.js";import{o as te}from"./snippets-CIeWnjDR.js";import{Children as D,Fragment as O,createContext as k,useContext as A,useMemo as j,useRef as ne,useState as M}from"react";import{Fragment as N,jsx as P,jsxs as F}from"react/jsx-runtime";import{Autocomplete as re,Collection as I,Dialog as ie,DialogTrigger as ae,Group as oe,Header as L,Input as R,ListBox as z,ListBoxItem as B,ListBoxSection as V,Modal as H,ModalOverlay as U,Text as W,TextField as G,useFilter as K}from"react-aria-components";var q=({keys:e,withThen:t,className:n,size:r=`md`})=>/* @__PURE__ */ P(`div`,{className:o(`flex items-center gap-x-1`,n),children:e.map((e,n)=>/* @__PURE__ */ F(O,{children:[n!==0&&/* @__PURE__ */ F(`div`,{className:`flex items-center gap-x-1 text-quaternary`,children:[t&&/* @__PURE__ */ P(`span`,{className:`text-sm font-medium`,children:`then`}),/* @__PURE__ */ P(_,{size:16,strokeWidth:2.2})]}),/* @__PURE__ */ P(`kbd`,{className:o(`min-w-6 rounded-[4px] bg-secondary_alt px-1 py-0.5 text-center font-medium text-tertiary ring-1 ring-secondary ring-inset`,r===`sm`?`font-mono text-[10.5px]`:`text-sm`),children:e.toUpperCase()})]},n))}),se=({placeholder:e,shortcutKeys:t,tooltip:n,className:r,...i})=>/* @__PURE__ */ F(oe,{className:({isFocusWithin:e})=>o(`flex items-center gap-x-2 rounded-xl bg-primary p-4`,e&&`outline-2 outline-focus-ring`,r),children:[/* @__PURE__ */ P(`div`,{className:`pointer-events-none absolute`,children:/* @__PURE__ */ P(c,{className:`size-5 text-fg-quaternary`})}),/* @__PURE__ */ P(R,{placeholder:e,className:`m-0 w-full bg-transparent pl-7 text-md text-primary ring-0 outline-hidden placeholder:text-placeholder autofill:rounded-lg autofill:text-primary`,...i}),n&&/* @__PURE__ */ P(b,{title:n,placement:`top`,children:/* @__PURE__ */ P(y,{className:`cursor-pointer text-fg-quaternary transition duration-200 hover:text-fg-quaternary_hover focus:text-fg-quaternary_hover`,children:/* @__PURE__ */ P(f,{className:`size-4 stroke-[2.25px]`})})}),t&&/* @__PURE__ */ P(q,{keys:t})]}),J=e=>/* @__PURE__ */ F(`div`,{className:`flex h-7 min-w-7 items-center justify-between rounded-lg bg-primary p-1.5 ring-1 ring-secondary ring-inset`,children:[e.type===`icon`&&/* @__PURE__ */ P(e.icon,{strokeWidth:2.4,className:`size-4 text-fg-quaternary`}),e.type===`text`&&/* @__PURE__ */ P(`span`,{className:`text-sm font-semibold text-fg-quaternary`,children:e.label})]}),Y=({className:e})=>/* @__PURE__ */ F(`footer`,{className:o(`absolute inset-x-0 bottom-0 flex items-center justify-between gap-x-3 bg-alpha-white/80 p-2 pl-4.5 ring-1 ring-secondary_alt backdrop-blur-lg max-md:hidden`,e),children:[/* @__PURE__ */ F(`div`,{className:`flex gap-4`,children:[/* @__PURE__ */ F(`div`,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ F(`div`,{className:`flex gap-1.5`,children:[/* @__PURE__ */ P(J,{type:`icon`,icon:p}),/* @__PURE__ */ P(J,{type:`icon`,icon:v})]}),/* @__PURE__ */ P(`span`,{className:`text-sm font-semibold text-quaternary`,children:`to navigate`})]}),/* @__PURE__ */ F(`div`,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ P(J,{type:`icon`,icon:m}),/* @__PURE__ */ P(`span`,{className:`text-sm font-semibold text-quaternary`,children:`to select`})]}),/* @__PURE__ */ F(`div`,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ P(J,{type:`text`,label:`esc`}),/* @__PURE__ */ P(`span`,{className:`text-sm font-semibold text-quaternary`,children:`to close`})]}),/* @__PURE__ */ F(`div`,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ P(J,{type:`icon`,icon:h}),/* @__PURE__ */ P(`span`,{className:`text-sm font-semibold text-quaternary`,children:`return to parent`})]})]}),/* @__PURE__ */ P(w,{size:`sm`,color:`tertiary`,iconLeading:d})]}),ce=({children:e,className:t})=>/* @__PURE__ */ P(L,{className:o(`flex px-4.5 pt-2 text-xs font-semibold text-tertiary`,t),children:e});function le(e,t){let n=new Set(t);return Object.fromEntries(Object.entries(e).filter(([e])=>!n.has(e)))}var ue=({label:e,children:t,description:n,stacked:r,shortcutKeys:i,className:a,size:s=`md`,...c})=>{let l=s===`sm`;return/* @__PURE__ */ P(B,{...le(c,[`type`,`icon`,`alt`,`src`]),textValue:e,className:e=>o(`group block cursor-pointer px-2 py-0.5 outline-hidden`,typeof a==`function`?a(e):a),children:a=>/* @__PURE__ */ F(`div`,{className:o(`relative flex min-h-10 items-center justify-between rounded-lg px-2.5 py-2 pl-2.5 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover`,l&&`min-h-8 rounded-md px-2 py-1 pl-2`,a.isSelected&&`bg-primary_hover`,a.isFocusVisible&&`outline-2 outline-offset-2`,r&&`items-start p-2.5 pl-3.5`),children:[c.type===`icon`&&!r&&/* @__PURE__ */ P(c.icon,{className:o(`mr-2 text-fg-quaternary`,l?`size-4`:`size-5`)}),c.type===`icon`&&r&&/* @__PURE__ */ P(E,{color:`gray`,size:`md`,theme:`modern`,icon:c.icon,className:`mr-2`}),c.type===`avatar`&&/* @__PURE__ */ P(T,{alt:c.alt,src:c.src,size:r?`md`:`xs`,className:`mr-2`}),c.type===`dot`&&/* @__PURE__ */ P(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,fill:`none`,className:o(`mr-2 shrink-0 text-fg-success-secondary`,r&&`mt-2 self-start`),children:/* @__PURE__ */ P(`circle`,{cx:`5`,cy:`5`,r:`4`,fill:`currentColor`})}),/* @__PURE__ */ F(`div`,{className:o(`flex flex-1 gap-x-1.5`,r&&`flex-col`),children:[/* @__PURE__ */ F(W,{slot:`label`,className:o(`font-medium text-primary`,l?`text-[12.5px]`:`text-sm`,i&&`flex flex-1 items-center justify-between gap-2`),children:[/* @__PURE__ */ P(`span`,{children:typeof t==`function`?t(a):t||e}),i&&` `,i&&/* @__PURE__ */ P(q,{keys:i,size:s})]}),n&&/* @__PURE__ */ P(W,{slot:`description`,className:o(`text-tertiary`,l?`font-mono text-[10.5px]`:`text-sm`),children:n})]})]})})},X=k({hasFooter:!1,flatItems:[],selectedKeys:/* @__PURE__ */ new Set,setSelectedKeys:()=>{}}),de=({items:e,children:t,dialogClassName:n,overlayClassName:r,filter:i,inputValue:a,defaultItems:o,onInputChange:s,onSelectionChange:c,sensitivity:l=`base`,placeholder:u=`Search`,defaultSelectedKeys:d,shortcut:f=`⌘/`,dialogLabel:p=`Command menu`,inputLabel:m=`Search`,listLabel:h=`Command menu results`,...g})=>{let _=ne(null),{contains:v}=K({sensitivity:l}),[y,b]=M(d??/* @__PURE__ */ new Set),x=e??o,S=(x??[]).reduce((e,t)=>[...e,...t.items],[]),C=j(()=>{let e=!1;return D.forEach(t,t=>{t&&typeof t==`object`&&`type`in t&&t.type===Y&&(e=!0)}),e},[t]);return/* @__PURE__ */ P(X.Provider,{value:{hasFooter:C,flatItems:S,selectedKeys:y,setSelectedKeys:b,onSelectionChange:c,items:x,listLabel:h,...g},children:/* @__PURE__ */ P(fe,{"aria-label":p,isOpen:g.isOpen,onOpenChange:g.onOpenChange,className:r,dialogClassName:n,children:/* @__PURE__ */ F(re,{inputValue:a,onInputChange:s,filter:i===!1?void 0:i||v,children:[/* @__PURE__ */ P(G,{"aria-label":m,children:/* @__PURE__ */ P(se,{autoFocus:!0,role:`combobox`,"aria-expanded":!0,shortcutKeys:f?[f]:void 0,placeholder:u,ref:_,className:`relative outline-hidden! after:absolute after:bottom-0 after:left-0 after:h-px after:w-full after:bg-border-secondary`})}),t]})})})},fe=({className:e,dialogClassName:t,children:n,"aria-label":r=`Command menu`,...i})=>/* @__PURE__ */ P(U,{...i,isDismissable:!0,className:t=>o(`fixed inset-0 z-50 flex min-h-full items-start justify-center overflow-y-auto bg-overlay/70 p-4 text-center md:pt-16 xl:pt-[clamp(64px,10vh,243px)]`,t.isEntering&&`duration-300 ease-out animate-in fade-in`,t.isExiting&&`duration-200 ease-in animate-out fade-out`,typeof e==`function`?e(t):e),children:e=>/* @__PURE__ */ P(H,{className:e=>o(`flex max-h-full w-160 flex-col overflow-hidden rounded-xl bg-primary text-left align-middle shadow-xl`,e.isEntering&&`duration-300 ease-out animate-in zoom-in-95`,e.isExiting&&`duration-200 ease-in animate-out zoom-out-95`,typeof t==`function`?t(e):t),children:/* @__PURE__ */ P(ie,{"aria-label":r,className:`relative flex min-h-0 flex-1 flex-col outline-hidden`,children:typeof n==`function`?n(e):n})})}),pe=({className:e,selectionMode:t=`single`,...n})=>{let{hasFooter:r,emptyState:i,listLabel:a,...s}=A(X);return/* @__PURE__ */ P(z,{"aria-label":a,...n,...s,renderEmptyState:()=>i,selectionMode:t,onSelectionChange:e=>{s.onSelectionChange?.(e),s.setSelectedKeys(e)},className:t=>o(`flex max-h-106 flex-1 scroll-py-10 flex-col gap-2 overflow-auto focus:outline-hidden`,r&&`scroll-pb-22 pb-13`,!t.isEmpty&&`pt-2`,typeof e==`function`?e(t):e)})},me=({title:e,children:t,items:n,...r})=>/* @__PURE__ */ F(V,{...r,className:o(`border-b border-secondary pb-2 last:border-transparent`,r.className),children:[e&&/* @__PURE__ */ P(ce,{className:`pb-1`,children:e},e),/* @__PURE__ */ P(I,{items:n,children:t})]}),he=({children:e,asChild:t,...n})=>{let{selectedKeys:r}=A(X),i=Array.from(r);if(!i.length)return null;let a=i.at(0);return t?/* @__PURE__ */ P(O,{children:typeof e==`function`?e({selectedId:a}):e}):/* @__PURE__ */ P(`div`,{...n,children:typeof e==`function`?e({selectedId:a}):e})},Z=({className:e,...t})=>/* @__PURE__ */ P(`div`,{...t,className:o(`min-h-0 flex-1`,e)}),Q=de;Q.Item=ue,Q.List=pe,Q.Group=Z,Q.Footer=Y,Q.Preview=he,Q.Section=me,Q.Trigger=ae,Q.Collection=I;function ge(){let t=g(),r=e(),{catalog:i,page:c}=n(),d=u(e=>e.closeLayer),[f,p]=M(``),m=u(e=>e.config?.features.commands===!1?_e:e.recentCommands),h=C(),_=s(),v=u(e=>e.config?.limits)??l.limits,y=t.getState(),b=j(()=>[{id:`theme`,label:_(`palette.toggleTheme`),icon:`moon`,kbd:`${h}T`,run:()=>y.toggleTheme()},{id:`settings`,label:_(`palette.openSettings`),icon:`settings`,kbd:`${h},`,run:()=>y.openLayer(`settings`)},{id:`favorites`,label:_(`palette.openFavorites`),icon:`heart`,kbd:`${h}1`,run:()=>y.openLibrary(`favorites`)},{id:`history`,label:_(`palette.openHistory`),icon:`clock`,kbd:`${h}2`,run:()=>y.openLibrary(`history`)},{id:`collections`,label:_(`palette.openCollections`),icon:`folder`,kbd:`${h}3`,run:()=>y.openLibrary(`collections`)},{id:`view`,label:y.view===`grid`?_(`palette.switchListView`):_(`palette.switchGridView`),icon:y.view===`grid`?`list`:`grid`,kbd:``,run:()=>y.setView(y.view===`grid`?`list`:`grid`)},{id:`reset`,label:_(`palette.resetFilters`),icon:`refresh`,kbd:S(h),run:()=>y.openConfirm({title:_(`toolbar.resetTitle`),body:_(`toolbar.resetBody`),confirmLabel:_(`toolbar.resetConfirm`),danger:!0,onConfirm:()=>{y.resetFilters(),y.showToast(_(`toolbar.resetToast`),`refresh`)}})},{id:`selectAll`,label:_(`palette.selectAll`),icon:`check`,kbd:`${h}A`,run:()=>x(t,r)},...y.config?.features.devtools===!1?[]:[{id:`devtools`,label:_(`palette.openDevtools`),icon:`zap`,kbd:ee(h),run:()=>y.toggleDevtools()}]].filter(e=>{let t=y.config?.features;return e.id===`theme`?t?.themeToggle!==!1:e.id===`favorites`||e.id===`history`||e.id===`collections`?t?.[e.id]!==!1:!0}),[h,y,_,t,r]),w=f.trim().toLowerCase(),T=w?b.filter(e=>e.label.toLowerCase().includes(w)):[...b].sort((e,t)=>$(m,e.id)-$(m,t.id)),E=j(()=>w?(i?i.icons:c.items).filter(e=>`${e.name} ${e.id} ${(e.tags??[]).join(` `)}`.toLowerCase().includes(w)).slice(0,v.paletteIconResults):[],[w,i,c,v.paletteIconResults]),D=new Map(T.map(e=>[`a:${e.id}`,e])),O=new Map(E.map(e=>[`i:${e.id}`,e])),k=j(()=>E.map(e=>{let t=({className:t})=>/* @__PURE__ */ P(`span`,{className:o(`inline-flex items-center justify-center`,t),children:/* @__PURE__ */ P(ve,{icon:e})}),n=/* @__PURE__ */ F(N,{children:[e.name,` `,/* @__PURE__ */ P(`span`,{className:`ms-1 font-mono text-[10.5px] font-normal text-tertiary`,children:te(e)})]});return{id:`i:${e.id}`,type:`icon`,icon:t,label:e.name,children:n,size:`sm`}}),[E]),A=[];return T.length&&A.push({id:`actions`,title:!w&&m.length?_(`palette.recent`):_(`palette.actions`),items:T.map(e=>({id:`a:${e.id}`,type:`icon`,icon:a(e.icon),label:e.label,shortcutKeys:e.kbd?[e.kbd]:void 0,size:`sm`}))}),k.length&&A.push({id:`icons`,title:_(`palette.icons`),items:k}),/* @__PURE__ */ F(Q,{isOpen:!0,onOpenChange:e=>!e&&d(),items:A,filter:!1,inputValue:f,onInputChange:p,onAction:e=>{let n=O.get(String(e));if(n){y.openDetail(n.id);return}let r=D.get(String(e));r&&(t.getState().config?.features.commands!==!1&&y.logCommand(r.id,`action`),r.run(),t.getState().layer===`palette`&&d())},shortcut:null,placeholder:_(`palette.placeholder`),inputLabel:_(`palette.placeholder`),dialogLabel:_(`header.commandPalette`),listLabel:_(`palette.results`),overlayClassName:`z-(--z-overlay)`,dialogClassName:`w-[560px] max-w-[94vw] bg-[var(--surface)] text-[length:var(--app-font,13.5px)]`,emptyState:/* @__PURE__ */ P(`div`,{className:`p-6 text-center text-[12px] text-[var(--muted-fg)]`,children:_(`palette.noMatches`,{q:f})}),children:[/* @__PURE__ */ P(Q.Group,{children:/* @__PURE__ */ P(Q.List,{selectionMode:`none`,children:e=>/* @__PURE__ */ P(Q.Section,{...e,children:e=>/* @__PURE__ */ P(Q.Item,{...e},e.id)})})}),/* @__PURE__ */ F(`div`,{className:`flex items-center gap-2.5 border-t border-secondary px-3.5 py-2 text-[10.5px] text-[var(--muted-fg)]`,children:[/* @__PURE__ */ F(`span`,{children:[/* @__PURE__ */ P(`b`,{children:`↑↓`}),` `,_(`palette.navigate`)]}),/* @__PURE__ */ P(`span`,{"aria-hidden":!0,children:`·`}),/* @__PURE__ */ F(`span`,{children:[/* @__PURE__ */ P(`b`,{children:`↵`}),` `,_(`palette.select`)]}),/* @__PURE__ */ P(`span`,{"aria-hidden":!0,children:`·`}),/* @__PURE__ */ F(`span`,{children:[/* @__PURE__ */ P(`b`,{children:`esc`}),` `,_(`palette.close`)]})]})]})}var _e=[];function $(e,t){let n=e.indexOf(t);return n<0?99:n}function ve({icon:e}){let n=!!(e.svgUrl||e.svgContent),a=t(e);return!n||a?.body===``?/* @__PURE__ */ P(`span`,{"data-role":`preview-fallback`,className:`inline-flex`,children:/* @__PURE__ */ P(i,{name:`cube`,size:16,color:`var(--muted-fg)`})}):/* @__PURE__ */ P(r,{icon:e,size:16,inline:!0})}export{ge as CommandPalette}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/DEPRECATED.md b/resources/vendor/react-icon-browser/DEPRECATED.md deleted file mode 100644 index 09d69e0..0000000 --- a/resources/vendor/react-icon-browser/DEPRECATED.md +++ /dev/null @@ -1,15 +0,0 @@ -# Deprecated: the vendored react-icon-browser build - -Deprecated on 2026-11-12 (react consolidation 3e). Removing this directory needs the owner's yes, -recorded in the react consolidation audit (`deprecations.md`). - -This is `@ichava/react-icon-browser`'s library build, vendored from that repository at the commit -`vendored.json` names. The browser's source lives in this repository now, in `resources/js/`, and -`npm run build:prod` builds the committed bundle from it. Nothing imports this directory, and -`npm run sync:react-icon-browser` no longer refreshes it. - -One file is still read at run time: `prepaint.html`, which the -`` component (`src/View/Components/Prepaint.php`) inlines. -`npm run build:prepaint` writes it from `resources/js/boot/prepaint.html`, and -`resources/js/core/prepaint.test.ts` fails while the two differ. Never edit the other files; -`resources/js/core/vendoredLibrary.test.ts` still checks them against `vendored.json`. diff --git a/resources/vendor/react-icon-browser/DevToolsPanel-CbR2FqMo.js b/resources/vendor/react-icon-browser/DevToolsPanel-CbR2FqMo.js deleted file mode 100644 index 6f835b2..0000000 --- a/resources/vendor/react-icon-browser/DevToolsPanel-CbR2FqMo.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{K as e,Lt as t,Ot as n,Q as r,St as i,Y as a,b as o,bt as s,ct as c,ot as l,q as u,st as d,v as f,x as p,xt as m,y as h}from"./chromeIcons-ITgd2uHk.js";import{f as g,n as _,t as v}from"./index.js";import{t as y}from"./Glyph-ifDznOhl.js";import{useEffect as b,useMemo as x,useRef as S,useState as C}from"react";import{Fragment as w,jsx as T,jsxs as E}from"react/jsx-runtime";function D(){return a(u())??n}var O=[{id:`events`,label:`Events`},{id:`state`,label:`State`},{id:`storage`,label:`Storage`},{id:`tests`,label:`Tests`},{id:`logs`,label:`Logs`},{id:`boot`,label:`Boot`},{id:`status`,label:`Status`}],k=[{id:`bottom`,label:`Dock to bottom`,Icon:f},{id:`right`,label:`Dock to right`,Icon:o},{id:`left`,label:`Dock to left`,Icon:h},{id:`top`,label:`Dock to top`,Icon:p}];function A(e){if(typeof window>`u`)return r.max;let t=e===`left`||e===`right`?window.innerWidth:window.innerHeight;return Math.max(r.min,Math.min(r.max,Math.floor(t*.85)))}var j={bottom:e=>({left:0,right:0,bottom:0,height:e,borderTop:`1px solid var(--border)`,boxShadow:`0 -8px 24px -12px rgba(0,0,0,.3)`}),top:e=>({left:0,right:0,top:0,height:e,borderBottom:`1px solid var(--border)`,boxShadow:`0 8px 24px -12px rgba(0,0,0,.3)`}),left:e=>({top:0,bottom:0,left:0,width:e,borderRight:`1px solid var(--border)`,boxShadow:`8px 0 24px -12px rgba(0,0,0,.3)`}),right:e=>({top:0,bottom:0,right:0,width:e,borderLeft:`1px solid var(--border)`,boxShadow:`-8px 0 24px -12px rgba(0,0,0,.3)`})};function M(){let t=u(),n=e(e=>e.devtools.tab),i=e(e=>e.setDevToolsTab),a=e(e=>{let t=e.config?.host;return!t||!c(t,`status`)?null:l(t,`status`)??d(t,`status`,`status`)}),o=e(e=>e.toggleDevtools),{dock:s,size:f}=e(e=>e.devtoolsLayout),p=e(e=>e.setDevtoolsDock),m=e(e=>e.setDevtoolsSize),h=D();b(()=>h.on(e=>t.getState().pushDevEvent(e)),[h,t]);let[,g]=C(0);b(()=>{let e=()=>g(e=>e+1);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let _=A(s),v=Math.min(f,_),x=s===`top`||s===`bottom`,S=e=>{e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId);let n=e=>s===`bottom`?window.innerHeight-e.clientY:s===`top`?e.clientY:s===`left`?e.clientX:window.innerWidth-e.clientX,r=e=>m(Math.min(A(s),n(e))),i=e=>{t.releasePointerCapture(e.pointerId),t.removeEventListener(`pointermove`,r),t.removeEventListener(`pointerup`,i)};t.addEventListener(`pointermove`,r),t.addEventListener(`pointerup`,i)},w=e=>{let t={bottom:`ArrowUp`,top:`ArrowDown`,left:`ArrowRight`,right:`ArrowLeft`}[s],n={bottom:`ArrowDown`,top:`ArrowUp`,left:`ArrowLeft`,right:`ArrowRight`}[s],i=e.shiftKey?64:16,a=null;e.key===t?a=v+i:e.key===n?a=v-i:e.key===`Home`?a=r.min:e.key===`End`&&(a=_),a!==null&&(e.preventDefault(),m(Math.min(_,a)))},M=s===`bottom`?{top:-3,left:0,right:0,height:6,cursor:`ns-resize`}:s===`top`?{bottom:-3,left:0,right:0,height:6,cursor:`ns-resize`}:s===`left`?{right:-3,top:0,bottom:0,width:6,cursor:`ew-resize`}:{left:-3,top:0,bottom:0,width:6,cursor:`ew-resize`};return/* @__PURE__ */ E(`div`,{role:`region`,"aria-label":`Ichava DevTools`,"data-dock":s,className:`fixed z-55 bg-[var(--pop)] flex flex-col text-[12px]`,style:j[s](v),children:[/* @__PURE__ */ T(`div`,{role:`separator`,"aria-orientation":x?`horizontal`:`vertical`,"aria-label":`Resize DevTools`,"aria-valuemin":r.min,"aria-valuemax":_,"aria-valuenow":v,tabIndex:0,onPointerDown:S,onKeyDown:w,className:`absolute z-1 touch-none outline-focus-ring hover:bg-[var(--accent-soft)] focus-visible:bg-[var(--accent-soft)]`,style:M}),/* @__PURE__ */ E(`div`,{className:`flex flex-wrap items-center gap-1 min-h-[34px] py-1 px-2.5 border-b border-b-[var(--border)] flex-none`,children:[/* @__PURE__ */ T(y,{name:`zap`,size:13,color:`var(--accent-text)`}),/* @__PURE__ */ T(`span`,{className:`text-[12px] font-[600] mr-1.5`,children:`Ichava DevTools`}),O.filter(e=>e.id!==`status`||a).map(e=>/* @__PURE__ */ T(`button`,{onClick:()=>i(e.id),style:{height:24,padding:`0 9px`,border:`none`,backgroundColor:n===e.id?`var(--muted)`:`transparent`,color:n===e.id?`var(--fg)`:`var(--muted-fg)`,borderRadius:5,fontSize:11.5,fontWeight:n===e.id?600:500,cursor:`pointer`},children:e.label},e.id)),/* @__PURE__ */ T(`span`,{className:`flex-1`}),x&&/* @__PURE__ */ T(`span`,{className:`font-[family-name:'Geist_Mono',monospace] text-[10px] text-[var(--faint-fg)]`,children:`window.dispatchEvent → ichava:*`}),/* @__PURE__ */ T(`div`,{role:`radiogroup`,"aria-label":`DevTools position`,className:`ml-2 flex items-center gap-0.5 rounded-[6px] border border-[var(--border)] p-0.5`,children:k.map(({id:e,label:t,Icon:n})=>/* @__PURE__ */ T(`button`,{role:`radio`,"aria-checked":s===e,"aria-label":t,title:t,onClick:()=>p(e),className:`flex h-5 w-5 items-center justify-center rounded-[4px] border-0 cursor-pointer ${s===e?`bg-[var(--muted)] text-[var(--fg)]`:`bg-transparent text-[var(--muted-fg)]`}`,children:/* @__PURE__ */ T(n,{"aria-hidden":`true`,className:`size-3.5`})},e))}),/* @__PURE__ */ T(`button`,{onClick:o,title:`Close — ⇧⌘D / Esc`,className:`ml-2 w-6 h-6 border border-[var(--border)] bg-[var(--bg)] rounded-[5px] cursor-pointer flex items-center justify-center text-[var(--muted-fg)]`,children:/* @__PURE__ */ T(y,{name:`close`,size:11,color:`currentColor`})})]}),/* @__PURE__ */ E(`div`,{className:`flex-1 overflow-auto p-3 font-[family-name:'Geist_Mono',monospace]`,children:[n===`events`&&/* @__PURE__ */ T(P,{}),n===`state`&&/* @__PURE__ */ T(F,{}),n===`storage`&&/* @__PURE__ */ T(I,{}),n===`tests`&&/* @__PURE__ */ T(L,{}),n===`logs`&&/* @__PURE__ */ T(R,{}),n===`boot`&&/* @__PURE__ */ T(z,{}),n===`status`&&a&&/* @__PURE__ */ T(W,{url:a})]})]})}function N(e){try{return new Date(e).toLocaleTimeString()}catch{return String(e)}}function P(){let t=e(e=>e.devtools.events),n=e(e=>e.devtools.capturing),r=e(e=>e.setCapturing),i=e(e=>e.clearDevEvents);return/* @__PURE__ */ E(w,{children:[/* @__PURE__ */ E(B,{children:[/* @__PURE__ */ E(V,{onClick:()=>r(!n),children:[n?`Pause`:`Resume`,` capture`]}),/* @__PURE__ */ T(V,{onClick:i,children:`Clear log`}),/* @__PURE__ */ E(`span`,{className:`text-[var(--faint-fg)]`,children:[t.length,` events`]})]}),t.length===0?/* @__PURE__ */ T(U,{children:`No events yet — interact with the app (sign in, share, toggle theme…).`}):t.map((e,t)=>/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:N(e.ts)}),/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:e.source??`page`}),/* @__PURE__ */ T(`span`,{className:`text-[var(--accent-text)] font-semibold`,children:e.label}),e.payload!=null&&/* @__PURE__ */ T(`span`,{className:`text-[var(--muted-fg)]`,children:JSON.stringify(e.payload)})]},t))]})}function F(){let t=e(e=>e),n={theme:t.theme,view:t.view,accent:t.accent,size:t.size,sizeUnit:t.sizeUnit,gridStroke:t.gridStroke,color:t.color,treatment:t.treatment,filters:t.filters,auth:{status:t.auth.status,plan:t.auth.user?.plan??null},favorites:t.favorites.length,collections:t.collections.length,storageDriver:t.storageDriver,consent:t.consent};return/* @__PURE__ */ T(`pre`,{className:`m-0 whitespace-pre-wrap text-[var(--fg)] text-[11.5px] leading-[1.55]`,children:JSON.stringify(n,null,2)})}function I(){let t=u(),n=g(),r=e(e=>e.storageDriver),a=e(e=>e.setStorageDriver),o=e(e=>e.factoryReset),c=e(e=>e.openConfirm);return/* @__PURE__ */ E(w,{children:[/* @__PURE__ */ T(`div`,{className:`font-[600] mb-1.5`,children:`Frontend storage driver`}),/* @__PURE__ */ T(`div`,{className:`inline-flex gap-0.5 border border-[var(--border)] rounded-[6px] p-0.5 mb-2.5`,children:[`local`,`session`].map(e=>/* @__PURE__ */ T(`button`,{onClick:()=>a(e),style:{height:24,padding:`0 12px`,border:`none`,borderRadius:4,backgroundColor:r===e?`var(--accent-soft)`:`transparent`,color:r===e?`var(--color-text-brand-secondary)`:`var(--muted-fg)`,fontSize:11.5,fontWeight:600,cursor:`pointer`},children:e===`local`?`localStorage`:`sessionStorage`},e))}),/* @__PURE__ */ E(`div`,{className:`text-[11px] text-[var(--muted-fg)] leading-[1.5] mb-2.5 font-[family-name:'Geist',system-ui]`,children:[`State key `,/* @__PURE__ */ T(`b`,{children:s}),` — appearance, filters, view, favorites, collections, auth, notifications, consent. Active driver: `,/* @__PURE__ */ T(`b`,{children:i()}),`.`]}),/* @__PURE__ */ E(B,{children:[/* @__PURE__ */ T(V,{onClick:()=>n(JSON.stringify(t.getState(),(e,t)=>e===`catalog`||e===`filtersData`?void 0:t),`State JSON copied`),children:`Copy state JSON`}),/* @__PURE__ */ T(V,{onClick:()=>c({title:`Reset stored state?`,body:`Clears the persisted snapshot from the active storage driver and restores factory defaults.`,confirmLabel:`Reset state`,danger:!0,onConfirm:()=>{m(),o()}}),children:`Reset stored state…`})]})]})}function L(){let t=u(),n=e(e=>e.catalog),r=e(e=>e.config),[i,a]=C(null),o=i?.filter(e=>e.pass).length??0,s=i?.length??0;return/* @__PURE__ */ E(w,{children:[/* @__PURE__ */ E(B,{children:[/* @__PURE__ */ T(V,{onClick:()=>a(v(n,r,t)),primary:!0,children:`Run full regression`}),i&&/* @__PURE__ */ E(`span`,{style:{color:o===s?`var(--success)`:`var(--danger)`,fontWeight:600},children:[o,` passed · `,s-o,` failed`]}),/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)] font-[family-name:'Geist',system-ui]`,children:`Covers catalog, pagination, snippets, treatments, config, store invariants`})]}),i?.map((e,t)=>/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(y,{name:e.pass?`check`:`close`,size:12,color:e.pass?`var(--success)`:`var(--danger)`}),/* @__PURE__ */ T(`span`,{className:`text-[var(--fg)]`,children:e.name}),e.detail&&!e.pass&&/* @__PURE__ */ T(`span`,{className:`text-[var(--danger)]`,children:e.detail})]},t))]})}function R(){let e=_(),[t,n]=C(0),r=S(`all`);b(()=>e.subscribe(()=>n(e=>e+1)),[e]);let i=x(()=>e.buffer(),[e,t]),a=g();return/* @__PURE__ */ E(w,{children:[/* @__PURE__ */ E(B,{children:[/* @__PURE__ */ T(V,{onClick:()=>{e.clear(),n(e=>e+1)},children:`Clear`}),/* @__PURE__ */ T(V,{onClick:()=>a(JSON.stringify(i,null,2),`Logs copied`),children:`Export JSON`}),/* @__PURE__ */ E(`span`,{className:`text-[var(--faint-fg)]`,children:[i.length,` entries · level `,e.getLevel()]})]}),i.length===0?/* @__PURE__ */ T(U,{children:`No log entries.`}):i.slice().reverse().map((e,t)=>/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:N(e.ts)}),/* @__PURE__ */ T(`span`,{style:{color:e.level===`error`?`var(--danger)`:e.level===`warn`?`var(--warning)`:`var(--muted-fg)`,fontWeight:600,minWidth:40},children:e.level}),/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:e.source??`page`}),/* @__PURE__ */ T(`span`,{className:`text-[var(--accent-text)]`,children:e.channel}),/* @__PURE__ */ T(`span`,{className:`text-[var(--fg)]`,children:e.message})]},t)),/* @__PURE__ */ T(`button`,{hidden:!0,onClick:()=>r.current=`all`})]})}function z(){let t=e(e=>e.boot),n=()=>{window.ichavaBoot?.retry()},r=e=>{window.ichavaBoot?.[e](!0)};return/* @__PURE__ */ E(w,{children:[/* @__PURE__ */ E(B,{children:[/* @__PURE__ */ T(V,{onClick:n,children:`Replay boot`}),/* @__PURE__ */ T(V,{onClick:()=>r(`simSlow`),children:`Sim slow`}),/* @__PURE__ */ T(V,{onClick:()=>r(`simOffline`),children:`Sim offline`})]}),/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:`phase`}),/* @__PURE__ */ T(`span`,{className:`text-[var(--accent-text)] font-semibold`,children:t.phase})]}),/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:`progress`}),/* @__PURE__ */ E(`span`,{className:`text-[var(--fg)]`,children:[t.progress,`%`]})]}),/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:`label`}),/* @__PURE__ */ T(`span`,{className:`text-[var(--fg)]`,children:t.label||`—`})]}),/* @__PURE__ */ E(H,{children:[/* @__PURE__ */ T(`span`,{className:`text-[var(--faint-fg)]`,children:`done`}),/* @__PURE__ */ T(`span`,{className:`text-[var(--fg)]`,children:String(t.done)})]})]})}function B({children:e}){return/* @__PURE__ */ T(`div`,{className:`flex items-center gap-2 mb-2.5`,children:e})}function V({children:e,onClick:t,primary:n}){return/* @__PURE__ */ T(`button`,{onClick:t,style:{height:26,padding:`0 10px`,border:n?`none`:`1px solid var(--border)`,borderRadius:5,backgroundColor:n?`var(--accent)`:`var(--bg)`,color:n?`var(--accent-fg)`:`var(--fg)`,fontSize:11.5,fontWeight:600,cursor:`pointer`,fontFamily:`'Geist',system-ui`},children:e})}function H({children:e}){return/* @__PURE__ */ T(`div`,{className:`flex items-center gap-2 py-0.5 px-0 text-[11.5px]`,children:e})}function U({children:e}){return/* @__PURE__ */ T(`div`,{className:`text-[var(--faint-fg)] font-[family-name:'Geist',system-ui] py-2 px-0`,children:e})}function W({url:e}){let[n,r]=C(null),[i,a]=C(null),[o,s]=C(0);if(b(()=>{let n=!0;return t().request(e,{baseUrl:``}).then(e=>{n&&(r(e.data),a(null))}).catch(e=>{n&&a(String(e))}),()=>{n=!1}},[e,o]),i)return/* @__PURE__ */ E(`div`,{className:`text-[var(--danger)] text-[11.5px]`,children:[`Status unavailable: `,i]});if(!n)return/* @__PURE__ */ T(`div`,{className:`text-[var(--muted-fg)] text-[11.5px]`,children:`Loading status…`});let c=[[`Packs registered`,String(n.registry.packages)],[`Conflicts`,String(n.registry.conflicts.length)],[`Orphaned packs`,String(n.orphans.length)],[`Watcher last scan`,n.watcher.lastScan??`never`],[`Render optimisation`,n.render.optimizationLevel]];return/* @__PURE__ */ E(`div`,{className:`flex flex-col gap-2`,children:[/* @__PURE__ */ T(`dl`,{className:`grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1 m-0 text-[11.5px]`,children:c.map(([e,t])=>/* @__PURE__ */ E(`div`,{className:`contents`,children:[/* @__PURE__ */ T(`dt`,{className:`text-[var(--muted-fg)]`,children:e}),/* @__PURE__ */ T(`dd`,{className:`m-0 font-[family-name:'Geist_Mono',monospace]`,children:t})]},e))}),/* @__PURE__ */ T(`div`,{children:/* @__PURE__ */ T(V,{onClick:()=>s(e=>e+1),children:`Refresh`})}),/* @__PURE__ */ T(`pre`,{className:`m-0 whitespace-pre-wrap text-[var(--fg)] text-[11px] leading-[1.5]`,children:JSON.stringify(n,null,2)})]})}export{M as DevToolsPanel}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/Glyph-ifDznOhl.js b/resources/vendor/react-icon-browser/Glyph-ifDznOhl.js deleted file mode 100644 index ff80d35..0000000 --- a/resources/vendor/react-icon-browser/Glyph-ifDznOhl.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{B as e,F as t,H as n,I as r,L as i,M as a,N as o,P as s,R as c,U as l,V as u,W as d,j as f,z as p}from"./chromeIcons-ITgd2uHk.js";import{jsx as m}from"react/jsx-runtime";function h(e){return e?/^(https?:)?\//.test(e)?e:`${`/`.replace(/\/$/,``)}/${e.replace(/^\//,``)}`:``}function g(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}var _=class{url(e){return e.svgUrl?h(e.svgUrl):e.svgContent?g(e.svgContent):``}resolve(e,t){let n=this.url(e);return e.ownColor?{kind:`image`,url:n}:{kind:`mask`,url:n,color:t??`currentColor`}}toStyle(e,t){let n={width:`${t}px`,height:`${t}px`};return e.kind===`image`?{...n,backgroundImage:`url("${e.url}")`,backgroundSize:`contain`,backgroundRepeat:`no-repeat`,backgroundPosition:`center`}:{...n,backgroundColor:e.color,maskImage:`url("${e.url}")`,maskSize:`contain`,maskRepeat:`no-repeat`,maskPosition:`center`,WebkitMaskImage:`url("${e.url}")`,WebkitMaskSize:`contain`,WebkitMaskRepeat:`no-repeat`,WebkitMaskPosition:`center`}}},v=new _,y=d(`outline`,`adjustments-horizontal`,`AdjustmentsHorizontal`,[[`path`,{d:`M12 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0`,key:`svg-0`}],[`path`,{d:`M4 6l8 0`,key:`svg-1`}],[`path`,{d:`M16 6l4 0`,key:`svg-2`}],[`path`,{d:`M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0`,key:`svg-3`}],[`path`,{d:`M4 12l2 0`,key:`svg-4`}],[`path`,{d:`M10 12l10 0`,key:`svg-5`}],[`path`,{d:`M15 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0`,key:`svg-6`}],[`path`,{d:`M4 18l11 0`,key:`svg-7`}],[`path`,{d:`M19 18l1 0`,key:`svg-8`}]]),b=d(`outline`,`alert-circle`,`AlertCircle`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0`,key:`svg-0`}],[`path`,{d:`M12 8v4`,key:`svg-1`}],[`path`,{d:`M12 16h.01`,key:`svg-2`}]]),x=d(`outline`,`bolt`,`Bolt`,[[`path`,{d:`M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11`,key:`svg-0`}]]),S=d(`outline`,`chart-bar`,`ChartBar`,[[`path`,{d:`M3 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -6`,key:`svg-0`}],[`path`,{d:`M15 9a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -10`,key:`svg-1`}],[`path`,{d:`M9 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -14`,key:`svg-2`}],[`path`,{d:`M4 20h14`,key:`svg-3`}]]),C=d(`outline`,`chevron-left`,`ChevronLeft`,[[`path`,{d:`M15 6l-6 6l6 6`,key:`svg-0`}]]),w=d(`outline`,`chevron-up`,`ChevronUp`,[[`path`,{d:`M6 15l6 -6l6 6`,key:`svg-0`}]]),T=d(`outline`,`clock`,`Clock`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0`,key:`svg-0`}],[`path`,{d:`M12 7v5l3 3`,key:`svg-1`}]]),E=d(`outline`,`command`,`Command`,[[`path`,{d:`M7 9a2 2 0 1 1 2 -2v10a2 2 0 1 1 -2 -2h10a2 2 0 1 1 -2 2v-10a2 2 0 1 1 2 2h-10`,key:`svg-0`}]]),D=d(`outline`,`copy`,`Copy`,[[`path`,{d:`M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666`,key:`svg-0`}],[`path`,{d:`M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1`,key:`svg-1`}]]),O=d(`outline`,`cube`,`Cube`,[[`path`,{d:`M21 16.008v-8.018a1.98 1.98 0 0 0 -1 -1.717l-7 -4.008a2.016 2.016 0 0 0 -2 0l-7 4.008c-.619 .355 -1 1.01 -1 1.718v8.018c0 .709 .381 1.363 1 1.717l7 4.008a2.016 2.016 0 0 0 2 0l7 -4.008c.619 -.355 1 -1.01 1 -1.718`,key:`svg-0`}],[`path`,{d:`M12 22v-10`,key:`svg-1`}],[`path`,{d:`M12 12l8.73 -5.04`,key:`svg-2`}],[`path`,{d:`M3.27 6.96l8.73 5.04`,key:`svg-3`}]]),k=d(`outline`,`download`,`Download`,[[`path`,{d:`M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2`,key:`svg-0`}],[`path`,{d:`M7 11l5 5l5 -5`,key:`svg-1`}],[`path`,{d:`M12 4l0 12`,key:`svg-2`}]]),A=d(`outline`,`heart`,`Heart`,[[`path`,{d:`M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572`,key:`svg-0`}]]),j=d(`outline`,`layout-grid`,`LayoutGrid`,[[`path`,{d:`M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-0`}],[`path`,{d:`M14 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-1`}],[`path`,{d:`M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-2`}],[`path`,{d:`M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4`,key:`svg-3`}]]),M=d(`outline`,`link`,`Link`,[[`path`,{d:`M9 15l6 -6`,key:`svg-0`}],[`path`,{d:`M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464`,key:`svg-1`}],[`path`,{d:`M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463`,key:`svg-2`}]]),N=d(`outline`,`list`,`List`,[[`path`,{d:`M9 6l11 0`,key:`svg-0`}],[`path`,{d:`M9 12l11 0`,key:`svg-1`}],[`path`,{d:`M9 18l11 0`,key:`svg-2`}],[`path`,{d:`M5 6l0 .01`,key:`svg-3`}],[`path`,{d:`M5 12l0 .01`,key:`svg-4`}],[`path`,{d:`M5 18l0 .01`,key:`svg-5`}]]),P=d(`outline`,`maximize`,`Maximize`,[[`path`,{d:`M4 8v-2a2 2 0 0 1 2 -2h2`,key:`svg-0`}],[`path`,{d:`M4 16v2a2 2 0 0 0 2 2h2`,key:`svg-1`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v2`,key:`svg-2`}],[`path`,{d:`M16 20h2a2 2 0 0 0 2 -2v-2`,key:`svg-3`}]]),F=d(`outline`,`minimize`,`Minimize`,[[`path`,{d:`M15 19v-2a2 2 0 0 1 2 -2h2`,key:`svg-0`}],[`path`,{d:`M15 5v2a2 2 0 0 0 2 2h2`,key:`svg-1`}],[`path`,{d:`M5 15h2a2 2 0 0 1 2 2v2`,key:`svg-2`}],[`path`,{d:`M5 9h2a2 2 0 0 0 2 -2v-2`,key:`svg-3`}]]),I=d(`outline`,`moon`,`Moon`,[[`path`,{d:`M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008`,key:`svg-0`}]]),L=d(`outline`,`palette`,`Palette`,[[`path`,{d:`M12 21a9 9 0 0 1 0 -18c4.97 0 9 3.582 9 8c0 1.06 -.474 2.078 -1.318 2.828c-.844 .75 -1.989 1.172 -3.182 1.172h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25`,key:`svg-0`}],[`path`,{d:`M7.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M11.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}],[`path`,{d:`M15.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-3`}]]),R=d(`outline`,`player-pause`,`PlayerPause`,[[`path`,{d:`M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12`,key:`svg-0`}],[`path`,{d:`M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12`,key:`svg-1`}]]),z=d(`outline`,`player-play`,`PlayerPlay`,[[`path`,{d:`M7 4v16l13 -8l-13 -8`,key:`svg-0`}]]),B=d(`outline`,`plus`,`Plus`,[[`path`,{d:`M12 5l0 14`,key:`svg-0`}],[`path`,{d:`M5 12l14 0`,key:`svg-1`}]]),V=d(`outline`,`refresh`,`Refresh`,[[`path`,{d:`M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4`,key:`svg-0`}],[`path`,{d:`M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4`,key:`svg-1`}]]),H=d(`outline`,`stack-2`,`Stack2`,[[`path`,{d:`M12 4l-8 4l8 4l8 -4l-8 -4`,key:`svg-0`}],[`path`,{d:`M4 12l8 4l8 -4`,key:`svg-1`}],[`path`,{d:`M4 16l8 4l8 -4`,key:`svg-2`}]]),U=d(`outline`,`sun`,`Sun`,[[`path`,{d:`M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0`,key:`svg-0`}],[`path`,{d:`M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7`,key:`svg-1`}]]),W=d(`outline`,`trash`,`Trash`,[[`path`,{d:`M4 7l16 0`,key:`svg-0`}],[`path`,{d:`M10 11l0 6`,key:`svg-1`}],[`path`,{d:`M14 11l0 6`,key:`svg-2`}],[`path`,{d:`M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12`,key:`svg-3`}],[`path`,{d:`M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3`,key:`svg-4`}]]),G=d(`outline`,`typography`,`Typography`,[[`path`,{d:`M4 20l3 0`,key:`svg-0`}],[`path`,{d:`M14 20l7 0`,key:`svg-1`}],[`path`,{d:`M6.9 15l6.9 0`,key:`svg-2`}],[`path`,{d:`M10.2 6.3l5.8 13.7`,key:`svg-3`}],[`path`,{d:`M5 20l6 -16l2 0l7 16`,key:`svg-4`}]]),K=d(`outline`,`world`,`World`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0`,key:`svg-0`}],[`path`,{d:`M3.6 9h16.8`,key:`svg-1`}],[`path`,{d:`M3.6 15h16.8`,key:`svg-2`}],[`path`,{d:`M11.5 3a17 17 0 0 0 0 18`,key:`svg-3`}],[`path`,{d:`M12.5 3a17 17 0 0 1 0 18`,key:`svg-4`}]]),q=d(`filled`,`bell-filled`,`BellFilled`,[[`path`,{d:`M14.235 19c.865 0 1.322 1.024 .745 1.668a3.992 3.992 0 0 1 -2.98 1.332a3.992 3.992 0 0 1 -2.98 -1.332c-.552 -.616 -.158 -1.579 .634 -1.661l.11 -.006h4.471z`,key:`svg-0`}],[`path`,{d:`M12 2c1.358 0 2.506 .903 2.875 2.141l.046 .171l.008 .043a8.013 8.013 0 0 1 4.024 6.069l.028 .287l.019 .289v2.931l.021 .136a3 3 0 0 0 1.143 1.847l.167 .117l.162 .099c.86 .487 .56 1.766 -.377 1.864l-.116 .006h-16c-1.028 0 -1.387 -1.364 -.493 -1.87a3 3 0 0 0 1.472 -2.063l.021 -.143l.001 -2.97a8 8 0 0 1 3.821 -6.454l.248 -.146l.01 -.043a3.003 3.003 0 0 1 2.562 -2.29l.182 -.017l.176 -.004z`,key:`svg-1`}]]),J=d(`filled`,`heart-filled`,`HeartFilled`,[[`path`,{d:`M6.979 3.074a6 6 0 0 1 4.988 1.425l.037 .033l.034 -.03a6 6 0 0 1 4.733 -1.44l.246 .036a6 6 0 0 1 3.364 10.008l-.18 .185l-.048 .041l-7.45 7.379a1 1 0 0 1 -1.313 .082l-.094 -.082l-7.493 -7.422a6 6 0 0 1 3.176 -10.215z`,key:`svg-0`}]]),Y={"alert-circle":b,"bell-filled":q,check:u,"chevron-down":e,"chevron-left":C,"chevron-right":p,"chevron-up":w,clock:T,close:f,command:E,copy:D,cube:O,download:k,eye:c,folder:i,globe:K,grid:j,heart:A,"heart-filled":J,info:r,layers:H,link:M,list:N,minimize:F,moon:I,package:t,palette:L,pause:R,play:z,plus:B,refresh:V,resize:P,search:s,settings:o,sliders:y,"sort-asc":n,"sort-desc":l,sparkles:a,stats:S,sun:U,text:G,trash:W,zap:x},X=/* @__PURE__ */ new Set;function Z({name:e,size:t=14,color:n,style:r,className:i}){let a=Y[e];return a?/* @__PURE__ */ m(a,{"aria-hidden":!0,size:t,stroke:1.75,color:n??`currentColor`,...X.has(e)?{fill:`currentColor`}:null,className:i,style:{flex:`none`,...r}}):/* @__PURE__ */ m(`span`,{"aria-hidden":!0,style:{display:`inline-block`,width:t,height:t,flex:`none`,...r}})}export{g as a,v as i,_ as n,h as r,Z as t}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/IconAsset-BVRD6Pac.js b/resources/vendor/react-icon-browser/IconAsset-BVRD6Pac.js deleted file mode 100644 index 290f0df..0000000 --- a/resources/vendor/react-icon-browser/IconAsset-BVRD6Pac.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{n as e,r as t,s as n,t as r}from"./TreatmentEngine-B0FTr-Fl.js";import{K as i,Lt as a,Rt as o,X as s,ht as c,q as l,yt as u}from"./chromeIcons-ITgd2uHk.js";import{i as d}from"./Glyph-ifDznOhl.js";import{createContext as f,useContext as p,useEffect as m,useMemo as h,useRef as g,useState as _}from"react";import{Fragment as v,jsx as y}from"react/jsx-runtime";function b(e){return e?/(?:fill|stroke|stop-color)\s*=\s*"(?!(?:none|currentColor|transparent)\b)#?[0-9a-zA-Z(),.%\s]+"/.test(e):!1}function x(e){return{id:e.id,package:e.package,name:e.name,category:e.category,sub:e.sub,variant:e.variant??`outline`,kind:e.kind??`icon`,svgContent:e.svg_content??null,svgUrl:e.svg_url??null,viewBox:e.viewbox??`0 0 24 24`,bladeClean:e.blade_clean??``,bladeGeneric:e.blade_generic??``,helper:e.helper??``,...e.icon_path||e.path?{path:e.icon_path||e.path}:{},...e.snippets?{snippets:e.snippets}:{},tags:e.tags??[],keywords:e.keywords??[],ownColor:b(e.svg_content)}}var S=Symbol(`ichava.themeVariants`),C=e=>typeof e==`string`&&e!==``?e:null;function w(e,t){let n=t.theme_variants;if(!n||typeof n!=`object`||Array.isArray(n))return e;let r={};for(let[e,t]of Object.entries(n)){if(!t||typeof t!=`object`)continue;let n=C(t.svg_url),i=C(t.svg_content);(n||i)&&(r[e]={svgUrl:n,svgContent:i})}return Object.keys(r).length?Object.assign({},e,{[S]:r}):e}function T(e){return e[S]}var E=/* @__PURE__ */ new WeakMap;function D(e,t){let n=T(e)?.[t];if(!n)return e;let r=E.get(e);r||E.set(e,r=/* @__PURE__ */ new Map);let i=r.get(t);return i||(i={...e,svgUrl:n.svgUrl,svgContent:n.svgContent},r.set(t,i)),i}function O(e,t,n){return e.total>0?null:n===0?`no_icons`:t.search?.trim()||t.categories?.length||t.subs?.length||t.variants?.length||t.tags?.length||t.keywords?.length||t.kind||t.packages?.length?`no_match`:`no_icons`}var k=class{repo;#e;constructor(e){this.#e=e,this.repo=new n(e)}async listIcons(e){let t=this.repo.page(e);return{...t,emptyReason:O(t,e,this.#e.icons.length)}}async getIcon(e){return this.repo.byId(e)??null}async getSvg(e,t){return e.svgContent?e.svgContent:e.svgUrl?a().request(e.svgUrl,{raw:!0,baseUrl:``,signal:t}):``}async getFilters(){return this.repo.filters()}async getStatistics(){return this.#e.meta}async getTree(){return this.repo.categoryTree({search:``,packages:[],categories:[],variants:[],page:1,perPage:0,sortBy:`name`,sortDirection:`asc`})}async getRelated(e,t=6){return this.repo.related(e,t)}async getVariantCounts(e){return this.repo.variantCounts(e)}async getKindCounts(e){return this.repo.kindCounts(e)}},A=class e{#e;#t=null;#n=null;constructor(e=a().config.baseUrl){this.#e=e}static at(t){return new e(t).withTransport(a().with({baseUrl:t}))}get transport(){return this.#t??a()}static fromApi(t){let n=t.base??a().config.baseUrl;return e.at(n).withEndpoints(t.endpoints)}get endpoints(){return this.#n}withTransport(t){let n=new e(this.#e);return n.#t=t,n.#n=this.#n,n}withEndpoints(e){let t=this.withTransport(this.transport);return t.#t=this.#t,t.#n=Array.isArray(e)?{}:{...e},t}csrf(e){return this.withTransport(this.transport.with({csrf:{strategy:e}}))}timeout(e){return this.withTransport(this.transport.with({timeoutMs:e}))}credentials(e){return this.withTransport(this.transport.with({credentials:e}))}#r(e,t={}){return this.transport.request(e,{...t,baseUrl:this.#e})}#i(e,t,n,r={},i={}){let a=this.#n?.[e];return a?this.transport.request(`${o(a,i)}${n}`,{...r,baseUrl:``}):this.#r(`${t}${n}`,r)}async listIcons(e,t){return I(await this.#i(`icons.list`,`/icons`,z(R(e)),{signal:t}),e)}async getIcon(e,t){let n=await this.#i(`icons.show`,`/icons/${e}`,``,{signal:t},{iconId:e});return n?.data?w(x(n.data),n.data):null}async getSvg(e,t){return this.#i(`icons.svg`,`/icons/${e.id}/svg`,``,{raw:!0,signal:t},{iconId:e.id})}async getFilters(e){let t=await this.#i(`icons.filters`,`/icons/filters`,``,{signal:e}),n=t.data??t;return{packages:(n.packages??[]).map(j),categories:n.categories??[],variants:n.variants??[]}}async getStatistics(e){let t=await this.#i(`icons.statistics`,`/icons/statistics`,``,{signal:e});return t.data??t}async getTree(e){return this.#a(``,e)}async getTreeFor(e,t){return this.#a(z(R(N(e))),t)}async#a(e,t){let n=await this.#i(`icons.tree`,`/icons/tree`,e,{signal:t});return(Array.isArray(n)?n:n.data??[]).map(P)}async getCatalogMeta(e){let t=await this.#i(`icons.filters`,`/icons/filters`,``,{signal:e}),n=t.data??t;return{packages:(n.packages??[]).map(j),variantsByPackage:M(n.variants_by_package)}}async getRelated(e,t=6,n){let{items:r}=await this.listIcons({categories:[e.category],page:1,perPage:t+1},n);return r.filter(t=>t.id!==e.id).slice(0,t)}async getVariantCounts(e,t){let n=await this.getFilters(t);return new Map(n.variants.map(e=>[e.name,e.count]))}async getKindCounts(e,t){let{kind:n,page:r,perPage:i,sortBy:a,sortDirection:o,...s}=e,c=await this.#i(`icons.filters`,`/icons/filters`,z(R(s)),{signal:t}),l=c.data?.kinds??c.kinds??[],u={icon:0,illustration:0};for(let e of l)(e.name===`icon`||e.name===`illustration`)&&(u[e.name]=e.count);return u}};function j(e){let t=e,n=String(t.id??t.name??``);return{id:n,label:t.label??n,...t.description?{description:t.description}:{},count:typeof t.count==`number`?t.count:0,installed:t.installed??!0,loaded:t.loaded??!0,...t.kind===`icon`||t.kind===`illustration`?{kind:t.kind}:{},...t.default===!0?{default:!0}:{}}}function M(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))Array.isArray(r)&&(t[n]=r.filter(e=>!!e&&typeof e==`object`&&typeof e.slug==`string`).map(e=>({slug:String(e.slug),label:typeof e.label==`string`&&e.label?e.label:String(e.slug),description:typeof e.description==`string`?e.description:``,default:e.default===!0})));return t}function N(e){let{categories:t,subs:n,page:r,perPage:i,sortBy:a,sortDirection:o,...s}=e;return s}function P(e){let t=(e.children??[]).map(F);return{pack:e.id,label:e.title??e.name,count:t.length,cats:t}}function F(e){let t=(e.children??[]).map(e=>({slug:e.name,name:e.label??e.name,count:e.icon_count}));return{name:e.name,count:e.icon_count,sub:t.length?t:void 0}}function I(e,t){let n=e??{},r=n.data??n,i;i=Array.isArray(r)?r:r&&typeof r==`object`?Object.entries(r).filter(([e])=>e!==`grouped`&&/^\d+$/.test(e)).map(([,e])=>e):[];let a=n.meta??{},o=L(a.per_page,t.perPage??i.length),s=L(a.total,i.length),c=L(a.current_page,t.page??1),l=L(a.last_page,Math.max(1,Math.ceil(s/Math.max(1,o)))),u=L(a.from,s?(c-1)*o+1:0),d=L(a.to,Math.min(c*o,s)),f=a.empty_reason,p=f===`no_match`||f===`no_icons`?f:null;return{items:i.map(e=>w(x(e),e)),total:s,page:c,perPage:o,lastPage:l,rangeStart:u,rangeEnd:d,emptyReason:p}}function L(e,t){Array.isArray(e)&&(e=e[0]);let n=typeof e==`string`?parseInt(e,10):e;return Number.isFinite(n)?n:t}function R(e){return{search:e.search,packages:e.packages,categories:e.categories,subs:e.subs,variants:e.variants,kind:e.kind,tags:e.tags,keywords:e.keywords,language:e.language,page:e.page,per_page:e.perPage,sort_by:e.sortBy,sort_direction:e.sortDirection}}function z(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))r==null||r===``||Array.isArray(r)&&r.length===0||(Array.isArray(r)?r.forEach(e=>t.append(`${n}[]`,String(e))):t.append(n,String(r)));let n=t.toString();return n?`?${n}`:``}function B(e,t){if(e===`rest`)return new A(t.base);if(!t.catalog)throw Error(`StaticCatalog requires a bundled catalog`);return new k(t.catalog)}var V=f(null),H=V.Provider;function U(){return p(V)}var W=300;function G(e){return{items:[],total:0,page:1,perPage:e,lastPage:1,rangeStart:0,rangeEnd:0}}var K={packages:[],variantsByPackage:{}},q=[],J=/* @__PURE__ */ new Map;function Y(e){let{categories:t,subs:n,page:r,perPage:i,sortBy:a,sortDirection:o,...s}=e;return JSON.stringify(s)}function X(e,t,n){let r=n.filter(e=>e.installed).map(e=>e.id);if(!r.length)return null;let i=new Set(n.map(e=>e.id)),a=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),o=a(e,t),s=!e.some(e=>i.has(e));if(!o&&!s)return null;let c=t.filter(e=>i.has(e)),l=c.length?c:r;return a(e,l)?null:l}function Z(e,t,n){let[r,i]=_(()=>G(t.perPage??60)),[a,o]=_(null),[s,c]=_([]),[l,u]=_(/* @__PURE__ */ new Map),[d,f]=_(K),[p,v]=_(!1),[y,b]=_(null),x=g(null),S=g(null);m(()=>{if(!e)return;let n=setTimeout(()=>{x.current?.abort();let n=new AbortController;x.current=n,v(!0),e.listIcons(t,n.signal).then(e=>{n.signal.aborted||(i(e),b(null))}).then(()=>e.getKindCounts?e.getKindCounts(t,n.signal):null).then(e=>{n.signal.aborted||e===void 0||o(e)}).catch(e=>{n.signal.aborted||b(e)}).finally(()=>{n.signal.aborted||v(!1)})},W);return()=>{clearTimeout(n),x.current?.abort()}},[e,JSON.stringify(t)]),m(()=>{if(!e)return;let n=new AbortController;return Promise.all([e.getVariantCounts(t,n.signal),e.getCatalogMeta?e.getCatalogMeta(n.signal):K]).then(([e,t])=>{n.signal.aborted||(u(e),f(t))}).catch(e=>{n.signal.aborted||b(e)}),()=>n.abort()},[e]);let C=!!e?.getTreeFor,w=C?Y(t):``;m(()=>{if(!e)return;let n=new AbortController,r=()=>(e.getTreeFor?e.getTreeFor(t,n.signal):e.getTree(n.signal)).then(e=>{n.signal.aborted||c(e)}).catch(e=>{n.signal.aborted||b(e)}),i=C&&S.current===e;S.current=e;let a=i?setTimeout(r,W):null;return i||r(),()=>{a&&clearTimeout(a),n.abort()}},[e,w]);let T=h(()=>e?ee(s,n):q,[e,s,n]),E=e?d:K;return{page:r,kindCounts:a,tree:T,variantCounts:e?l:J,packages:E.packages,variantsByPackage:E.variantsByPackage,loading:p,error:y}}function ee(e,t){if(!t.trim())return e;let n=t.toLowerCase();return e.map(e=>({...e,cats:e.cats.map(e=>{let t=e.name.toLowerCase().includes(n),r=e.sub?.filter(e=>e.name.toLowerCase().includes(n));return t?e:r&&r.length?{...e,sub:r}:null}).filter(e=>e!==null)})).filter(e=>e.cats.length>0)}var Q=/* @__PURE__ */ new WeakSet,te={};function ne(){let e=i(e=>e.catalog),t=i(e=>e.filters),r=i(e=>e.catQ),a=i(e=>e.setPage),o=i(e=>e.config?.features.searchLanguage?c(e.locale):void 0),d=h(()=>({...s(t),...o?{language:o}:{}}),[t,o]),f=h(()=>e?new n(e):null,[e]),p=h(()=>{if(!f||!e)return{items:[],total:0,page:1,perPage:t.perPage,lastPage:1,rangeStart:0,rangeEnd:0,emptyReason:null};let n=f.page(d);return{...n,emptyReason:O(n,d,e.icons.length)}},[f,e,d,t.perPage]),g=h(()=>f?f.kindCounts(d):null,[f,d]),_=h(()=>{if(!f)return[];let e=f.categoryTree(d);if(!r.trim())return e;let t=r.toLowerCase();return e.map(e=>({...e,cats:e.cats.map(e=>{let n=e.name.toLowerCase().includes(t),r=e.sub?.filter(e=>e.name.toLowerCase().includes(t));return n?e:r&&r.length?{...e,sub:r}:null}).filter(e=>e!==null)})).filter(e=>e.cats.length>0)},[f,d,r]),v=h(()=>f?f.variantCounts(d):/* @__PURE__ */ new Map,[f,d]),y=U(),b=Z(e?null:y,d,r),x=e?p:b.page,S=e?_:b.tree,C=e?v:b.variantCounts,w=e?g:b.kindCounts,T=h(()=>e?e.packages:b.packages,[e,b.packages]),E=e?te:b.variantsByPackage,D=l(),k=i(e=>e.config?.defaults.packages);return m(()=>{if(!T.length||Q.has(D))return;Q.add(D);let e=X(D.getState().filters.packages,k??u.packages,T);e&&D.getState().selectAllPacks(e)},[T,D,k]),m(()=>{x.total>0&&t.page!==x.page&&a(x.page)},[t.page,x.page,x.total,a]),{repo:f,page:x,tree:S,variantCounts:C,kindCounts:w,packages:T,variantsByPackage:E,catalog:e,client:e?null:y,loading:!e&&b.loading,error:e?null:b.error}}function $(e){let n=h(()=>t(e),[e]),[r,i]=_(null);return m(()=>{if(!(n instanceof Promise))return;let t=!0;return n.then(n=>{t&&i({icon:e,parts:n})}),()=>{t=!1}},[n,e]),n instanceof Promise?r?.icon===e?r.parts:null:n}var re=1.5;function ie({icon:t,size:n,color:r,stroke:a,inline:o}){let s=D(t,i(e=>e.theme)),c=s!==t,l=i(e=>e.color),u=i(e=>e.treatment),f=i(e=>e.gridStroke),p=i(e=>e.theme===`dark`&&e.adaptMonochrome)&&!c,m=(r===void 0?l:r)??`currentColor`,h=a??f,g=s.variant===`outline`&&Math.abs(h-re)>.01;if(s.ownColor){let e=s.svgContent||o?/* @__PURE__ */ y(oe,{icon:s,size:n}):/* @__PURE__ */ y(`span`,{"aria-hidden":!0,style:{display:`inline-block`,...d.toStyle(d.resolve(s,null),n)}});return p?/* @__PURE__ */ y(ae,{icon:s,size:n,color:m,fallback:e}):e}if(o||g)return/* @__PURE__ */ y(se,{icon:s,size:n,color:m,stroke:h});let _=d.resolve(s,m).url;return/* @__PURE__ */ y(`span`,{"aria-hidden":!0,style:e(_,n,m,u)})}function ae({icon:e,size:t,color:n,fallback:r}){let i=$(e);return i?.monoBody?/* @__PURE__ */ y(`svg`,{"aria-hidden":!0,"data-ichava-mono":``,width:t,height:t,viewBox:i.viewBox,className:`inline-block`,style:{color:n},dangerouslySetInnerHTML:{__html:i.monoBody}}):/* @__PURE__ */ y(v,{children:r})}function oe({icon:e,size:t}){let n=$(e);return n?/* @__PURE__ */ y(`svg`,{"aria-hidden":!0,"data-ichava-illustration":e.kind===`illustration`?``:void 0,width:t,height:t,viewBox:n.viewBox,className:`inline-block`,dangerouslySetInnerHTML:{__html:n.body}}):/* @__PURE__ */ y(`span`,{"aria-hidden":!0,style:{display:`inline-block`,width:t,height:t}})}function se({icon:e,size:t,color:n,stroke:a}){let o=i(e=>e.treatment),s=$(e);return s?/* @__PURE__ */ y(`svg`,{"aria-hidden":!0,width:t,height:t,viewBox:s.viewBox,fill:`none`,stroke:n,strokeWidth:a,strokeLinecap:`round`,strokeLinejoin:`round`,style:{display:`inline-block`,...r(o)},dangerouslySetInnerHTML:{__html:s.body}}):/* @__PURE__ */ y(`span`,{"aria-hidden":!0,style:{display:`inline-block`,width:t,height:t}})}export{U as a,B as c,x as d,H as i,O as l,$ as n,A as o,ne as r,k as s,ie as t,b as u}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/IconGridList-queHa-WS.js b/resources/vendor/react-icon-browser/IconGridList-queHa-WS.js deleted file mode 100644 index 84992db..0000000 --- a/resources/vendor/react-icon-browser/IconGridList-queHa-WS.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{t as e}from"./Glyph-ifDznOhl.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{Button as r,GridList as i,GridListItem as a}from"react-aria-components";function o({label:o,rows:s,layout:c=`stack`,className:l}){let u=new Map(s.map(e=>[e.key,e]));return/* @__PURE__ */ t(i,{"aria-label":o,layout:c,className:l,onAction:e=>u.get(e)?.onOpen(),children:s.map(i=>/* @__PURE__ */ n(a,{id:i.key,textValue:i.label,"aria-label":i.label,className:`${i.className??``} cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-[var(--accent)]`,children:[i.children,i.remove&&/* @__PURE__ */ t(r,{"aria-label":i.remove.label,onPress:i.remove.onRemove,className:i.remove.className??`absolute top-1 end-1 w-[22px] h-[22px] border border-[var(--border)] bg-[var(--pop)] rounded-[6px] cursor-pointer flex items-center justify-center text-[var(--muted-fg)]`,children:/* @__PURE__ */ t(e,{name:`close`,size:i.remove.glyphSize??11,color:`currentColor`})})]},i.key))})}export{o as t}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/InviteModal-rzJXh-JT.js b/resources/vendor/react-icon-browser/InviteModal-rzJXh-JT.js deleted file mode 100644 index d8cd530..0000000 --- a/resources/vendor/react-icon-browser/InviteModal-rzJXh-JT.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{D as e,T as t,a as n,f as r,i,o as a,u as o,v as s,w as c}from"./index.js";import{A as l,K as u}from"./chromeIcons-ITgd2uHk.js";import{useId as d,useState as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h=[{v:`24h`,k:`invite.exp24h`},{v:`7 days`,k:`invite.exp7d`},{v:`30 days`,k:`invite.exp30d`},{v:`Never`,k:`invite.expNever`}];function g(){let g=u(e=>e.closeInvite),_=u(e=>e.pushNotification),v=u(e=>e.showToast),y=u(e=>{let t=e.config?.user.workspaces??[];return t.find(t=>t.id===e.activeWorkspaceId)??t[0]}),b=r(),x=l(),[S,C]=f(``),[w,T]=f(`editor`),[E,D]=f(`7 days`),O=d(),k=y?.name??x(`invite.workspace`),A=`${location.origin}/ichava/invite/${y?.id??`team`}-${w}-${E.replace(/\s/g,``)}`;return/* @__PURE__ */ m(o,{onClose:g,width:520,label:x(`invite.title`),children:[/* @__PURE__ */ p(a,{title:x(`invite.title`),description:/* @__PURE__ */ p(`span`,{className:`font-mono text-xs`,children:y?.id??k})}),/* @__PURE__ */ m(i,{children:[/* @__PURE__ */ p(e,{size:`md`,type:`email`,value:S,onChange:C,placeholder:x(`invite.emailPlaceholder`),"aria-label":x(`invite.emailPlaceholder`)}),/* @__PURE__ */ m(c,{size:`sm`,"aria-label":x(`invite.role`),selectedKeys:[w],disallowEmptySelection:!0,onSelectionChange:e=>{let t=[...e][0];(t===`editor`||t===`viewer`)&&T(t)},children:[/* @__PURE__ */ p(t,{id:`editor`,children:x(`invite.roleEditor`)}),/* @__PURE__ */ p(t,{id:`viewer`,children:x(`invite.roleViewer`)})]}),/* @__PURE__ */ m(`div`,{className:`flex flex-wrap items-center gap-2`,children:[/* @__PURE__ */ p(`span`,{id:O,className:`text-sm font-medium text-secondary`,children:x(`invite.linkExpires`)}),/* @__PURE__ */ p(`span`,{className:`flex-1`}),/* @__PURE__ */ p(c,{size:`sm`,"aria-labelledby":O,selectedKeys:[E],disallowEmptySelection:!0,onSelectionChange:e=>{let t=[...e][0];t!==void 0&&D(String(t))},children:h.map(e=>/* @__PURE__ */ p(t,{id:e.v,children:x(e.k)},e.v))})]}),/* @__PURE__ */ p(`div`,{className:`text-sm text-tertiary`,children:x(`invite.blurb`)})]}),/* @__PURE__ */ m(n,{layout:`row`,children:[/* @__PURE__ */ p(s,{color:`secondary`,size:`md`,onClick:()=>b(A,x(`invite.linkCopied`)),children:x(`invite.generateLink`)}),/* @__PURE__ */ p(s,{color:`primary`,size:`md`,onClick:()=>{let e=S.trim()||x(`invite.yourTeammate`);_({icon:`info`,text:x(`invite.sentNotification`,{to:e,role:w})}),v(x(`invite.sent`),`check`),g()},children:x(`invite.sendInvite`)})]})]})}export{g as InviteModal}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/LICENSE b/resources/vendor/react-icon-browser/LICENSE deleted file mode 100644 index a91b6d0..0000000 --- a/resources/vendor/react-icon-browser/LICENSE +++ /dev/null @@ -1,38 +0,0 @@ -Copyright (c) Simtabi LLC. All rights reserved. - -This software and its source code are proprietary and confidential. No part of -it may be copied, modified, distributed, published, sublicensed or sold, in -whole or in part, without the prior written permission of Simtabi LLC. - -Untitled UI PRO ---------------- -This package includes components from Untitled UI React PRO, used under the -Untitled UI licence (https://www.untitledui.com/license). They live under: - -- src/components/application/command-menus -- src/components/application/modal-layouts -- src/components/application/notifications -- src/components/application/tree-view -- src/components/shared-assets - -and each file opens with a comment saying so. That licence does not permit -exposing their source code publicly or redistributing them as a UI kit or -library. Their source therefore stays in the private react-icon-browser -repository and may be shared only with people who hold their own Untitled UI -licence. This vendored copy holds only the compiled build, which may be used -as part of Ichava products published by Simtabi LLC and may not be -redistributed outside them. - -Third-party components ----------------------- -Third-party code in this repository stays under its own licence: - -- Untitled UI React (free components, vendored under src/components/base, - src/components/foundations, src/components/application except the PRO - folders listed above, and src/styles/uui-theme.css): MIT License, - Copyright (c) Untitled UI. - https://github.com/untitleduico/react/blob/main/LICENSE -- Geist and Geist Mono fonts (public/fonts, copied into dist/lib/fonts by the - library build): SIL Open Font License 1.1, Copyright (c) Vercel. -- Icon assets under public/assets keep the licence of their upstream icon set, - as recorded by each Ichava icon pack. diff --git a/resources/vendor/react-icon-browser/LibraryDialog-BI-n9Q34.js b/resources/vendor/react-icon-browser/LibraryDialog-BI-n9Q34.js deleted file mode 100644 index 3e8552b..0000000 --- a/resources/vendor/react-icon-browser/LibraryDialog-BI-n9Q34.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{D as e,c as t,d as n,f as r,g as i,l as a,r as o,s,u as c,y as l}from"./index.js";import{t as u}from"./IconAsset-BVRD6Pac.js";import{t as d}from"./Glyph-ifDznOhl.js";import{t as f}from"./IconGridList-queHa-WS.js";import{A as p,K as m,q as h}from"./chromeIcons-ITgd2uHk.js";import{c as g}from"./TreatmentEngine-B0FTr-Fl.js";import{useState as _}from"react";import{Fragment as v,jsx as y,jsxs as b}from"react/jsx-runtime";import{I18nProvider as x}from"react-aria-components";var S=[{id:`favorites`,key:`library.favorites`},{id:`history`,key:`library.history`},{id:`collections`,key:`library.collections`}];function C(){let e=h(),n=p(),r=m(e=>e.closeLayer),i=m(e=>e.libTab),o=m(e=>e.locale),l=t=>e.setState({libTab:t}),u=m(e=>e.config?.features),f=S.filter(e=>u?.[e.id]!==!1),g=f.some(e=>e.id===i)?i:f[0]?.id??i;return/* @__PURE__ */ y(c,{showClose:!1,onClose:r,width:620,panelStyle:{height:460},children:/* @__PURE__ */ y(x,{locale:o,children:/* @__PURE__ */ b(a,{selectedKey:g,onSelectionChange:e=>l(e),keyboardActivation:`automatic`,className:`min-h-0 flex-1`,children:[/* @__PURE__ */ b(`div`,{className:`flex items-center gap-2 py-2.5 px-3.5 border-b border-b-[var(--border)]`,children:[/* @__PURE__ */ y(a.List,{type:`button-border`,size:`sm`,className:t,children:f.map(e=>/* @__PURE__ */ y(a.Item,{id:e.id,className:`${s} px-3 text-[11.5px]`,children:n(e.key)},e.id))}),/* @__PURE__ */ y(`span`,{className:`flex-1`}),/* @__PURE__ */ y(`button`,{onClick:r,title:`${n(`common.close`)} — Esc`,"aria-label":n(`common.close`),className:`w-[26px] h-[26px] border border-[var(--border)] bg-[var(--bg)] shadow-[var(--shadow)] rounded-[6px] cursor-pointer flex items-center justify-center text-[var(--muted-fg)]`,children:/* @__PURE__ */ y(d,{name:`close`,size:12,color:`currentColor`})})]}),u?.favorites!==!1&&/* @__PURE__ */ y(a.Panel,{id:`favorites`,className:`flex-1 overflow-y-auto p-3`,children:/* @__PURE__ */ y(E,{})}),u?.history!==!1&&/* @__PURE__ */ y(a.Panel,{id:`history`,className:`flex-1 overflow-y-auto p-3`,children:/* @__PURE__ */ y(D,{})}),u?.collections!==!1&&/* @__PURE__ */ y(a.Panel,{id:`collections`,className:`flex-1 overflow-y-auto p-3`,children:/* @__PURE__ */ y(O,{})})]})})})}function w({icon:e,text:t}){return/* @__PURE__ */ y(l,{icon:e,title:t,className:`h-full`})}var T={height:24,padding:`0 8px`,border:`1px solid var(--border)`,borderRadius:`calc(var(--radius) - 3px)`,backgroundColor:`var(--bg)`,color:`var(--fg)`,fontSize:11,cursor:`pointer`};function E(){let e=m(e=>e.favorites),t=m(e=>e.toggleFavorite),r=m(e=>e.openDetail),i=p(),{icons:a}=n(e);return a.length?/* @__PURE__ */ y(f,{label:i(`library.favorites`),layout:`grid`,className:`grid grid-cols-[repeat(auto-fill,minmax(84px,1fr))] gap-2`,rows:a.filter(e=>e).map(e=>({key:e.id,label:e.name,onOpen:()=>r(e.id),remove:{label:`${i(`common.remove`)} ${e.name}`,onRemove:()=>t(e.id)},className:`relative flex flex-col items-center justify-center gap-1.5 aspect-[1_/_0.9] border border-[var(--border)] rounded-[var(--radius)]`,children:/* @__PURE__ */ b(v,{children:[/* @__PURE__ */ y(u,{icon:e,size:24}),/* @__PURE__ */ y(`span`,{className:`text-[10px] text-[var(--muted-fg)] max-w-[90%] whitespace-nowrap overflow-hidden text-ellipsis`,children:e.name})]})}))}):/* @__PURE__ */ y(w,{icon:`heart`,text:i(`library.emptyFavorites`)})}function D(){let e=m(e=>e.history),t=m(e=>e.clearHistory),r=m(e=>e.openDetail),a=p(),{icons:o}=n(e.map(e=>e.id)),s=new Map(o.map(e=>[e.id,e]));return e.length?/* @__PURE__ */ b(`div`,{className:`flex flex-col`,children:[/* @__PURE__ */ y(f,{label:a(`library.history`),rows:e.map((e,t)=>{let n=s.get(e.id),a=n?.name??String(e.id);return{key:`${e.id}-${e.action}-${t}`,label:`${a}, ${e.action}`,onOpen:()=>r(e.id),className:`flex items-center gap-2.5 h-[38px] border-b border-b-[var(--border)]`,children:/* @__PURE__ */ b(v,{children:[n&&/* @__PURE__ */ y(u,{icon:n,size:16}),/* @__PURE__ */ y(`span`,{className:`text-[12.5px] font-medium min-w-[120px]`,children:a}),/* @__PURE__ */ y(`span`,{className:`text-[11px] text-[var(--accent-text)] bg-[var(--accent-soft)] rounded-[4px] py-[1px] px-1.5`,children:e.action}),/* @__PURE__ */ y(`span`,{className:`flex-1`}),/* @__PURE__ */ y(`span`,{"aria-hidden":!0,className:`font-[family-name:'Geist_Mono',monospace] text-[10.5px] text-[var(--faint-fg)]`,children:i(e.ts)})]})}})}),/* @__PURE__ */ y(`button`,{onClick:t,className:`self-start mt-2.5 h-[26px] py-0 px-2.5 border border-[var(--border)] rounded-[calc(var(--radius)_-_3px)] bg-transparent text-[var(--muted-fg)] text-[11.5px] cursor-pointer`,children:a(`library.clearHistory`)})]}):/* @__PURE__ */ y(w,{icon:`clock`,text:a(`library.emptyHistory`)})}function O(){let t=m(e=>e.collections),n=m(e=>e.createCollection),r=m(e=>e.librarySeed),i=h(),a=m(e=>e.openAccess),s=m(e=>e.config?.features.sharing!==!1),c=p(),[l,u]=_(``);return/* @__PURE__ */ b(v,{children:[/* @__PURE__ */ b(o,{onSubmit:e=>{e.preventDefault(),l.trim()&&(n(l,r),i.setState({librarySeed:[]}),u(``))},style:{display:`flex`,gap:6,marginBottom:12},children:[/* @__PURE__ */ y(e,{size:`sm`,value:l,onChange:u,placeholder:c(`library.newCollectionPlaceholder`),"aria-label":c(`library.newCollectionPlaceholder`),className:`flex-1`}),/* @__PURE__ */ y(`button`,{type:`submit`,className:`flex-none py-0 px-3 border-0 rounded-[calc(var(--radius)_-_2px)] bg-[var(--accent)] text-[var(--accent-fg)] text-[12px] font-semibold cursor-pointer`,children:c(`common.create`)})]}),r.length>0&&/* @__PURE__ */ y(`p`,{className:`text-[11px] text-[var(--muted-fg)]`,style:{margin:`-6px 0 12px`},children:c(`library.seededWith`,{n:r.length})}),t.length===0&&/* @__PURE__ */ y(w,{icon:`folder`,text:c(`library.emptyCollections`)}),/* @__PURE__ */ y(`div`,{className:`flex flex-col gap-1.5`,children:t.map(e=>/* @__PURE__ */ y(k,{c:e,onManageAccess:s?()=>a(e.id):void 0},e.id))})]})}function k({c:e,onManageAccess:t}){let i=m(e=>e.removeCollection),a=m(e=>e.removeFromCollection),o=m(e=>e.openDetail),s=r(),c=p(),{icons:l}=n(e.icons),h=new Map(l.map(e=>[e.id,e]));return/* @__PURE__ */ b(`div`,{className:`border border-[var(--border)] rounded-[var(--radius)] overflow-hidden`,children:[/* @__PURE__ */ b(`div`,{className:`flex items-center gap-2 py-2.5 px-3`,children:[/* @__PURE__ */ y(d,{name:`folder`,size:14,color:`var(--accent-text)`}),/* @__PURE__ */ y(`span`,{className:`text-[12.5px] font-[550]`,children:e.name}),/* @__PURE__ */ y(`span`,{className:`font-[family-name:'Geist_Mono',monospace] text-[10.5px] text-[var(--muted-fg)]`,children:c(`library.iconCount`,{n:e.icons.length})}),e.shared&&/* @__PURE__ */ y(`span`,{className:`text-[9px] font-bold text-[var(--accent-text)] bg-[var(--accent-soft)] rounded-[4px] py-[1px] px-[5px]`,children:c(`library.teamBadge`)}),e.shared&&e.role===`viewer`&&/* @__PURE__ */ y(`span`,{className:`text-[9px] font-semibold text-[var(--faint-fg)] border border-[var(--border)] rounded-[4px] py-[1px] px-[5px]`,children:c(`library.viewerBadge`)}),e.shared&&(e.sharedWith??[]).length>0&&/* @__PURE__ */ y(`div`,{className:`flex`,children:(e.sharedWith??[]).slice(0,3).map((e,t)=>/* @__PURE__ */ y(`div`,{style:{width:18,height:18,borderRadius:`50%`,marginLeft:t===0?0:-6,border:`2px solid var(--pop)`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:7.5,fontWeight:600,color:`#fff`,background:[`#7c3aed`,`#0891b2`,`#059669`][t%3]},children:e.initials},e.initials))}),/* @__PURE__ */ y(`span`,{className:`flex-1`}),t&&/* @__PURE__ */ y(`button`,{onClick:t,title:c(`shared.manageAccess`),style:T,children:c(`shared.manageAccess`)}),/* @__PURE__ */ y(`button`,{onClick:()=>{s(l.map(g).join(` -`),c(`toolbar.namesCopied`,{n:e.icons.length}))},title:c(`library.copyNamesTitle`),style:T,children:c(`toolbar.copyNames`)}),/* @__PURE__ */ y(`button`,{onClick:()=>i(e.id),title:c(`library.deleteCollection`),className:`w-[26px] h-[26px] border border-[var(--border)] bg-[var(--pop)] rounded-[6px] cursor-pointer flex items-center justify-center text-[var(--muted-fg)]`,children:/* @__PURE__ */ y(d,{name:`trash`,size:13,color:`currentColor`})})]}),e.icons.length>0&&/* @__PURE__ */ y(f,{label:e.name,layout:`grid`,className:`flex flex-wrap gap-1.5 border-t border-t-[var(--border)] py-2.5 px-3 mt-0 mx-3 mb-2.5`,rows:e.icons.flatMap(t=>{let n=h.get(t);return n?[{key:t,label:n.name,onOpen:()=>o(t),remove:{label:`${c(`common.remove`)} ${n.name}`,onRemove:()=>a(e.id,t),className:`absolute -top-[5px] -end-[5px] w-[15px] h-[15px] border border-[var(--border)] bg-[var(--pop)] rounded-full flex items-center justify-center cursor-pointer text-[var(--muted-fg)]`,glyphSize:7},className:`relative w-[38px] h-[38px] border border-[var(--border)] rounded-[6px] bg-[var(--card)] flex items-center justify-center`,children:/* @__PURE__ */ y(u,{icon:n,size:18})}]:[]})})]})}export{C as LibraryDialog}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/ManageAccessModal-DWXbmvPr.js b/resources/vendor/react-icon-browser/ManageAccessModal-DWXbmvPr.js deleted file mode 100644 index 7e1cdd7..0000000 --- a/resources/vendor/react-icon-browser/ManageAccessModal-DWXbmvPr.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{D as e,a as t,f as n,i as r,o as i,u as a,v as o}from"./index.js";import{A as s,K as c,w as l}from"./chromeIcons-ITgd2uHk.js";import{t as u}from"./glyphIcon-D8F12BiB.js";import{useState as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";var m=[`#7c3aed`,`#0891b2`,`#059669`,`#e11d48`,`#ea580c`];function h(){let m=c(e=>e.accessCollectionId),h=c(e=>e.closeAccess),_=c(e=>e.collections.find(t=>t.id===e.accessCollectionId)),v=c(e=>e.config?.team??[]),y=c(e=>e.shareCollection),b=n(),x=s(),[S,C]=d(``),[w,T]=d(_?.sharedWith??[]);if(!m||!_)return null;let E=v.filter(e=>!w.some(t=>t.initials===e.initials)&&(e.name.toLowerCase().includes(S.toLowerCase())||S===``)),D=e=>T(t=>[...t,{initials:e.initials,name:e.name}]);return/* @__PURE__ */ p(a,{onClose:h,width:480,label:x(`shared.manageAccess`),children:[/* @__PURE__ */ f(i,{title:x(`shared.manageAccess`),description:_.name}),/* @__PURE__ */ p(r,{children:[/* @__PURE__ */ f(e,{size:`md`,icon:l,label:x(`access.addPeople`),value:S,onChange:C,placeholder:x(`access.searchTeammates`)}),S!==``&&E.length>0&&/* @__PURE__ */ f(`div`,{className:`overflow-hidden rounded-lg ring-1 ring-secondary ring-inset`,children:E.map((e,t)=>/* @__PURE__ */ p(`button`,{onClick:()=>{D(e),C(``)},className:`flex w-full cursor-pointer items-center gap-2 border-0 bg-transparent px-2.5 py-2 text-primary hover:bg-primary_hover`,children:[/* @__PURE__ */ f(g,{m:e,i:t}),/* @__PURE__ */ f(`span`,{className:`text-sm`,children:e.name})]},e.initials))}),w.length===0?/* @__PURE__ */ f(`div`,{className:`text-sm text-tertiary`,children:x(`access.onlyYou`)}):/* @__PURE__ */ p(`div`,{className:`flex flex-col gap-1.5`,children:[w.map((e,t)=>/* @__PURE__ */ p(`div`,{className:`flex items-center gap-[9px]`,children:[/* @__PURE__ */ f(g,{m:e,i:t}),/* @__PURE__ */ f(`span`,{className:`flex-1 text-sm text-primary`,children:e.name}),/* @__PURE__ */ f(o,{color:`tertiary`,size:`sm`,"aria-label":`${x(`common.remove`)} ${e.name}`,iconLeading:u(`close`),onClick:()=>T(t=>t.filter(t=>t.initials!==e.initials))})]},e.initials)),/* @__PURE__ */ f(o,{color:`primary`,size:`sm`,className:`self-start`,onClick:()=>{y(m,{role:`editor`,sharedWith:w}),h()},children:x(`access.saveAccess`)})]})]}),/* @__PURE__ */ p(t,{layout:`row`,children:[/* @__PURE__ */ f(o,{color:`link-gray`,size:`md`,className:`sm:mr-auto`,onClick:()=>b(`${location.origin}/ichava/c/${_.id}`,x(`access.shareLinkCopied`)),children:x(`access.copyLinkInstead`)}),/* @__PURE__ */ f(o,{color:`primary`,size:`md`,onClick:()=>{y(m,{role:`editor`,sharedWith:v.map(e=>({initials:e.initials,name:e.name}))}),h()},children:x(`access.shareEntireTeam`)})]})]})}function g({m:e,i:t}){return/* @__PURE__ */ f(`div`,{style:{width:24,height:24,borderRadius:`50%`,flex:`none`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:9,fontWeight:600,color:`#fff`,background:m[t%m.length]},children:e.initials})}export{h as ManageAccessModal}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/ProfileModal-BLtyRn5O.js b/resources/vendor/react-icon-browser/ProfileModal-BLtyRn5O.js deleted file mode 100644 index 59492f6..0000000 --- a/resources/vendor/react-icon-browser/ProfileModal-BLtyRn5O.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{A as e,K as t}from"./chromeIcons-ITgd2uHk.js";import{C as n,S as r,a as i,b as a,i as o,o as s,u as c,v as l,x as u}from"./index.js";import{useId as d}from"react";import{jsx as f,jsxs as p}from"react/jsx-runtime";var m={fontSize:10.5,fontWeight:600,color:`var(--muted-fg)`,textTransform:`uppercase`,letterSpacing:`.04em`};function h(){let h=t(e=>e.closeLayer),g=t(e=>e.openLayer),_=t(e=>e.openConfirm),v=t(e=>e.signOut),y=t(e=>e.showToast),b=t(e=>e.config),x=t(e=>e.activeWorkspaceId),S=t(e=>e.setActiveWorkspace),C=e(),w=d(),T=u();if(!T)return null;let E=b?.features.workspaces===!1?[]:b?.user.workspaces??[],D=!b?.host||!!b.host.links.logout,O=()=>_({title:C(`profile.signOutTitle`),body:C(`profile.signOutBody`),confirmLabel:C(`common.signOut`),danger:!0,onConfirm:()=>{v(),y(C(`profile.signedOut`),`check`)}});return/* @__PURE__ */ p(c,{onClose:h,width:440,label:C(`profile.title`),children:[/* @__PURE__ */ f(s,{title:C(`profile.title`)}),/* @__PURE__ */ p(o,{children:[/* @__PURE__ */ p(`div`,{className:`flex items-center gap-3`,children:[/* @__PURE__ */ f(a,{name:T.name,initials:T.initials,avatarUrl:T.avatarUrl,size:44}),/* @__PURE__ */ p(`div`,{className:`flex-1 min-w-0`,children:[/* @__PURE__ */ p(`div`,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ f(`span`,{className:`text-sm font-semibold text-primary`,children:T.name}),T.plan&&/* @__PURE__ */ f(`span`,{className:`text-[9.5px] font-bold text-[var(--accent-text)] bg-[var(--accent-soft)] rounded-[5px] py-0.5 px-1.5`,children:T.plan})]}),T.email&&/* @__PURE__ */ f(`div`,{className:`text-sm text-tertiary truncate`,children:T.email})]})]}),E.length>0&&/* @__PURE__ */ p(`div`,{className:`flex flex-col gap-1.5`,children:[/* @__PURE__ */ f(`span`,{id:w,style:m,children:C(`account.workspace`)}),/* @__PURE__ */ f(n,{"aria-labelledby":w,value:x??null,onChange:e=>{let t=E.find(t=>t.id===e);t&&(S(t.id),y(C(`profile.switched`,{name:t.name}),`check`))},className:`gap-1.5`,children:E.map(e=>/* @__PURE__ */ f(r,{value:e.id,label:e.name,hint:e.plan,className:`rounded-lg p-2.5 ring-1 ring-secondary ring-inset selected:bg-[var(--accent-soft)] selected:ring-[var(--accent)]`},e.id))})]})]}),/* @__PURE__ */ p(i,{layout:`row`,children:[D&&/* @__PURE__ */ p(l,{color:`secondary-destructive`,size:`md`,className:`sm:mr-auto`,onClick:()=>{h(),O()},children:[C(`common.signOut`),`…`]}),/* @__PURE__ */ f(l,{color:`secondary`,size:`md`,onClick:()=>g(`settings`),children:C(`profile.appSettings`)})]})]})}export{h as ProfileModal}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/SettingsDialog-BDvBI59-.js b/resources/vendor/react-icon-browser/SettingsDialog-BDvBI59-.js deleted file mode 100644 index 0526bd3..0000000 --- a/resources/vendor/react-icon-browser/SettingsDialog-BDvBI59-.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{E as e,T as t,b as n,i as r,o as i,u as a,v as o,w as s,x as c}from"./index.js";import{t as l}from"./Glyph-ifDznOhl.js";import{A as u,Ct as d,Ft as f,K as p}from"./chromeIcons-ITgd2uHk.js";import{jsx as m,jsxs as h}from"react/jsx-runtime";function g(){let g=u(),b=p(e=>e.closeLayer),x=p(e=>e.filters.perPage),S=p(e=>e.setPerPage),C=p(e=>e.copyFormat),w=p(e=>e.setCopyFormat),T=p(e=>e.factoryReset),E=p(e=>e.showToast),D=p(e=>e.openLayer),O=p(e=>e.openConfirm),k=p(e=>e.config),A=p(e=>e.storageDriver),j=p(e=>e.setStorageDriver),M=p(e=>e.startTour),N=p(e=>e.auth.status===`authed`),P=p(e=>e.openAuth),F=p(e=>e.deleteLibrary),I=p(e=>e.clearHistory),L=p(e=>e.clearRecentCommands),R=p(e=>e.config?.features.history!==!1||e.config?.features.commands!==!1),z=k?.ui.perPageOptions??d.ui.perPageOptions,B=k?.toolbar.copyFormats??d.toolbar.copyFormats,V=c(),H=k?.host??null,U=H?.storage.tier===`database`?g(`settings.syncAccount`):H?.storage.tier===`session`?g(`settings.syncSession`):g(`settings.syncNote`),W=!H||!!H.links.login,G=!!H&&k?.features.library!==!1;return/* @__PURE__ */ h(a,{onClose:b,width:480,label:g(`header.settings`),panelStyle:{overflowY:`auto`},children:[/* @__PURE__ */ m(i,{title:g(`header.settings`)}),/* @__PURE__ */ h(r,{className:`gap-3.5 pb-4`,children:[/* @__PURE__ */ h(`div`,{className:`flex items-center gap-2.5 py-2.5 px-3 border border-[var(--border)] rounded-[var(--radius)] bg-[var(--muted2)]`,children:[/* @__PURE__ */ m(`div`,{className:`w-[26px] h-[26px] flex-none rounded-[7px] bg-[var(--accent-soft)] flex items-center justify-center`,children:/* @__PURE__ */ m(l,{name:`palette`,size:13,color:`var(--accent-text)`})}),/* @__PURE__ */ h(`div`,{className:`flex-1 text-[11.5px] text-[var(--muted-fg)] leading-[1.5]`,children:[g(`settings.appearanceHintPre`),/* @__PURE__ */ m(`b`,{className:`text-[var(--fg)]`,children:g(`appearance.title`)}),g(`settings.appearanceHintPost`)]})]}),/* @__PURE__ */ m(v,{children:g(`settings.behavior`)}),/* @__PURE__ */ m(y,{title:g(`settings.perPageTitle`),desc:g(`settings.perPageDesc`),children:/* @__PURE__ */ m(e,{size:`sm`,"aria-label":g(`settings.perPageTitle`),items:z.map(e=>({id:e,label:String(e)})),selectedKey:x,onSelectionChange:e=>S(Number(e)),className:`w-28`,children:t=>/* @__PURE__ */ m(e.Item,{...t})})}),/* @__PURE__ */ m(y,{title:g(`settings.copyFormatTitle`),desc:g(`settings.copyFormatDesc`),children:/* @__PURE__ */ m(e,{size:`sm`,"aria-label":g(`settings.copyFormatTitle`),items:B.map(e=>({id:e.id,label:d.toolbar.copyFormats.some(t=>t.id===e.id&&t.label===e.label)?g(f(`format.${e.id}`)):e.label})),selectedKey:C,onSelectionChange:e=>w(e),className:`w-40`,children:t=>/* @__PURE__ */ m(e.Item,{...t})})}),/* @__PURE__ */ m(y,{title:g(`settings.storageTitle`),desc:g(`settings.storageDesc`),children:/* @__PURE__ */ h(s,{size:`sm`,"aria-label":g(`settings.storageTitle`),selectedKeys:[A],disallowEmptySelection:!0,onSelectionChange:e=>{let t=[...e][0];(t===`local`||t===`session`)&&j(t)},children:[/* @__PURE__ */ m(t,{id:`local`,className:`h-8 px-2.5 py-0 text-xs`,children:g(`settings.storageLocal`)}),/* @__PURE__ */ m(t,{id:`session`,className:`h-8 px-2.5 py-0 text-xs`,children:g(`settings.storageSession`)})]})}),/* @__PURE__ */ m(y,{title:g(`settings.tourTitle`),desc:g(`settings.tourDesc`),children:/* @__PURE__ */ m(o,{color:`secondary`,size:`xs`,onClick:()=>{M(),b()},children:g(`settings.replayTour`)})}),R&&/* @__PURE__ */ m(y,{title:g(`settings.clearHistoryTitle`),desc:g(`settings.clearHistoryDesc`),children:/* @__PURE__ */ m(o,{color:`secondary`,size:`xs`,onClick:()=>{I(),L(),E(g(`settings.clearHistoryToast`),`check`)},children:g(`settings.clearHistoryButton`)})}),/* @__PURE__ */ m(y,{title:g(`settings.factoryTitle`),desc:g(H?`settings.factoryDescHost`:`settings.factoryDesc`),children:/* @__PURE__ */ m(o,{color:`secondary-destructive`,size:`xs`,onClick:()=>O({title:g(`settings.factoryConfirmTitle`),body:g(H?`settings.factoryConfirmBodyHost`:`settings.factoryConfirmBody`),confirmLabel:g(`settings.factoryConfirmLabel`),danger:!0,onConfirm:()=>{T(),E(g(`settings.factoryToast`),`refresh`)}}),children:g(`settings.resetEverything`)})}),G&&/* @__PURE__ */ m(y,{title:g(`settings.deleteLibraryTitle`),desc:g(`settings.deleteLibraryDesc`),children:/* @__PURE__ */ m(o,{color:`secondary-destructive`,size:`xs`,onClick:()=>O({title:g(`settings.deleteLibraryConfirmTitle`),body:g(`settings.deleteLibraryConfirmBody`),confirmLabel:g(`settings.deleteLibraryConfirmLabel`),danger:!0,onConfirm:()=>{F(),E(g(`settings.deleteLibraryToast`),`check`)}}),children:g(`settings.deleteLibraryButton`)})}),/* @__PURE__ */ m(`div`,{className:`h-[1px] bg-[var(--border)]`}),/* @__PURE__ */ m(v,{children:g(`settings.account`)}),N&&V?/* @__PURE__ */ h(`div`,{className:`flex items-center gap-2.5`,children:[/* @__PURE__ */ m(n,{name:V.name,initials:V.initials,avatarUrl:V.avatarUrl,size:32}),/* @__PURE__ */ h(`div`,{className:`flex-1 min-w-0`,children:[/* @__PURE__ */ h(`div`,{className:`text-[12.5px] font-[600]`,children:[V.name,` `,V.plan&&/* @__PURE__ */ m(`span`,{className:`text-[9px] font-semibold text-[var(--accent-text)] bg-[var(--accent-soft)] rounded-[4px] py-[1px] px-[5px]`,children:V.plan})]}),/* @__PURE__ */ h(`div`,{className:`text-[11px] text-[var(--muted-fg)]`,children:[V.email?`${V.email} · `:``,U]})]})]}):/* @__PURE__ */ h(`div`,{className:`flex items-center gap-2.5 py-3 px-3.5 border border-dashed border-[var(--border)] rounded-[var(--radius)]`,children:[/* @__PURE__ */ m(l,{name:`info`,size:15,color:`var(--muted-fg)`}),/* @__PURE__ */ h(`div`,{className:`flex-1 text-[11.5px] text-[var(--muted-fg)] leading-[1.5]`,children:[H?.storage.tier===`session`?_(g(`settings.syncSession`)):g(`settings.guestNote`),H&&W?` ${g(`settings.guestSignIn`)}`:``]}),W&&/* @__PURE__ */ m(o,{size:`xs`,className:`flex-none`,onClick:()=>{P(`signin`),b()},children:g(`common.signIn`)})]})]}),/* @__PURE__ */ h(`div`,{className:`py-2.5 px-4 border-t border-t-[var(--border)] flex items-center text-[10.5px] text-[var(--faint-fg)]`,children:[/* @__PURE__ */ h(`span`,{children:[`© 2026 Simtabi LLC · ichava/icon-browser v`,(k??d).meta.version,` · `,(k??d).meta.license]}),/* @__PURE__ */ m(`span`,{className:`flex-1`}),/* @__PURE__ */ m(`button`,{onClick:()=>D(`about`),className:`border-0 bg-transparent text-brand-secondary text-[10.5px] cursor-pointer p-0.5 font-semibold`,children:g(`settings.aboutLink`)})]})]})}var _=e=>`${e.charAt(0).toLocaleUpperCase()}${e.slice(1)}.`,v=({children:e})=>/* @__PURE__ */ m(`div`,{className:`text-[10.5px] font-semibold text-[var(--faint-fg)]`,children:e});function y({title:e,desc:t,children:n}){return/* @__PURE__ */ h(`div`,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ h(`div`,{className:`flex-1`,children:[/* @__PURE__ */ m(`div`,{className:`text-[12.5px] font-[550]`,children:e}),/* @__PURE__ */ m(`div`,{className:`text-[11px] text-[var(--muted-fg)]`,children:t})]}),n]})}export{g as SettingsDialog}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/SharedCollectionsModal-fAi7Feba.js b/resources/vendor/react-icon-browser/SharedCollectionsModal-fAi7Feba.js deleted file mode 100644 index bf129ce..0000000 --- a/resources/vendor/react-icon-browser/SharedCollectionsModal-fAi7Feba.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{t as e}from"./IconGridList-queHa-WS.js";import{d as t,f as n,i as r,o as i,u as a,v as o}from"./index.js";import{A as s,Ct as c,K as l}from"./chromeIcons-ITgd2uHk.js";import{t as u}from"./IconAsset-BVRD6Pac.js";import{t as d}from"./Glyph-ifDznOhl.js";import{c as f}from"./TreatmentEngine-B0FTr-Fl.js";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";function g(){let e=l(e=>e.closeShared),t=l(e=>e.collections),n=l(e=>e.activeWorkspaceId),u=l(e=>e.config),f=l(e=>e.openDetail),g=l(e=>e.openAccess),v=l(e=>e.openInvite),y=s(),b=u?.ui.avatarPalette?.length?u.ui.avatarPalette:c.ui.avatarPalette,x=u?.user.workspaces.find(e=>e.id===n)??u?.user.workspaces[0],S=t.filter(e=>e.shared||(e.sharedWith??[]).length>0);return/* @__PURE__ */ h(a,{onClose:e,width:620,label:y(`shared.title`),panelStyle:{maxHeight:`80vh`,display:`flex`,flexDirection:`column`},children:[/* @__PURE__ */ m(i,{className:`flex-none`,title:y(`shared.title`),description:/* @__PURE__ */ h(p,{children:[/* @__PURE__ */ m(`span`,{className:`font-mono text-xs`,children:x?.name??y(`team.title`)}),` · `,y(`shared.count`,{n:S.length})]})}),/* @__PURE__ */ m(r,{className:`min-h-0 flex-1 gap-2.5 overflow-y-auto pb-6`,children:S.length===0?/* @__PURE__ */ h(`div`,{className:`flex flex-col items-center gap-2 px-4 py-10 text-tertiary`,children:[/* @__PURE__ */ m(d,{name:`folder`,size:22,color:`var(--faint-fg)`}),/* @__PURE__ */ m(`span`,{className:`text-center text-sm`,children:y(`shared.empty`)}),/* @__PURE__ */ m(o,{color:`primary`,size:`sm`,onClick:()=>{e(),v()},children:y(`shared.inviteTeam`)})]}):S.map(e=>/* @__PURE__ */ m(_,{c:e,palette:b,onManageAccess:()=>g(e.id),onOpenDetail:f},e.id))})]})}function _({c:r,palette:i,onManageAccess:a,onOpenDetail:c}){let l=n(),p=s(),{icons:g}=t(r.icons),_=new Map(g.map(e=>[e.id,e]));return/* @__PURE__ */ h(`div`,{className:`border border-[var(--border)] rounded-[var(--radius)] overflow-hidden`,children:[/* @__PURE__ */ h(`div`,{className:`flex items-center gap-2 py-2.5 px-3`,children:[/* @__PURE__ */ m(d,{name:`folder`,size:14,color:`var(--accent-text)`}),/* @__PURE__ */ m(`span`,{className:`text-[12.5px] font-[550]`,children:r.name}),/* @__PURE__ */ m(`span`,{className:`font-[family-name:'Geist_Mono',monospace] text-[10.5px] text-[var(--muted-fg)]`,children:p(`library.iconCount`,{n:r.icons.length})}),/* @__PURE__ */ m(`span`,{className:`text-[9px] font-bold text-[var(--accent-text)] bg-[var(--accent-soft)] rounded-[4px] py-[1px] px-[5px]`,children:r.role===`viewer`?p(`shared.viewer`):p(`shared.editor`)}),(r.sharedWith??[]).length>0&&/* @__PURE__ */ m(`div`,{className:`flex`,children:(r.sharedWith??[]).slice(0,3).map((e,t)=>/* @__PURE__ */ m(`div`,{style:{width:18,height:18,borderRadius:`50%`,marginInlineStart:t===0?0:-6,border:`2px solid var(--pop)`,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:7.5,fontWeight:600,color:`var(--accent-fg)`,background:i[t%i.length]},children:e.initials},e.initials))}),/* @__PURE__ */ m(`span`,{className:`flex-1`}),/* @__PURE__ */ m(o,{color:`secondary`,size:`xs`,onClick:a,children:p(`shared.manageAccess`)}),/* @__PURE__ */ m(o,{color:`secondary`,size:`xs`,onClick:()=>{l(g.map(f).join(` -`),p(`toolbar.namesCopied`,{n:r.icons.length}))},children:p(`toolbar.copyNames`)})]}),r.icons.length>0&&/* @__PURE__ */ m(e,{label:r.name,layout:`grid`,className:`flex flex-wrap gap-1.5 border-t border-t-[var(--border)] py-2.5 px-3`,rows:r.icons.flatMap(e=>{let t=_.get(e);return t?[{key:e,label:t.name,onOpen:()=>c(e),className:`w-[38px] h-[38px] border border-[var(--border)] rounded-[6px] bg-[var(--card)] flex items-center justify-center`,children:/* @__PURE__ */ m(u,{icon:t,size:18})}]:[]})})]})}export{g as SharedCollectionsModal}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/TourModal-DUnXa682.js b/resources/vendor/react-icon-browser/TourModal-DUnXa682.js deleted file mode 100644 index f476d78..0000000 --- a/resources/vendor/react-icon-browser/TourModal-DUnXa682.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{a as e,o as t,u as n,v as r}from"./index.js";import{t as i}from"./glyphIcon-D8F12BiB.js";import{t as a}from"./featured-icon-CzZVq73R.js";import{t as o}from"./cx-B63ov-ZV.js";import{A as s,K as c}from"./chromeIcons-ITgd2uHk.js";import{jsx as l,jsxs as u}from"react/jsx-runtime";var d=[{icon:`sparkles`,titleKey:`tour.s1Title`,bodyKey:`tour.s1Body`},{icon:`search`,titleKey:`tour.s2Title`,bodyKey:`tour.s2Body`},{icon:`palette`,titleKey:`tour.s3Title`,bodyKey:`tour.s3Body`},{icon:`copy`,titleKey:`tour.s4Title`,bodyKey:`tour.s4Body`},{icon:`folder`,titleKey:`tour.s5Title`,bodyKey:`tour.s5Body`}];function f(){let f=c(e=>e.tour.step),p=c(e=>e.nextTourStep),m=c(e=>e.prevTourStep),h=c(e=>e.skipTour),g=c(e=>e.endTour),_=s(),v=d.length,y=Math.min(f,v-1),b=d[y],x=y>=v-1;return/* @__PURE__ */ u(n,{onClose:h,width:400,label:_(`settings.tourTitle`),children:[/* @__PURE__ */ l(`div`,{className:`px-4 pt-4 sm:px-6 sm:pt-6`,children:/* @__PURE__ */ l(`div`,{className:`flex h-32 items-center justify-center rounded-lg bg-tertiary`,children:/* @__PURE__ */ l(a,{color:`brand`,size:`xl`,theme:`modern`,icon:i(b.icon)})})}),/* @__PURE__ */ l(t,{align:`center`,title:_(b.titleKey),description:_(b.bodyKey)}),/* @__PURE__ */ u(`div`,{className:`flex flex-col items-center gap-2 pt-5`,children:[/* @__PURE__ */ l(`div`,{"aria-hidden":!0,className:`flex gap-4`,children:d.map((e,t)=>/* @__PURE__ */ l(`span`,{className:o(`size-2.5 rounded-full transition-colors`,t===y?`bg-fg-brand-primary_alt`:`bg-quaternary`)},t))}),/* @__PURE__ */ l(`span`,{className:`sr-only`,"aria-live":`polite`,children:_(`tour.stepOf`,{n:y+1,total:v})})]}),/* @__PURE__ */ u(e,{layout:`grid`,children:[y===0?/* @__PURE__ */ l(r,{color:`secondary`,size:`md`,onClick:h,children:_(`tour.skip`)}):/* @__PURE__ */ l(r,{color:`secondary`,size:`md`,onClick:m,children:_(`tour.back`)}),/* @__PURE__ */ l(r,{color:`primary`,size:`md`,onClick:()=>x?g():p(),children:_(x?`tour.getStarted`:`tour.next`)})]})]})}export{f as TourModal}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/TreatmentEngine-B0FTr-Fl.js b/resources/vendor/react-icon-browser/TreatmentEngine-B0FTr-Fl.js deleted file mode 100644 index d1d73bb..0000000 --- a/resources/vendor/react-icon-browser/TreatmentEngine-B0FTr-Fl.js +++ /dev/null @@ -1,13 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{Ct as e}from"./chromeIcons-ITgd2uHk.js";import{r as t}from"./Glyph-ifDznOhl.js";function n(e){return e.package.replace(/^ichava\//,``).replace(/^icon-sets-/,``)}function r(e){return`${n(e)}:${e.name}`}var i=class{#e;constructor(e){this.#e=e}matches(e,t,n={}){if(!n.kind&&t.kind&&(e.kind??`icon`)!==t.kind||t.tags?.length&&!t.tags.every(t=>e.tags.includes(t))||t.keywords?.length&&!t.keywords.every(t=>e.keywords.includes(t))||!n.packages&&t.packages?.length&&!t.packages.includes(e.package))return!1;if(!n.categories){let n=t.categories?.length??0,r=t.subs?.length??0;if(n||r){let n=!!t.categories?.includes(e.category),r=!!(e.sub&&t.subs?.includes(`${e.category}/${e.sub}`));if(!n&&!r)return!1}}if(!n.variants&&t.variants?.length&&!t.variants.includes(e.variant))return!1;let i=(t.search??``).trim().toLowerCase();if(i.length>=2){let t=r(e),n=`${e.name} ${t} ${e.package} ${e.tags.join(` `)} ${e.keywords.join(` `)}`.toLowerCase();if(!i.split(/\s+/).every(e=>n.includes(e)))return!1}return!0}filtered(e){let t=e.sortBy??`name`,n=e.sortDirection===`desc`?-1:1,r=t===`name`?`name`:t===`package`?`package`:`category`;return this.#e.icons.filter(t=>this.matches(t,e)).sort((e,t)=>n*String(e[r]).localeCompare(String(t[r])))}page(e){let t=this.filtered(e),n=t.length,r=e.perPage??60,i=Math.max(1,Math.ceil(n/r)),a=Math.min(Math.max(1,e.page??1),i),o=(a-1)*r;return{items:t.slice(o,o+r),total:n,page:a,perPage:r,lastPage:i,rangeStart:n?o+1:0,rangeEnd:Math.min(o+r,n)}}byId(e){return this.#e.icons.find(t=>t.id===e)}related(e,t=6){let n=e=>new Set([...e.name.split(/[-_\s]+/),...e.tags,...e.keywords].map(e=>e.toLowerCase()).filter(e=>e.length>1)),r=n(e),i=[];return this.#e.icons.forEach((t,a)=>{if(t.id===e.id)return;let o=0;for(let e of n(t))r.has(e)&&o++;let s=t.package===e.package;if(o===0&&!(s&&t.category===e.category))return;let c=o*3+(s?2:0)+ +(t.category===e.category);i.push({i:t,score:c,at:a})}),i.sort((e,t)=>t.score-e.score||e.at-t.at).slice(0,t).map(e=>e.i)}filters(){let e=/* @__PURE__ */ new Map,t=/* @__PURE__ */ new Map;for(let n of this.#e.icons)e.set(n.category,(e.get(n.category)??0)+1),t.set(n.variant,(t.get(n.variant)??0)+1);let n=[...e.entries()].map(([e,t])=>({id:e,name:e,label:a(e),count:t})).sort((e,t)=>e.name.localeCompare(t.name)),r=[...t.entries()].map(([e,t])=>({id:e,name:e,label:a(e),count:t})).sort((e,t)=>e.name.localeCompare(t.name));return{packages:this.#e.packages,categories:n,variants:r}}kindCounts(e){let t={icon:0,illustration:0};for(let n of this.#e.icons)this.matches(n,e,{kind:!0})&&t[n.kind??`icon`]++;return t}variantCounts(e){let t=/* @__PURE__ */ new Map;for(let n of this.#e.icons)this.matches(n,e,{variants:!0,categories:!0})&&t.set(n.variant,(t.get(n.variant)??0)+1);return t}categoryTree(e){let t=this.#e.icons.filter(t=>this.matches(t,e,{categories:!0})),n=/* @__PURE__ */ new Map;for(let e of t){let t=n.get(e.package)??/* @__PURE__ */ new Map,r=t.get(e.category)??{total:0,subs:/* @__PURE__ */ new Map};r.total+=1,e.sub&&r.subs.set(e.sub,(r.subs.get(e.sub)??0)+1),t.set(e.category,r),n.set(e.package,t)}let r=new Map(this.#e.packages.map(e=>[e.id,e.label])),i=[];for(let[e,t]of n){let n=[...t.entries()].map(([e,t])=>({name:e,count:t.total,sub:t.subs.size?[...t.subs.entries()].map(([e,t])=>({slug:e,name:a(e),count:t})).sort((e,t)=>e.name.localeCompare(t.name)):void 0})).sort((e,t)=>e.name.localeCompare(t.name));i.push({pack:e,label:r.get(e)??e,count:n.length,cats:n})}return i.sort((e,t)=>e.label.localeCompare(t.label))}};function a(e){return e.replace(/(^|[-_\s])(\w)/g,(e,t,n)=>(t?` `:``)+n.toUpperCase())}var o={version:2,_source:`phase-3-redesign.md §4.1, transcribed with its structure intact. JSONC comments became _comment keys because three runtimes parse this with strict JSON parsers; no value was changed, reordered or tidied.`,_contract:`A POSITIVE specification derived from the engineering brief §1.3 fidelity contract: everything listed here MUST survive sanitisation, and anything stripping it is a bug, not security. The design rule is block by VALUE, not by name -- blunt tag bans over-block legitimate content and still miss real attacks.`,_home:`core/resources/security/svg-policy.json. §4.1 says 'committed at the workspace root', which is not possible: the ichava workspace root is not a git repository, so a file there would be unversioned and would ship with nothing. It lives in ichava/core instead, the package every PHP consumer already depends on, and the JS and Python runtimes carry a synced copy checked by test.`,allowedTags:/* @__PURE__ */ `svg.g.defs.symbol.marker.title.desc.metadata.switch.path.circle.ellipse.rect.line.polyline.polygon.text.tspan.textPath.linearGradient.radialGradient.stop.pattern.mask.clipPath.filter.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feDropShadow.feFlood.feFuncA.feFuncB.feFuncG.feFuncR.feGaussianBlur.feMerge.feMergeNode.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.use`.split(`.`),_allowedTags_comment:{stop:`REQUIRED. A gradient element with no stops paints nothing. The shipped PHP config allowed linearGradient while stripping stop, and allow-listed the offset/stop-color ATTRIBUTES of an element it removed.`,title:`REQUIRED. Thousands of icons in the measured corpus carry one; it is the accessible name.`,use:`Fragment references ONLY -- see fragmentOnlyRefs.`,marker:`REQUIRED. Added 2026-11-04: the US and UM flags draw their fifty stars as one marker repeated by marker-mid, and with stripped the url(#us-a) reference pointed at nothing, so both shipped with an empty canton (0 white pixels against 11,050 upstream). A marker is a container like symbol: it carries no reference of its own, its children pass the same element and attribute checks as everywhere else, and marker-start/-mid/-end only ever reach it as url(#fragment).`},allowedAttributes:/* @__PURE__ */ `fill.stroke.stroke-width.stroke-linecap.stroke-linejoin.stroke-dasharray.stroke-dashoffset.stroke-miterlimit.fill-rule.fill-opacity.stroke-opacity.opacity.transform.transform-origin.viewBox.preserveAspectRatio.x.y.cx.cy.r.rx.ry.d.points.width.height.gradientUnits.gradientTransform.patternUnits.patternTransform.offset.stop-color.stop-opacity.clip-path.clip-rule.mask.filter.font-family.font-size.font-weight.text-anchor.dominant-baseline.letter-spacing.vector-effect.paint-order.shape-rendering.class.id.xmlns.xmlns:xlink.role.x1.y1.x2.y2.fx.fy.fr.spreadMethod.clipPathUnits.maskUnits.maskContentUnits.display.color.marker-start.marker-mid.marker-end.refX.refY.markerWidth.markerHeight.orient.markerUnits`.split(`.`),_allowedAttributes_addendum:`The last row is NOT in phase-3-redesign.md §4.1 and is added here deliberately. §4.1 (and brief §1.3 before it) list gradientUnits and gradientTransform but omit the coordinates a gradient is actually drawn with. A without x1/y1/x2/y2 has no direction, a without fx/fy/fr has no focal point, and clipPathUnits / maskUnits / maskContentUnits decide whether a clip or mask is interpreted in user space or object space -- get it wrong and the shape is clipped to nothing. The shipped PHP config had all eleven; adopting §4.1 verbatim would have REMOVED them and broken all 65 gradient icons plus every clip and mask. Caught by diffing the effective config before and after this file was wired in. This is the same single-archetype omission §1.1 describes, one level up: the spec was written from the fidelity contract, and the fidelity contract itself was incomplete.`,_allowedAttributes_addendum_presentation:`The row display, color, marker-start, marker-mid, marker-end was added 2026-11-04 after a dry run of OpenMoji 17 stripped display="none" from 13 subdivision flags (their hidden construction shapes would render), color from 3 files and marker-end from 1. Each is name-allowed here and value-guarded in every reader: display only as one or more bare keywords (no parens, no url, no escapes) and through the CSS value guard; color through the CSS value guard; marker-* only as none or url(#fragment), through the CSS value guard. Inkscape's sodipodi:docname stays stripped.`,_allowedAttributes_addendum_marker:`The row refX, refY, markerWidth, markerHeight, orient, markerUnits was added 2026-11-04 with the marker element. They are the marker's own geometry; with id, viewBox, preserveAspectRatio and the presentation attributes already on the list, they are all a marker takes. None is a CSS property and none can hold a reference, so they need no value guard, like x, y, width and height.`,allowedAttributePrefixes:[`aria-`],_allowedAttributePrefixes_comment:`Includes aria-labelledby and aria-describedby. Allowed by SHAPE rather than by list, so a newly standardised ARIA attribute cannot become an accessibility regression. Hundreds of icons in the measured corpus carry aria-labelledby, and it is the line most often forgotten when ids are rewritten.`,allowedValues:[`currentColor`,`var(--token)`,`url(#local-ref)`],_allowedValues_comment:`currentColor is theme inheritance -- without it there is no theming at all. var(--token) is the Tailwind v4 @theme integration. url(#local-ref) covers gradients, masks and filters.`,fragmentOnlyRefs:{attributes:[`href`,`xlink:href`],allow:`^#[A-Za-z_][\\w.:-]*$`,_comment:`Fragments are inert: they cannot fetch, leak or execute. Blocking them destroys , , and feImage for zero security benefit. Everything else -- absolute, protocol-relative, relative, data:, javascript:, blob:, filesystem: -- is blocked. 261 icons in the measured corpus use , 126 of them in the flag pack.`},styleAttribute:{allow:`declarations, CSS custom properties, url(#fragment)`,block:[`url() with any non-fragment target`,`expression(`,`behavior:`,`-moz-binding`],_comment:`REQUIRED. Sole paint source for 3,239 icons in the measured corpus, 2 of them flags. In one proprietary icon set it paints about half the icons and almost none use currentColor. url(#gradient) must work; url(https://…) is the CSS exfiltration vector.`,_count_note:`§4.1 records 59 fewer icons for one pack here. The census measured the higher count on 2026-09-02 (style-attribute paint source). The policy is unchanged either way; the figure is corrected rather than carried forward.`},forbiddenTags:[`script`,`foreignObject`,`iframe`,`object`,`embed`,`style`,`animate`,`animateTransform`,`set`],_forbiddenTags_comment:{style:`The style ELEMENT stays blocked, distinct from the style ATTRIBUTE which is widened. 54 files contain it, only 2 depend on it for paint. Blocking costs 2 icons and removes the CSS-exfiltration surface entirely; log those 2 as known-degraded.`,foreignObject:`Never widens. 6 occurrences, all Illustrator metadata. It embeds arbitrary HTML inside SVG and is a standard sanitiser bypass.`,animate:`SMIL stays blocked, for free: corpus count of animate/set/attributeName is ZERO. If it is ever enabled, blocking attributeName values of href/xlink:href/style/class/on* becomes mandatory -- that is the post-sanitiser attribute-rewrite vector, and it is frequently missed.`},denyAttributePrefixes:[`on`],stripDoctype:!0,stripEntities:!0,stripComments:!0,blockImageNonFragmentHref:!0,blockAnchorNonFragmentHref:!0,blockCdataScript:!0,_always_blocked_comment:`stripDoctype and stripEntities cover XXE and billion-laughs. and with a non-fragment href are blocked, which is why the 5 brand logos in a proprietary icon set that embed a raster image are parked outside that pack's registered assets rather than shipped blank (OQ-018).`},s=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`);function c(e){if(typeof e!=`object`||!e)return!1;let t=e,n=t.fragmentOnlyRefs,r=t.styleAttribute;return typeof t.version==`number`&&[`allowedTags`,`allowedAttributes`,`allowedAttributePrefixes`,`forbiddenTags`,`denyAttributePrefixes`].every(e=>s(t[e]))&&typeof n==`object`&&!!n&&s(n.attributes)&&typeof n.allow==`string`&&typeof r==`object`&&!!r&&typeof r.allow==`string`&&s(r.block)}function l(e){if(!c(e))throw Error(`svg-policy.json does not have the shape SvgPolicy describes`);return e}var u=l(o);function d(){let e=[...u.allowedAttributes];return u.styleAttribute&&e.push(`style`),e.push(...u.fragmentOnlyRefs?.attributes??[]),[...new Set(e)]}function f(){return new RegExp(u.fragmentOnlyRefs.allow)}var ee=[`fill`,`stroke`,`filter`,`clip-path`,`mask`,`marker`,`marker-start`,`marker-mid`,`marker-end`,`cursor`,`stop-color`,`flood-color`,`lighting-color`,`color`],te=/* @__PURE__ */ new Set(/* @__PURE__ */ `rgb.rgba.hsl.hsla.hwb.lab.lch.oklab.oklch.color.color-mix.var.calc.min.max.clamp.translate.translatex.translatey.translatez.translate3d.rotate.rotatex.rotatey.rotatez.rotate3d.scale.scalex.scaley.scalez.scale3d.skew.skewx.skewy.matrix.matrix3d.perspective.cubic-bezier.steps.blur.drop-shadow.brightness.contrast.grayscale.hue-rotate.invert.opacity.saturate.sepia`.split(`.`));function ne(e){let t=``;for(let n=0;n1114111||r>=55296&&r<=57343?`�`:String.fromCodePoint(r),n+=i[0].length;let a=e[n+1];a===`\r`&&e[n+2]===` -`?n+=2:(a===` `||a===` `||a===` -`||a===`\r`||a===`\f`)&&(n+=1)}else if(n+10&&/[a-z0-9_-]/.test(t[n-1]);)n--;let r=t.slice(n,e);if(r===`url`){if(!p.test(t.slice(e)))return!1}else if(r!==``&&!te.has(r))return!1}return!0}var ie=/^[A-Za-z][A-Za-z-]*(?: [A-Za-z][A-Za-z-]*)*$/,h=/^url\(\s*(?:#[A-Za-z_][\w.:-]*|"#[A-Za-z_][\w.:-]*"|'#[A-Za-z_][\w.:-]*')\s*\)$/,g=[`display`,`color`,`marker-start`,`marker-mid`,`marker-end`];function ae(e,t){let n=t.trim();switch(e.toLowerCase()){case`display`:return ie.test(n)&&m(n);case`color`:return m(t);case`marker-start`:case`marker-mid`:case`marker-end`:return n.toLowerCase()===`none`||h.test(n)&&m(n);default:return!0}} -/*! @license DOMPurify 3.4.17 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.17/LICENSE */ -function _(e,t){this.v=e,this.k=t}function v(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`?null:j(BigInt.prototype.toString),Pe=typeof Symbol>`u`?null:j(Symbol.prototype.toString),D=j(Object.prototype.hasOwnProperty),O=j(Object.prototype.toString),k=j(RegExp.prototype.test),A=Fe(TypeError);function j(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return he(e,t,n)}}function Fe(e){return function(){return ge(e,[...arguments])}}function M(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:E;if(x&&x(e,null),!Se(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(de(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Ie(e){for(let t=0;t/g),$e=w(/\${[\w\W]*/g),et=w(/^data-[\-\w.\u00B7-\uFFFF]+$/),tt=w(/^aria-[\-\w]+$/),nt=w(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),rt=w(/^(?:\w+script|data):/i),it=w(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),at=w(/^html$/i),ot=w(/^[a-z][.\w]*(-[.\w]+)+$/i),st=w(/<[/\w!]/g),ct=w(/<[/\w]/g),lt=w(/<\/no(script|embed|frames)/i),ut=w(/\/>/i),F={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},dt=C(M({},[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`])),ft=function(){return typeof window>`u`?null:window},pt=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},mt=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},I=function(e,t,n,r){return D(e,t)&&Se(e[t])?M(r.base?N(r.base):{},e[t],r.transform):n},ht=function(e,t,n){let r=D(e,t)?e[t]:void 0;return r&&typeof r==`object`?N(r):n()};function gt(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ft(),t=e=>gt(e);if(t.version=`3.4.17`,t.removed=[],!e||!e.document||e.document.nodeType!==F.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=P(d,`cloneNode`),ee=P(d,`remove`),te=P(d,`removeAttributeNode`),ne=P(d,`nextSibling`),re=P(d,`childNodes`),p=P(d,`parentNode`),m=P(d,`shadowRoot`),ie=P(d,`attributes`),h=o&&o.prototype?P(o.prototype,`nodeType`):null,g=o&&o.prototype?P(o.prototype,`nodeName`):null,ae=o&&o.prototype?P(o.prototype,`ownerDocument`):null,_=function(e){return h?h(e):e.nodeType},v=function(e){return g?g(e):e.nodeName},oe=Re(d,`namespaceURI`),se=function(e){return oe?oe(e):e.namespaceURI};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let y,b=``,ce,le=!1,x=0,de=function(){if(x>0)throw A(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},S=function(e){de(),x++;try{return y.createHTML(e)}finally{x--}},fe=function(e){de(),x++;try{return y.createScriptURL(e)}finally{x--}},me=function(){return le||=(ce=pt(u,i),!0),ce},he=n,ge=he.implementation,je=he.createNodeIterator,Me=he.createDocumentFragment,Ne=he.getElementsByTagName,Pe=r.importNode,O=mt();t.isSupported=typeof ue==`function`&&typeof p==`function`&&ge&&ge.createHTMLDocument!==void 0;let j=Ze,Fe=Qe,Ie=$e,_t=et,vt=tt,yt=rt,bt=it,xt=ot,St=nt,L=null,Ct=M({},[...Be,...Ve,...He,...We,...Ke]),R=null,z=M({},[...qe,...Je,...Ye,...Xe]),B=Object.seal(pe(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),wt=null,Tt=null,V=Object.seal(pe(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Et=!0,Dt=!0,Ot=!1,kt=!0,H=!1,U=!0,W=!1,At=!1,jt=null,Mt=null,Nt=!1,G=!1,Pt=!1,Ft=!1,It=!0,Lt=!1,Rt=`user-content-`,zt=!0,Bt=!1,K=null,q={},J=null,Vt=M({},/* @__PURE__ */ `annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Ht=null,Ut=M({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Wt=null,Gt=M({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Kt=`http://www.w3.org/1998/Math/MathML`,qt=`http://www.w3.org/2000/svg`,Y=`http://www.w3.org/1999/xhtml`,Jt=Y,Yt=!1,Xt=null,Zt=M({},[Kt,qt,Y],Ee),Qt=C([`mi`,`mo`,`mn`,`ms`,`mtext`]),$t=M({},Qt),en=C([`annotation-xml`]),tn=M({},en),nn=M({},[`title`,`style`,`font`,`a`,`script`]),rn=null,an=[`application/xhtml+xml`,`text/html`],X=null,on=null,sn=n.createElement(`form`),cn=function(e){return e instanceof RegExp||e instanceof Function},ln=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(on&&on===e)return;e&&typeof e==`object`||(e={}),e=N(e),rn=an.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,X=rn===`application/xhtml+xml`?Ee:E,L=I(e,`ALLOWED_TAGS`,Ct,{transform:X}),R=I(e,`ALLOWED_ATTR`,z,{transform:X}),Xt=I(e,`ALLOWED_NAMESPACES`,Zt,{transform:Ee}),Wt=I(e,`ADD_URI_SAFE_ATTR`,Gt,{transform:X,base:Gt}),Ht=I(e,`ADD_DATA_URI_TAGS`,Ut,{transform:X,base:Ut}),J=I(e,`FORBID_CONTENTS`,Vt,{transform:X}),wt=I(e,`FORBID_TAGS`,N({}),{transform:X}),Tt=I(e,`FORBID_ATTR`,N({}),{transform:X}),q=D(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?N(e.USE_PROFILES):e.USE_PROFILES:!1,Et=e.ALLOW_ARIA_ATTR!==!1,Dt=e.ALLOW_DATA_ATTR!==!1,Ot=e.ALLOW_UNKNOWN_PROTOCOLS||!1,kt=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,H=e.SAFE_FOR_TEMPLATES||!1,U=e.SAFE_FOR_XML!==!1,W=e.WHOLE_DOCUMENT||!1,G=e.RETURN_DOM||!1,Pt=e.RETURN_DOM_FRAGMENT||!1,Ft=e.RETURN_TRUSTED_TYPE||!1,Nt=e.FORCE_BODY||!1,It=e.SANITIZE_DOM!==!1,Lt=e.SANITIZE_NAMED_PROPS||!1,zt=e.KEEP_CONTENT!==!1,Bt=e.IN_PLACE||!1,St=ze(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:nt,Jt=typeof e.NAMESPACE==`string`?e.NAMESPACE:Y,$t=ht(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>M({},Qt)),tn=ht(e,`HTML_INTEGRATION_POINTS`,()=>M({},en));let t=ht(e,`CUSTOM_ELEMENT_HANDLING`,()=>pe(null));if(B=pe(null),D(t,`tagNameCheck`)&&cn(t.tagNameCheck)&&(B.tagNameCheck=t.tagNameCheck),D(t,`attributeNameCheck`)&&cn(t.attributeNameCheck)&&(B.attributeNameCheck=t.attributeNameCheck),D(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(B.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),w(B),H&&(Dt=!1),Pt&&(G=!0),q&&(L=M({},Ke),R=pe(null),q.html===!0&&(M(L,Be),M(R,qe)),q.svg===!0&&(M(L,Ve),M(R,Je),M(R,Xe)),q.svgFilters===!0&&(M(L,He),M(R,Je),M(R,Xe)),q.mathMl===!0&&(M(L,We),M(R,Ye),M(R,Xe))),V.tagCheck=null,V.attributeCheck=null,D(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?V.tagCheck=e.ADD_TAGS:Se(e.ADD_TAGS)&&(L===Ct&&(L=N(L)),M(L,e.ADD_TAGS,X))),D(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?V.attributeCheck=e.ADD_ATTR:Se(e.ADD_ATTR)&&(R===z&&(R=N(R)),M(R,e.ADD_ATTR,X))),D(e,`ADD_FORBID_CONTENTS`)&&Se(e.ADD_FORBID_CONTENTS)&&(J===Vt&&(J=N(J)),M(J,e.ADD_FORBID_CONTENTS,X)),zt&&(L[`#text`]=!0),W&&M(L,[`html`,`head`,`body`]),L.table&&(M(L,[`tbody`]),delete wt.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw A(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw A(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=y;y=e.TRUSTED_TYPES_POLICY;try{b=S(``)}catch(e){throw y=t,e}}else e.TRUSTED_TYPES_POLICY===null?(y=void 0,b=``):(y===void 0&&(y=me()),y&&typeof b==`string`&&(b=S(``)));C&&C(e),on=e},un=M({},[...Ve,...He,...Ue]),dn=M({},[...We,...Ge]),fn=function(e,t,n){return t.namespaceURI===Y?e===`svg`:t.namespaceURI===Kt?e===`svg`&&(n===`annotation-xml`||$t[n]):!!un[e]},pn=function(e,t,n){return t.namespaceURI===Y?e===`math`:t.namespaceURI===qt?e===`math`&&tn[n]:!!dn[e]},mn=function(e,t,n){return t.namespaceURI===qt&&!tn[n]||t.namespaceURI===Kt&&!$t[n]?!1:!dn[e]&&(nn[e]||!un[e])},hn=function(e){let t=se(e),n=E(v(e)),r=p(e),i,a;return r&&_(r)===F.element?(i={namespaceURI:se(r)},a=E(v(r))):(i={namespaceURI:Jt},a=`template`),Xt[t]?t===qt?fn(n,i,a):t===Kt?pn(n,i,a):t===Y?mn(n,i,a):!!(rn===`application/xhtml+xml`&&Xt[t]):!1},Z=function(e){ye(t.removed,{element:e});try{p(e).removeChild(e)}catch{if(ee(e),!p(e))throw A(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},gn=function(e,t,n){try{te(e,t)}catch{try{e.removeAttribute(n)}catch{}}},_n=function(e){xn(e);let t=re(e);t&&T(be(t),e=>{try{ee(e)}catch{}});let n=_(e)===F.element?ie(e):null;if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&gn(e,r,i)}},vn=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}ye(t.removed,{attribute:r||null,from:n});try{r?te(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(G||Pt)try{Z(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},yn=function(e){let t=ie(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||R[X(i)]||gn(e,r,i)}},bn=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=[e];for(;r.length>0;){let e=r.pop();if(t(e)===!1)continue;if(n&&_(e)===F.element){let t=m(e);Q(t)&&r.push(t)}let i=re(e);if(i)for(let e=i.length-1;e>=0;--e)r.push(i[e])}},xn=function(e){bn(e,e=>{_(e)===F.element&&yn(e)})},Sn=function(e){let t=[];return bn(e,e=>{t.push(e)},!0),t},Cn=function(e,t){let n=Ce();T(Sn(e),e=>{_(e)===F.element&&we(n,e)}),T(t,e=>{_(e)===F.element&&!Te(n,e)&&yn(e)})},wn=function(e,n){let r=!1;return T(t.removed,t=>{t.element&&(r||=t.element===e,xn(t.element))}),Cn(e,n),r},Tn=function(e,t){let n=K,r=null,i=()=>(r||(r=Ce(),T(t,e=>{we(r,e)})),r);for(let t=0;;t++){let r=Sn(e),a=[e],o=!1;if(T(r,e=>{_(e)===F.documentFragment?ye(a,e):!o&&!Te(n,e)&&(o=Te(i(),e))}),!o)return;if(t>=8)throw A(`the tree kept changing during in-place sanitization; refusing to return it`);T(a,(t,n)=>{En(t,n>0,e,i())})}},En=function(e,t,n,r){let i=jn(e),a;for(;a=i.nextNode();)Te(r,a)&&!Te(K,a)&&(t&&$(O.uponSanitizeShadowNode,a,null),Hn(a,n),Yn(a,n),Q(a.content)&&Xn(a.content))},Dn=function(e){K&&we(K,e)},On=function(e,t){return U?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},kn=function(e){U&&bn(e,e=>{let t=_(e);if(t===F.processingInstruction||t===F.comment&&k(ct,e.data)){try{ee(e)}catch{}return!1}if(t===F.element){let t=e,n=X(v(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&On(`for`,n)&&t.removeAttribute(`for`)}catch{}}return!0})},An=function(e){let t=null,r=null;if(Nt)e=``+e;else{let t=De(e,/^[\r\n\t ]+/);r=t&&t[0]}rn===`application/xhtml+xml`&&Jt===Y&&(e=``+e+``);let i=y?S(e):e;if(Jt===Y)try{t=new l().parseFromString(i,rn)}catch{}if(!t||!t.documentElement){t=ge.createDocument(Jt,`template`,null);try{t.documentElement.innerHTML=Yt?b:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Jt===Y?Ne.call(t,W?`html`:`body`)[0]:W?t.documentElement:a},jn=function(e){let t=ae?ae(e):e.ownerDocument;return je.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Mn=function(e){return e=Oe(e,j,` `),e=Oe(e,Fe,` `),e=Oe(e,Ie,` `),e},Nn=function(e){Pn(e);let t=e.querySelectorAll?.call(e,`template`);t&&T(t,e=>{Q(e.content)&&Nn(e.content)})},Pn=function(e){e.normalize();let t=ae?ae(e):e.ownerDocument,n=je.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=Mn(r.data),r=n.nextNode()},Fn=function(e){let t=g?g(e):null;return typeof t!=`string`||X(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==ie(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==h(e)||e.childNodes!==re(e)},Q=function(e){if(!h||typeof e!=`object`||!e)return!1;try{return h(e)===F.documentFragment}catch{return!1}},In=function(e){if(!h||typeof e!=`object`||!e)return!1;try{return typeof h(e)==`number`}catch{return!1}};function $(e,n,r){e.length!==0&&T(e,e=>{e.call(t,n,r,on)})}let Ln=function(e,t){return!!(U&&e.hasChildNodes()&&!In(e.firstElementChild)&&k(st,e.textContent)&&k(st,e.innerHTML)||U&&dt[t]&&_(e)===F.element&&se(e)===Y&&(In(e.firstElementChild)||typeof e.textContent==`string`&&k(st,e.textContent))||e.nodeType===F.processingInstruction||U&&e.nodeType===F.comment&&k(ct,e.data))},Rn=function(e,t){return e instanceof RegExp?k(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},zn=function(e,t,n){if(!wt[t]&&Gn(t)&&Rn(B.tagNameCheck,t))return!1;if(zt&&!J[t]&&!J[E(t)]){let t=p(e),r=re(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,ne(e))}}}return Z(e),!0},Bn=function(e,t,n,r){return e.length===0?t:t===n||t===r?N(t):t},Vn=function(e,t){return e===t||p(e)!==null?!1:(Bt&&xn(e),!0)},Hn=function(e,n){if(Dn(e),$(O.beforeSanitizeElements,e,null),Vn(e,n))return!0;if(Fn(e))return Z(e),!0;let r=X(v(e));if(L=Bn(O.uponSanitizeElement,L,Ct,jt),$(O.uponSanitizeElement,e,{tagName:r,allowedTags:L}),Vn(e,n))return!0;if(Ln(e,r))return Z(e),!0;if(wt[r]||!(V.tagCheck instanceof Function&&V.tagCheck(r))&&!L[r]){let t=zn(e,r,n);return t===!1&&($(O.afterSanitizeElements,e,null),Vn(e,n))?!0:t}if(_(e)===F.element&&!hn(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&k(lt,e.innerHTML))return Z(e),!0;if(H&&e.nodeType===F.text){let n=Mn(e.textContent);e.textContent!==n&&(ye(t.removed,{element:e.cloneNode()}),e.textContent=n)}return $(O.afterSanitizeElements,e,null),Vn(e,n)},Un=function(e,t,r){if(Tt[t]||On(t,e)||It&&(t===`id`||t===`name`)&&(r in n||r in sn))return!1;let i=R[t]||V.attributeCheck instanceof Function&&V.attributeCheck(t,e);return Dt&&k(_t,t)||Et&&k(vt,t)?!0:i?Wt[t]||k(St,Oe(r,bt,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&ke(r,`data:`)===0&&Ht[e]||Ot&&!k(yt,Oe(r,bt,``))?!0:!r:Gn(e)&&Rn(B.tagNameCheck,e)&&Rn(B.attributeNameCheck,t,e)||t===`is`&&B.allowCustomizedBuiltInElements&&Rn(B.tagNameCheck,r)},Wn=M({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Gn=function(e){return!Wn[E(e)]&&k(xt,e)},Kn=function(e,t,n,r){if(y&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return S(r);case`TrustedScriptURL`:return fe(r)}return r},qn=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Fn(e)||(Z(e),!1)}catch{return vn(t,e),!1}},Jn=function(e,t){return U&&k(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,t)?!0:E(e)===`attributename`&&De(t,`href`)!==null},Yn=function(e,n){if($(O.beforeSanitizeAttributes,e,null),Vn(e,n))return;let r=e.attributes;if(!r||Fn(e))return;R=Bn(O.uponSanitizeAttribute,R,z,Mt);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:R,forceKeepAttr:void 0},a=r.length,o=X(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=X(s),d=l,f=s===`value`?d:Ae(d),ee=!1;i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,$(O.uponSanitizeAttribute,e,i),f=i.attrValue,Lt&&(u===`id`||u===`name`)&&ke(f,Rt)!==0&&(vn(s,e,n),f=Rt+f,ee=!0),Jn(s,f)?vn(s,e,n):i.forceKeepAttr||(i.keepAttr?!kt&&k(ut,f)?vn(s,e,n):(H&&(f=Mn(f)),Un(o,u,f)?(f=Kn(o,u,c,f),f!==d&&qn(e,s,c,f)&&ee&&ve(t.removed)):vn(s,e,n)):vn(s,e,n))}$(O.afterSanitizeAttributes,e,null),Vn(e,n)},Xn=function(e){let t=null,n=jn(e);for($(O.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if($(O.uponSanitizeShadowNode,t,null),Hn(t,e),Yn(t,e),Q(t.content)&&Xn(t.content),_(t)===F.element){let e=m(t);Q(e)&&(Zn(e),Xn(e))}H&&Pn(e),$(O.afterSanitizeShadowDOM,e,null)},Zn=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Xn(e.shadow);continue}let n=e.node,r=_(n)===F.element,i=re(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=g?g(n):null;if(typeof e==`string`&&X(e)===`template`){let e=n.content;Q(e)&&t.push({node:e,shadow:null})}}if(r){let e=m(n);Q(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Yt=!e,Yt&&(e=``),typeof e!=`string`&&!In(e)&&(e=Le(e),typeof e!=`string`))throw A(`dirty is not a string, aborting`);if(!t.isSupported)return e;At?(L=jt,R=Mt):ln(n),(O.uponSanitizeElement.length>0||O.uponSanitizeAttribute.length>0)&&(L=N(L)),O.uponSanitizeAttribute.length>0&&(R=N(R)),t.removed=[];let c=Bt&&typeof e!=`string`&&In(e),l=[],u=K;if(c){kn(e);let t=v(e);if(typeof t==`string`){let n=X(t);if(!L[n]||wt[n])throw _n(e),A(`root node is forbidden and cannot be sanitized in-place`)}if(Fn(e))throw _n(e),A(`root node is clobbered and cannot be sanitized in-place`);l=Sn(e),K=Ce()}else if(In(e))i=An(``),a=i.ownerDocument.importNode(e,!0),a.nodeType===F.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Zn(i);else{if(!G&&!H&&!W&&e.indexOf(`<`)===-1)return y&&Ft?S(e):e;if(i=An(e),!i)return G?null:Ft?b:``}i&&Nt&&Z(i.firstChild);let d=c?e:i;try{c&&Zn(e);let t=jn(d);for(;o=t.nextNode();)Hn(o,d),Yn(o,d),Q(o.content)&&Xn(o.content);c&&Tn(e,l)}catch(t){throw c&&(_n(e),wn(e,l)),t}finally{K=u}if(c){if(wn(e,l))throw A(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return H&&Nn(e),e}if(G){if(H&&Nn(i),Pt)for(s=Me.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(R.shadowroot||R.shadowrootmode)&&(s=Pe.call(r,s,!0)),s}let f=W?i.outerHTML:i.innerHTML;return W&&L[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&k(at,i.ownerDocument.doctype.name)&&(f=` -`+f),H&&(f=Mn(f)),y&&Ft?S(f):f},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ln(e),At=!0,jt=L,Mt=R},t.clearConfig=function(){on=null,At=!1,jt=null,Mt=null,y=ce,b=``},t.isValidAttribute=function(e,t,n){on||ln({});let r=X(e),i=X(t);return typeof n==`string`&&(Jn(t,n)||!kt&&k(ut,n))?!1:Un(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&D(O,e)&&ye(O[e],t)},t.removeHook=function(e,t){if(D(O,e)){if(t!==void 0){let n=_e(O[e],t);return n===-1?void 0:xe(O[e],n,1)[0]}return ve(O[e])}},t.removeHooks=function(e){D(O,e)&&(O[e]=[])},t.removeAllHooks=function(){O=mt()},t}var _t=gt(),vt=null,yt=[`style`,...ee],bt={svgMaxChars:e.limits.svgMaxChars,svgMaxNodes:e.limits.svgMaxNodes},xt=e=>typeof e==`number`&&Number.isFinite(e)&&e>0;function St(t){bt={svgMaxChars:xt(t?.svgMaxChars)?t.svgMaxChars:e.limits.svgMaxChars,svgMaxNodes:xt(t?.svgMaxNodes)?t.svgMaxNodes:e.limits.svgMaxNodes}}function L(e){if(e.length>bt.svgMaxChars)return!0;let t=0;for(let n=e.indexOf(`<`);n!==-1;n=e.indexOf(`<`,n+1))if(++t>bt.svgMaxNodes)return!0;return!1}function Ct(){if(typeof window>`u`)return null;if(vt)return vt;let e=_t(window),t=f(),n=u.fragmentOnlyRefs.attributes;return e.addHook(`afterSanitizeAttributes`,e=>{let r=e;for(let e of n){let n=r.getAttribute?.(e);n!=null&&!t.test(n)&&r.removeAttribute(e)}for(let e of yt){let t=r.getAttribute?.(e);t!=null&&!m(t)&&r.removeAttribute(e)}for(let e of g){let t=r.getAttribute?.(e);t!=null&&!ae(e,t)&&r.removeAttribute(e)}}),vt=e,vt}function R(e){if(!e||L(e))return``;let t=Ct();return t?t.sanitize(e,{ALLOWED_TAGS:[...u.allowedTags],ALLOWED_ATTR:[...d(),`data-layer`],FORBID_TAGS:[...u.forbiddenTags],ALLOW_ARIA_ATTR:!0,ALLOW_DATA_ATTR:!1}):``}var z=[`fill`,`stroke`,`color`,`stop-color`,`flood-color`,`lighting-color`],B=/* @__PURE__ */ new Set([`none`,`transparent`,`currentcolor`,`inherit`,`unset`,`initial`]),wt=/^(?:#000(?:000)?|black|rgb\(\s*0\s*,\s*0\s*,\s*0\s*\))$/i,Tt=/^#(?:([0-9a-f])([0-9a-f])([0-9a-f])|([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2}))$/i,V=/\s*!important\s*$/i;function Et(e){let t=e.trim();if(wt.test(t))return!0;let n=Tt.exec(t);if(!n)return!1;let r=(n[1]?[n[1]+n[1],n[2]+n[2],n[3]+n[3]]:[n[4],n[5],n[6]]).map(e=>parseInt(e,16));return Math.max(...r)<=64&&Math.max(...r)-Math.min(...r)<=24}function Dt(e){let t=[];for(let n of Array.from(e.attributes)){let e=n.name.toLowerCase();if(z.includes(e)&&t.push(n.value.trim()),e===`style`)for(let e of n.value.split(`;`)){let n=e.indexOf(`:`);n<0||z.includes(e.slice(0,n).trim().toLowerCase())&&t.push(e.slice(n+1).replace(V,``).trim())}}return t}function Ot(e){for(let t of Array.from(e.attributes)){let n=t.name.toLowerCase();if(z.includes(n)&&Et(t.value)&&e.setAttribute(t.name,`currentColor`),n===`style`){let n=t.value.split(`;`).map(e=>{let t=e.indexOf(`:`);if(t<0)return e;let n=e.slice(0,t),r=e.slice(t+1);if(!z.includes(n.trim().toLowerCase()))return e;let i=V.test(r);return Et(r.replace(V,``))?`${n}:currentColor${i?` !important`:``}`:e});e.setAttribute(t.name,n.join(`;`))}}}function kt(e){if(typeof DOMParser>`u`)return null;let t=new DOMParser().parseFromString(e,`image/svg+xml`),n=t.documentElement;return!n||n.nodeName.toLowerCase()!==`svg`||t.getElementsByTagName(`parsererror`).length?null:t}function H(e){let t=kt(e);if(!t||t.getElementsByTagName(`style`).length)return!1;let n=!1;for(let e of[t.documentElement,...Array.from(t.documentElement.getElementsByTagName(`*`))])for(let t of Dt(e))if(Et(t))n=!0;else if(!B.has(t.toLowerCase()))return!1;return n}function U(e){if(!H(e))return e;let t=kt(e);for(let e of[t.documentElement,...Array.from(t.documentElement.getElementsByTagName(`*`))])Ot(e);return new XMLSerializer().serializeToString(t.documentElement)}var W=/* @__PURE__ */ new Map,At=/* @__PURE__ */ new Map,jt=/* @__PURE__ */ new WeakMap;function Mt(e,t,n,r){let i=e.get(n);if(i!==void 0)return i;let a=t.get(n);if(a)return a;let o=r().then(r=>(e.set(n,r),t.delete(n),r),e=>{throw t.delete(n),e});return t.set(n,o),o}function Nt(e,n){if(e.svgContent)return e.svgContent;if(n){let t=jt.get(n);return t||jt.set(n,t={done:/* @__PURE__ */ new Map,pending:/* @__PURE__ */ new Map}),Mt(t.done,t.pending,e.id,()=>n.getSvg(e))}let r=t(e.svgUrl??``);return r?G(r):``}function G(e){return Mt(W,At,e,()=>fetch(e).then(e=>e.text()))}var Pt=[`fill`,`fill-rule`,`fill-opacity`,`stroke`,`stroke-width`,`stroke-linecap`,`stroke-linejoin`,`stroke-miterlimit`,`stroke-dasharray`,`stroke-opacity`,`clip-rule`,`color`,`opacity`];function Ft(e){let t=/]*>/i.exec(e)?.[0]??``,n=``;for(let e of Pt){let r=RegExp(`\\s${e}\\s*=\\s*"([^"]*)"`,`i`).exec(t);r&&(n+=` ${e}="${r[1]}"`)}return n}var It=/* @__PURE__ */ new Map,Lt=/* @__PURE__ */ new Map;function Rt(e){let t=e.indexOf(`>`,e.indexOf(``);return(t>=0&&n>t?e.slice(t+1,n):e).replace(/]*fill="none"[^>]*><\/path>/gi,``).replace(/]*fill="none"[^>]*\/>/gi,``).trim()}function zt(e,t){let n=R(e),r=/viewBox\s*=\s*"([^"]+)"/i.exec(n)?.[1]??t,i={body:Rt(n),viewBox:r};i.rootAttrs=Ft(n);let a=U(n);return a!==n&&(i.monoBody=Rt(a)),i}function Bt(e){if(e.svgContent)return zt(e.svgContent,e.viewBox);let n=t(e.svgUrl??``);if(!n)return{body:``,viewBox:e.viewBox};let r=It.get(n);if(r)return r;let i=Lt.get(n);if(i)return i;let a=Promise.resolve(G(n)).then(t=>{let r=zt(t,e.viewBox);return It.set(n,r),Lt.delete(n),r}).catch(()=>{let t={body:``,viewBox:e.viewBox};return It.set(n,t),Lt.delete(n),t});return Lt.set(n,a),a}function K(e,t){return{display:`inline-block`,width:t,height:t,maskImage:`url("${e}")`,maskSize:`contain`,maskRepeat:`no-repeat`,maskPosition:`center`,WebkitMaskImage:`url("${e}")`,WebkitMaskSize:`contain`,WebkitMaskRepeat:`no-repeat`,WebkitMaskPosition:`center`}}function q(e,t,n,r){let i=K(e,t);switch(r){case`solid`:return{...i,backgroundColor:n,filter:`drop-shadow(0 0 .6px currentColor) drop-shadow(0 0 .6px currentColor) drop-shadow(0 0 .6px currentColor)`};case`duotone`:return{...i,backgroundColor:`var(--accent)`,filter:`drop-shadow(1.5px 1.5px 0 var(--fg))`};case`midtone`:return{...i,backgroundColor:n,opacity:.5};case`halftone`:return{...i,backgroundColor:`transparent`,backgroundImage:`radial-gradient(currentColor 42%, transparent 44%)`,backgroundSize:`3px 3px`,color:n};default:return{...i,backgroundColor:n}}}function J(e){switch(e){case`midtone`:return{opacity:.5};case`duotone`:return{filter:`drop-shadow(1.5px 1.5px 0 var(--fg))`};case`solid`:return{filter:`drop-shadow(0 0 .4px currentColor) drop-shadow(0 0 .4px currentColor)`};default:return{}}}export{St as a,r as c,Nt as i,n as l,q as n,R as o,Bt as r,i as s,J as t}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/ar-DN72wH1H.js b/resources/vendor/react-icon-browser/ar-DN72wH1H.js deleted file mode 100644 index e4465e6..0000000 --- a/resources/vendor/react-icon-browser/ar-DN72wH1H.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -var e={"format.qwik":`Qwik`,"format.ember":`Ember`,"format.elm":`Elm`,"format.css-mask":`قناع CSS`,"format.data-uri":`URI بيانات`,"format.flutter":`Flutter`,"format.swiftui":`SwiftUI`,"export.css-mask":`قناع CSS`,"export.css-maskDesc":`فئة لكل أيقونة، بلون currentColor`,"export.data-uri":`URI بيانات`,"export.data-uriDesc":`خصائص CSS مخصّصة، مع الألوان`,"export.native":`أصول أصلية`,"export.flutter":`تنزيل لـ Flutter`,"export.flutterDesc":`أصول SVG وفهرس Dart، يولّدها js-icon-components`,"export.swiftui":`تنزيل لـ SwiftUI`,"export.swiftuiDesc":`كتالوج ‎.xcassets، يولّدها js-icon-components`,"detail.cssMask":`قناع CSS`,"detail.copyDataUri":`نسخ كـ URI بيانات`,"settings.clearHistoryTitle":`السجل`,"settings.clearHistoryDesc":`يمسح الأيقونات التي عرضتها ونسختها ونزّلتها، والإجراءات الأخيرة في لوحة الأوامر.`,"settings.clearHistoryButton":`مسح السجل`,"settings.clearHistoryToast":`تم مسح السجل`,"detail.tags":`الوسوم`,"kind.label":`عرض`,"kind.icons":`أيقونات`,"kind.illustrations":`رسوم توضيحية`,"toolbar.illustrationOne":`رسم توضيحي`,"toolbar.illustrationMany":`رسوم توضيحية`,"toolbar.filterByTag":`عرض الأيقونات الموسومة بـ «{tag}»`,"toolbar.filterByKeyword":`عرض الأيقونات ذات الكلمة المفتاحية «{keyword}»`,"empty.noIllustrations":`لا توجد رسوم توضيحية تطابق هذه العوامل`,"empty.noIconsTitle":`لا شيء للتصفّح بعد`,"empty.noIconsDesc":`لا توجد مجموعة أيقونات مثبّتة ومحمّلة هنا. عند توفّر واحدة تظهر أيقوناتها في هذه الشبكة.`,"settings.syncAccount":`تُحفظ المفضّلة والمجموعات مع حسابك`,"settings.syncSession":`تُحفظ المفضّلة والمجموعات لهذه الجلسة`,"settings.guestSignIn":`سجّل الدخول لحفظها مع حسابك.`,"settings.factoryDescHost":`يعيد إعدادات هذا المتصفّح وعوامل التصفية إلى الافتراضي. تبقى المفضّلة والمجموعات كما هي.`,"settings.factoryConfirmBodyHost":`ستُعاد التفضيلات وعوامل التصفية والمظهر والموافقة والجولة إلى الإعدادات الافتراضية في هذا المتصفّح. تبقى المفضّلة والمجموعات والسجل حيث تُحفظ.`,"settings.deleteLibraryTitle":`حذف مكتبتي`,"settings.deleteLibraryDesc":`يزيل كل المفضّلة والمجموعات المحفوظة لك هنا.`,"settings.deleteLibraryButton":`حذف…`,"settings.deleteLibraryConfirmTitle":`حذف مكتبتك؟`,"settings.deleteLibraryConfirmBody":`تُزال كل المفضّلة والمجموعات، هنا وعلى الخادم. يبقى السجل والإعدادات. لا يمكن التراجع عن هذا.`,"settings.deleteLibraryConfirmLabel":`حذف مكتبتي`,"settings.deleteLibraryToast":`تم حذف المكتبة`,"detail.snippetFormat":`تنسيق المقتطف`,"console.code":`الكود`,"palette.results":`النتائج`,"appearance.adaptMono":`تكييف الأيقونات السوداء في الوضع الداكن`,"app.documentTitle":`Ichava Browser — كل أيقونة يحتاجها تطبيق Laravel الخاص بك`,"sort.name":`الاسم`,"sort.package":`الحزمة`,"sort.category":`الفئة`,"treatment.default":`خطّي`,"treatment.defaultDesc":`الخطوط الأصلية للحزمة`,"treatment.solid":`مُصمت`,"treatment.solidDesc":`وزن أثقل ومملوء`,"treatment.duotone":`ثنائي اللون`,"treatment.duotoneDesc":`طبقة ظل بلون التمييز`,"treatment.midtone":`نصف درجة`,"treatment.midtoneDesc":`حبر مخفّف بنسبة 50%`,"treatment.halftone":`نقطي`,"treatment.halftoneDesc":`تعبئة نقطية بطابع قديم`,"unit.pxValue":`{n} بكسل`,"common.cancel":`إلغاء`,"common.create":`إنشاء`,"common.clear":`مسح`,"common.all":`الكل`,"common.none":`لا شيء`,"common.copy":`نسخ`,"common.download":`تنزيل`,"common.favorite":`مفضّل`,"common.favorited":`في المفضلة`,"common.close":`إغلاق`,"common.signIn":`تسجيل الدخول`,"common.signOut":`تسجيل الخروج`,"common.search":`ابحث عن أيقونات، إجراءات…`,"header.favorites":`المفضّلة`,"header.history":`السجل`,"header.collections":`المجموعات`,"header.notifications":`الإشعارات`,"header.toggleTheme":`تبديل المظهر`,"header.settings":`الإعدادات`,"header.fullscreen":`ملء الشاشة`,"header.exitFullscreen":`إنهاء ملء الشاشة`,"header.commandPalette":`لوحة الأوامر`,"header.gridView":`عرض شبكي`,"header.listView":`عرض قائمة`,"sidebar.packages":`الحزم`,"sidebar.categories":`الفئات`,"sidebar.filterCategories":`تصفية الفئات…`,"sidebar.filterIcons":`تصفية الأيقونات…`,"sidebar.expandAll":`توسيع الكل`,"sidebar.collapseAll":`طي الكل`,"variant.all":`الكل`,"variant.outline":`مُحدّد`,"variant.filled":`مملوء`,"variant.color":`ملوّن`,"toolbar.sort":`ترتيب`,"toolbar.size":`الحجم`,"toolbar.stroke":`السُّمك`,"toolbar.color":`اللون`,"toolbar.treatment":`نمط الأيقونة`,"toolbar.export":`تصدير`,"toolbar.copyNames":`نسخ الأسماء`,"toolbar.newCollection":`مجموعة جديدة`,"toolbar.selected":`تم تحديد {n}`,"appearance.title":`المظهر`,"appearance.subtitle":`السمة · العلامة · التكبير`,"appearance.theme":`السمة`,"appearance.light":`فاتح`,"appearance.dark":`داكن`,"appearance.brandAccent":`لون العلامة`,"appearance.customHex":`لون مخصّص`,"appearance.radius":`الاستدارة`,"appearance.size":`تكبير الواجهة`,"appearance.density":`كثافة الواجهة`,"appearance.compact":`مضغوط`,"appearance.comfy":`مريح`,"appearance.reduceMotion":`تقليل الحركة`,"appearance.iconLabels":`تسميات الأيقونات`,"appearance.language":`اللغة`,"appearance.footer":`ينطبق على التطبيق فقط. يُحفظ في وحدة التخزين المختارة.`,"account.workspace":`مساحة العمل`,"account.account":`الحساب`,"account.profile":`الملف الشخصي والتفضيلات`,"account.sharedCollections":`المجموعات المشتركة`,"profile.signOutTitle":`تسجيل الخروج؟`,"profile.signOutBody":`ستحتفظ بالمفضّلة والعوامل المحلية، لكن المجموعات المشتركة وميزات الفريق تتطلب تسجيل الدخول مرة أخرى.`,"profile.signedOut":`تم تسجيل الخروج`,"profile.switched":`تم التبديل إلى {name}`,"profile.title":`الملف الشخصي`,"profile.account":`الحساب`,"profile.appSettings":`إعدادات التطبيق`,"shared.title":`المجموعات المشتركة`,"shared.count":`{n} مشتركة`,"shared.empty":`لا توجد مجموعات مشتركة بعد.`,"shared.manageAccess":`إدارة الوصول`,"empty.noResults":`لا توجد أيقونات تطابق عوامل التصفية.`,"empty.noFavorites":`لا مفضّلات بعد.`,"empty.onboardTitle":`اختر حزمًا للتصفّح`,"empty.onboardDesc":`تظهر الأيقونات بمجرد اختيار حزمة مثبّتة واحدة على الأقل.`,"empty.selectAllPackages":`اختيار كل الحزم`,"empty.noMatchSearch":`لا توجد أيقونات تطابق «{q}»`,"empty.noMatchFilters":`لا توجد أيقونات تطابق هذه العوامل`,"empty.tryDifferent":`جرّب مصطلحًا آخر أو نمطًا آخر، أو امسح عوامل التصفية النشطة.`,"empty.clearFilters":`مسح العوامل`,"toolbar.iconOne":`أيقونة`,"toolbar.iconMany":`أيقونات`,"toolbar.removeFilter":`إزالة العامل`,"toolbar.namesCopied":`تم نسخ {n} من الأسماء`,"toolbar.exportedToast":`تم تصدير {n} أيقونة — {label}`,"toolbar.treatmentEngine":`محرّك المعالجات`,"toolbar.toggleSortOrder":`تبديل ترتيب الفرز`,"toolbar.gridIconSize":`حجم الأيقونة في الشبكة`,"toolbar.sizeUnit":`وحدة الحجم`,"toolbar.strokeTitle":`سُمك الخط — يعيد كتابة الخط في الشبكة والتفاصيل والتصدير`,"toolbar.previewColor":`لون المعاينة`,"toolbar.resetFilters":`إعادة ضبط العوامل`,"toolbar.resetTitle":`إعادة ضبط جميع العوامل؟`,"toolbar.resetBody":`يعود البحث والفئات والأنماط والفرز والصفحة والتحديد ولون المعاينة إلى الإعدادات الافتراضية. المفضّلة والمجموعات والمظهر تبقى دون تغيير.`,"toolbar.resetConfirm":`إعادة ضبط العوامل`,"toolbar.resetToast":`تمت إعادة ضبط العوامل`,"footer.noResults":`لا نتائج`,"footer.range":`{start}–{end} من {total}`,"footer.perPageLabel":`النتائج لكل صفحة`,"footer.perPage":`{n} / صفحة`,"footer.prevPage":`الصفحة السابقة`,"footer.nextPage":`الصفحة التالية`,"list.copiedToast":`تم نسخ {name}`,"sidebar.scopeIcons":`الأيقونات`,"sidebar.scopePackages":`الحزم`,"sidebar.scopeCategories":`الفئات`,"sidebar.scopeAll":`الكل`,"sidebar.notInstalled":`غير مثبّتة`,"sidebar.inView":`المعروضة`,"sidebar.selected":`المحدّدة`,"sidebar.loadedIcons":`في هذا الفهرس`,"sidebar.ecosystemTotal":`إجمالي المنظومة`,"sidebar.favorites":`المفضّلة`,"sidebar.filterPackages":`تصفية الحزم…`,"sidebar.searchEverything":`ابحث في كل شيء…`,"sidebar.searchScope":`نطاق البحث`,"header.filtersPackages":`العوامل والحزم`,"header.toggleSidebar":`تبديل الشريط الجانبي`,"header.devtools":`Ichava DevTools`,"palette.placeholder":`اكتب أمرًا أو ابحث عن الأيقونات…`,"palette.recent":`الأخيرة`,"palette.actions":`الإجراءات`,"palette.icons":`الأيقونات`,"palette.openHint":`فتح`,"palette.noMatches":`لا توجد نتائج لـ «{q}»`,"palette.navigate":`تنقّل`,"palette.select":`تحديد`,"palette.close":`إغلاق`,"palette.toggleTheme":`تبديل السمة`,"palette.openSettings":`فتح الإعدادات`,"palette.openFavorites":`فتح المفضّلة`,"palette.openHistory":`فتح السجل`,"palette.openCollections":`فتح المجموعات`,"palette.switchListView":`التبديل إلى عرض القائمة`,"palette.switchGridView":`التبديل إلى عرض الشبكة`,"palette.resetFilters":`إعادة ضبط جميع العوامل`,"palette.selectAll":`تحديد كل النتائج المطابقة`,"selectAll.confirmTitle":`تحديد كل الأيقونات البالغ عددها {n}؟`,"selectAll.confirmBody":`لا يوجد بحث أو عامل تصفية نشط، لذا سيتم تحديد كل الأيقونات في الكتالوج.`,"selectAll.confirmLabel":`تحديد الكل`,"palette.openDevtools":`فتح Ichava DevTools`,"common.remove":`إزالة`,"settings.appearanceHintPre":`السمة واللون والاستدارة والحجم والكثافة والحركة والتسميات موجودة في قائمة `,"settings.appearanceHintPost":` في الرأس.`,"settings.behavior":`السلوك`,"settings.perPageTitle":`الأيقونات لكل صفحة`,"settings.perPageDesc":`حجم ترقيم صفحات الشبكة.`,"settings.copyFormatTitle":`صيغة النسخ الافتراضية`,"settings.copyFormatDesc":`تُستخدم عند النقر للنسخ على البطاقات.`,"settings.storageTitle":`مُشغّل التخزين`,"settings.storageDesc":`مكان حفظ التفضيلات والحالة.`,"settings.storageLocal":`محلي`,"settings.storageSession":`جلسة`,"settings.tourTitle":`جولة المنتج`,"settings.tourDesc":`إعادة تشغيل الجولة التعريفية.`,"settings.replayTour":`إعادة الجولة`,"settings.factoryTitle":`إعادة ضبط المصنع`,"settings.factoryDesc":`يعيد كل إعداد وعامل تصفية ومفضّلة ومجموعة إلى الإعدادات الافتراضية.`,"settings.factoryConfirmTitle":`إعادة ضبط كل شيء إلى إعدادات المصنع؟`,"settings.factoryConfirmBody":`ستُعاد جميع التفضيلات وعوامل التصفية والمفضّلة والسجل والمجموعات وتخصيص العلامة والموافقة واللقطات المحفوظة إلى الإعدادات الافتراضية. لا يمكن التراجع عن هذا.`,"settings.factoryConfirmLabel":`إعادة ضبط كل شيء`,"settings.factoryToast":`تمت إعادة ضبط كل شيء إلى الإعدادات الافتراضية`,"settings.resetEverything":`إعادة ضبط كل شيء…`,"settings.account":`الحساب`,"settings.syncNote":`تُحفظ المفضّلة والمجموعات في هذا المتصفّح فقط`,"settings.guestNote":`أنت تتصفّح كضيف. تُحفظ التفضيلات والمفضّلة والمجموعات في هذا المتصفّح فقط.`,"settings.aboutLink":`حول Ichava →`,"consent.ariaLabel":`ملفات تعريف الارتباط والتخزين`,"consent.title":`ملفات تعريف الارتباط والتخزين`,"consent.body":`يحفظ Ichava تفضيلاتك ومفضّلاتك في مُشغّل التخزين الذي اخترته، بالإضافة إلى أحداث استخدام مجهولة. لا مُتتبّعات من جهات خارجية.`,"consent.essentialOnly":`الأساسية فقط`,"consent.acceptAll":`قبول الكل`,"consent.move":`نقل الإشعار`,"consent.moveHint":`اسحبه، أو استخدم مفاتيح الأسهم، لنقله. يعيده مفتاح Home إلى مكانه.`,"about.browser":`Browser`,"about.craftedBy":`من صنع`,"about.statIcons":`أيقونات مفهرسة`,"about.statSets":`مجموعات أيقونات`,"about.statLicense":`الترخيص`,"library.favorites":`المفضّلة`,"library.history":`السجل`,"library.collections":`المجموعات`,"library.emptyFavorites":`لا مفضّلات بعد — مرّر فوق أيقونة وانقر على القلب.`,"library.emptyHistory":`لا نشاط بعد — تظهر هنا المشاهدات والنسخ والتنزيلات.`,"library.emptyCollections":`لا مجموعات بعد — أنشئ واحدة بالأعلى.`,"library.clearHistory":`مسح السجل`,"library.newCollectionPlaceholder":`اسم المجموعة…`,"library.seededWith":`تبدأ بـ {n} أيقونة`,"library.iconCount":`{n} أيقونة`,"library.teamBadge":`فريق`,"library.viewerBadge":`قارئ`,"library.copyNamesTitle":`نسخ أسماء الأيقونات`,"library.deleteCollection":`حذف المجموعة`,"tile.openDetail":`فتح التفاصيل`,"tile.copyFormat":`نسخ {format}`,"tile.copyName":`نسخ الاسم`,"tile.copiedName":`تم نسخ الاسم`,"tile.copyPermalink":`نسخ الرابط الدائم`,"tile.permalinkCopied":`تم نسخ الرابط الدائم`,"tile.select":`تحديد`,"tile.deselect":`إلغاء التحديد`,"tile.addFavorite":`إضافة إلى المفضّلة`,"tile.removeFavorite":`إزالة من المفضّلة`,"tile.favoritedAria":`في المفضّلة`,"tile.selectedAria":`محدّد`,"detail.previewOnly":`معاينة فقط — الشبكة لا تتأثّر`,"detail.scaledToFit":`مُحجَّم`,"detail.actual":`الفعلي`,"detail.size":`الحجم`,"detail.previewSize":`حجم المعاينة`,"detail.unit":`الوحدة`,"detail.color":`اللون`,"detail.stroke":`السُّمك`,"detail.motion":`الحركة`,"detail.searchPresets":`ابحث في {n} إعدادًا مسبقًا…`,"detail.noPresets":`لا توجد إعدادات مسبقة.`,"detail.easing":`التخفيف`,"detail.play":`تشغيل`,"detail.pause":`إيقاف مؤقت`,"detail.speed":`السرعة`,"detail.copied":`تم نسخ {label}`,"detail.download":`تنزيل`,"detail.keyframesAria":`JSON للإطارات المفتاحية`,"detail.keyframesValid":`{n} إطارات — الصق Keyframe[] أو { keyframes: […] }`,"detail.keyframesInvalid":`JSON غير صالح — يتوقّع مصفوفة من كائنات الإطارات`,"detail.related":`أيقونات ذات صلة`,"detail.addToCollection":`أضف إلى مجموعة`,"detail.newCollection":`+ جديدة`,"detail.noSvg":`لا يتوفّر SVG لهذه الأيقونة`,"detail.addedTo":`تمت الإضافة إلى {name}`,"detail.removedFrom":`تمت الإزالة من {name}`,"detail.motionDefault":`افتراضي`,"console.copyCode":`نسخ الكود`,"console.copy":`نسخ`,"console.copied":`تم النسخ`,"help.title":`المساعدة وحول`,"help.about":`حول Ichava`,"help.docs":`الوثائق`,"help.replayTour":`إعادة جولة المنتج`,"help.shortcuts":`اختصارات لوحة المفاتيح`,"notifications.clearAll":`مسح الكل`,"notifications.empty":`أنت على اطّلاع بكل شيء.`,"team.title":`الفريق`,"team.online":`{n} متصل`,"team.onlineNow":`متصل الآن`,"team.away":`غير متواجد`,"team.offline":`غير متصل`,"team.invite":`دعوة…`,"color.previewColor":`لون المعاينة`,"color.resetToTheme":`إعادة الضبط إلى السمة`,"color.opacity":`العتامة — 0–100 %`,"contextMenu.actions":`إجراءات`,"boot.loadingCatalog":`جارٍ تحميل الكتالوج`,"boot.ready":`جاهز`,"sidebar.iconVariant":`نمط الأيقونة`,"auth.signInTo":`سجّل الدخول إلى {brand}`,"auth.needsAccount":`يحتاج إلى حساب.`,"auth.emailCode":`سنرسل إليك رمزًا لمرة واحدة عبر البريد — بدون كلمة مرور.`,"auth.emailPlaceholder":`you@company.com`,"auth.sendCode":`إرسال الرمز`,"auth.newHere":`جديد هنا؟`,"auth.createAccount":`إنشاء حساب`,"auth.enterCode":`أدخل رمزك`,"auth.sentTo":`أُرسل إلى`,"auth.demoHint":`تجريبي: أي رمز يسجّل الدخول — جرّب 000000 لرؤية حالة الفشل.`,"auth.digit":`الرقم {n}`,"auth.codeFailed":`لم ينجح هذا الرمز. حاول مجددًا.`,"auth.verify":`تحقّق وسجّل الدخول`,"auth.changeEmail":`→ تغيير البريد`,"auth.resendIn":`إعادة الإرسال خلال {n}ث`,"auth.resendCode":`إعادة إرسال الرمز`,"auth.createTitle":`أنشئ حسابك`,"auth.createBlurb":`انضم لفتح المجموعات والمشاركة وميزات الفريق. سنؤكّد بريدك برمز لمرة واحدة.`,"auth.firstName":`الاسم الأول`,"auth.lastName":`اسم العائلة`,"auth.passwordPlaceholder":`8 أحرف على الأقل`,"auth.togglePassword":`إظهار أو إخفاء كلمة المرور`,"auth.haveAccount":`لديك حساب بالفعل؟`,"invite.title":`الدعوة إلى مساحة العمل`,"invite.workspace":`مساحة العمل`,"invite.emailPlaceholder":`teammate@company.com`,"invite.roleEditor":`محرّر — يمكنه الإضافة والمشاركة`,"invite.roleViewer":`قارئ — قراءة فقط`,"invite.role":`الدور`,"invite.linkExpires":`ينتهي الرابط`,"invite.exp24h":`24 س`,"invite.exp7d":`7 أيام`,"invite.exp30d":`30 يومًا`,"invite.expNever":`أبدًا`,"invite.blurb":`يحصل المدعوّون على الوصول إلى المجموعات المشتركة في مساحة العمل هذه. يمكن للمالك تغيير الأدوار لاحقًا؛ ويمكن إبطال الروابط من الإعدادات.`,"invite.generateLink":`إنشاء رابط`,"invite.linkCopied":`تم نسخ رابط الدعوة`,"invite.yourTeammate":`زميلك`,"invite.sentNotification":`أُرسلت الدعوة إلى {to} ({role})`,"invite.sent":`تم إرسال الدعوة`,"invite.sendInvite":`إرسال الدعوة`,"access.addPeople":`أضف أشخاصًا أو فريقك`,"access.searchTeammates":`ابحث عن الزملاء بالاسم أو البريد…`,"access.onlyYou":`أنت وحدك من لديه وصول. أضف زملاء أعلاه، أو شارك مع الفريق بأكمله.`,"access.saveAccess":`حفظ الوصول`,"access.shareEntireTeam":`المشاركة مع الفريق بأكمله`,"access.shareLinkCopied":`تم نسخ رابط المشاركة`,"access.copyLinkInstead":`نسخ الرابط بدلاً من ذلك`,"shared.inviteTeam":`دعوة الفريق…`,"shared.viewer":`قارئ`,"shared.editor":`محرّر`,"tour.skip":`تخطّي`,"tour.back":`رجوع`,"tour.stepOf":`الخطوة {n} من {total}`,"tour.next":`التالي`,"tour.getStarted":`ابدأ`,"tour.s1Title":`مرحبًا بك في Ichava Browser`,"tour.s1Body":`كل أيقونة في تطبيق Laravel لديك — قابلة للبحث والمعاينة وجاهزة للنسخ. هذه الجولة التي تستغرق 30 ثانية تعرّفك بكل شيء. يمكنك إعادتها في أي وقت من الإعدادات.`,"tour.s2Title":`اعثر على أي أيقونة بسرعة`,"tour.s2Body":`ابحث بالاسم أو الوسم، وصفِّ حسب الحزمة والفئة والنمط في الشريط الجانبي، أو اضغط ⌘K للوحة الأوامر.`,"tour.s3Title":`أعِد التنسيق حيًّا`,"tour.s3Body":`المعالجات والحجم والسُّمك واللون وإعدادات الحركة تعيد تنسيق كل أيقونة في مكانها — تتحدّث الشبكة أثناء الضبط.`,"tour.s4Title":`انسخ لمنظومتك`,"tour.s4Body":`افتح أي أيقونة لـ Blade وLivewire وVue وReact وSvelte وWeb Component وSVG الخام والمزيد — نقرة واحدة للنسخ.`,"tour.s5Title":`احفظ وشارك`,"tour.s5Body":`أضِف الأيقونات إلى المفضّلة، وجمّعها في مجموعات، وصدّر sprite أو manifest أو ZIP. سجّل الدخول للمزامنة عبر الأجهزة.`,"task.working":`جارٍ العمل…`,"task.export":`جارٍ تصدير {n} أيقونة…`,"task.copyNames":`جارٍ جمع {n} من أسماء الأيقونات…`,"task.selectAll":`جارٍ تحديد كل الأيقونات المطابقة…`,"export.files":`ملفات SVG`,"export.filesDesc":`تنزيلات ‎.svg فردية`,"export.sprite":`ملف sprite لـ SVG`,"export.spriteDesc":`ورقة واحدة`,"export.manifest":`بيان JSON`,"export.manifestDesc":`المعرّفات والحزم والفئات`,"export.zip":`حزمة ZIP`,"export.zipDesc":`Sprite + البيان + الملفات`,"copyFormat.svg":`SVG خام`,"copyFormat.blade":`وسم Blade`,"copyFormat.vue":`مقتطف Vue`,"copyFormat.name":`اسم الأيقونة`,"snippetTab.motion":`الحركة`,"snippetTab.helper":`دالة مساعدة`,"snippetTab.bladeGeneric":`Blade (عام)`,"snippetTab.webcomponent":`مكوّن ويب`,"snippetTab.name":`الاسم`,"format.svg":`SVG خام`,"format.motion":`الحركة`,"format.helper":`دالة ichava() المساعدة`,"format.blade":`وسم Blade`,"format.bladeGeneric":`Blade عام`,"format.livewire":`Livewire`,"format.alpine":`Alpine.js`,"format.vue":`Vue`,"format.react":`React`,"format.svelte":`Svelte`,"format.webcomponent":`مكوّن ويب`,"format.reactNative":`React Native`,"format.angular":`Angular`,"format.solid":`Solid`,"format.preact":`Preact`,"format.astro":`Astro`,"format.api":`رابط REST`,"format.name":`اسم الأيقونة`,"about.landing":`الموقع`,"clipboard.copyFailed":`فشل النسخ — حدّد وانسخ يدويًا`,"clipboard.copied":`تم النسخ إلى الحافظة`};export{e as default}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/avatar-D043d4aw.js b/resources/vendor/react-icon-browser/avatar-D043d4aw.js deleted file mode 100644 index faec241..0000000 --- a/resources/vendor/react-icon-browser/avatar-D043d4aw.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{D as e}from"./chromeIcons-ITgd2uHk.js";import{t}from"./cx-B63ov-ZV.js";import{useState as n}from"react";import{jsx as r,jsxs as i}from"react/jsx-runtime";var a={xs:`size-1.5`,sm:`size-2`,md:`size-2.5`,lg:`size-3`,xl:`size-3.5`,"2xl":`size-4`,"3xl":`size-4.5`,"4xl":`size-5`},o=({size:e,status:n,className:o})=>/* @__PURE__ */ r(`span`,{className:t(`absolute right-0 bottom-0 flex justify-center rounded-full ring-[1.5px] ring-bg-primary`,n===`online`?`bg-fg-success-secondary`:`bg-utility-neutral-300`,a[e],o),style:{backgroundImage:`radial-gradient(43.75% 43.75% at 50% 28.75%, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.00) 100%), radial-gradient(50% 50% at 50% 50%, rgba(255, 255, 255, 0.00) 74.66%, rgba(255, 255, 255, 0.18) 100%), radial-gradient(75% 75% at 50% 0%, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.00) 50%, rgba(255, 255, 255, 0.08) 99%, rgba(255, 255, 255, 0.00) 100%)`},children:/* @__PURE__ */ i(`svg`,{viewBox:`0 0 7.2 2.85`,fill:`none`,className:`mt-[10%] h-[20%] w-[60%]`,children:[/* @__PURE__ */ r(`path`,{d:`M7.2 1.83107C7.2 2.84235 5.58823 2.19729 3.6 2.19729C1.61177 2.19729 0 2.84235 0 1.83107C0 0.8198 1.61177 0 3.6 0C5.58823 0 7.2 0.8198 7.2 1.83107Z`,fill:`url(#reflection-gradient)`,fillOpacity:`0.4`}),/* @__PURE__ */ r(`defs`,{children:/* @__PURE__ */ i(`linearGradient`,{id:`reflection-gradient`,x1:`3.6`,y1:`0`,x2:`3.6`,y2:`2.4`,gradientUnits:`userSpaceOnUse`,children:[/* @__PURE__ */ r(`stop`,{stopColor:`white`}),/* @__PURE__ */ r(`stop`,{offset:`1`,stopColor:`white`,stopOpacity:`0.1`})]})})]})}),s={xs:`size-2.5`,sm:`size-3`,md:`size-3.5`,lg:`size-4`,xl:`size-4.5`,"2xl":`size-5`,"3xl":`size-6`,"4xl":`size-8`},c=({size:e,className:n})=>/* @__PURE__ */ i(`svg`,{className:t(`z-10 text-utility-blue-500`,s[e],n),viewBox:`0 0 10 10`,fill:`none`,children:[/* @__PURE__ */ r(`path`,{d:`M7.72237 1.77098C7.81734 2.00068 7.99965 2.18326 8.2292 2.27858L9.03413 2.61199C9.26384 2.70714 9.44635 2.88965 9.5415 3.11936C9.63665 3.34908 9.63665 3.60718 9.5415 3.83689L9.20833 4.64125C9.11313 4.87106 9.113 5.12943 9.20863 5.35913L9.54122 6.16325C9.58839 6.27702 9.61268 6.39897 9.6127 6.52214C9.61272 6.6453 9.58847 6.76726 9.54134 6.88105C9.4942 6.99484 9.42511 7.09823 9.33801 7.18531C9.2509 7.27238 9.14749 7.34144 9.03369 7.38854L8.22934 7.72171C7.99964 7.81669 7.81706 7.99899 7.72174 8.22855L7.38833 9.03348C7.29318 9.26319 7.11067 9.4457 6.88096 9.54085C6.65124 9.636 6.39314 9.636 6.16343 9.54085L5.35907 9.20767C5.12935 9.11276 4.87134 9.11295 4.64177 9.20821L3.83684 9.54115C3.60725 9.63608 3.34937 9.636 3.11984 9.54092C2.89032 9.44585 2.70791 9.26356 2.6127 9.03409L2.27918 8.22892C2.18421 7.99923 2.0019 7.81665 1.77235 7.72133L0.967421 7.38792C0.737807 7.29281 0.555355 7.11041 0.460169 6.88083C0.364983 6.65125 0.364854 6.39327 0.45981 6.16359L0.792984 5.35924C0.8879 5.12952 0.887707 4.87151 0.792445 4.64193L0.459749 3.83642C0.41258 3.72265 0.388291 3.60069 0.388272 3.47753C0.388252 3.35436 0.412501 3.2324 0.459634 3.11861C0.506767 3.00482 0.57586 2.90144 0.662965 2.81436C0.75007 2.72728 0.853479 2.65822 0.967283 2.61113L1.77164 2.27795C2.00113 2.18306 2.1836 2.00099 2.27899 1.7717L2.6124 0.966768C2.70755 0.737054 2.89006 0.554547 3.11978 0.459397C3.34949 0.364246 3.60759 0.364246 3.83731 0.459397L4.64166 0.792571C4.87138 0.887487 5.12939 0.887293 5.35897 0.792031L6.16424 0.459913C6.39392 0.364816 6.65197 0.364836 6.88164 0.459968C7.11131 0.555099 7.29379 0.737554 7.38895 0.967208L7.72247 1.77238L7.72237 1.77098Z`,className:`fill-current`}),/* @__PURE__ */ r(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M6.95829 3.68932C7.02509 3.58439 7.04747 3.45723 7.02051 3.3358C6.99356 3.21437 6.91946 3.10862 6.81454 3.04182C6.70961 2.97502 6.58245 2.95264 6.46102 2.97959C6.33959 3.00655 6.23384 3.08064 6.16704 3.18557L4.33141 6.06995L3.49141 5.01995C3.41375 4.92281 3.30069 4.8605 3.17709 4.84673C3.05349 4.83296 2.92949 4.86885 2.83235 4.94651C2.73522 5.02417 2.67291 5.13723 2.65914 5.26083C2.64536 5.38443 2.68125 5.50843 2.75891 5.60557L4.00891 7.16807C4.0555 7.22638 4.11533 7.27271 4.18344 7.30323C4.25154 7.33375 4.32595 7.34757 4.40047 7.34353C4.47499 7.3395 4.54747 7.31773 4.61188 7.28004C4.67629 7.24234 4.73077 7.18981 4.77079 7.12682L6.95829 3.68932Z`,fill:`white`})]}),l=({count:e,className:n})=>/* @__PURE__ */ r(`div`,{className:t(`absolute right-0 bottom-0 p-px`,n),children:/* @__PURE__ */ r(`div`,{className:`flex size-3.5 items-center justify-center rounded-full bg-fg-error-primary text-center text-[10px] leading-[13px] font-bold text-white`,children:e})}),u={xs:{root:`size-6`,rootWithBorder:`p-px`,initials:`text-xs font-semibold`,icon:`size-4`},sm:{root:`size-8`,rootWithBorder:`p-px`,initials:`text-sm font-semibold`,icon:`size-5`},md:{root:`size-10`,rootWithBorder:`p-px`,initials:`text-md font-semibold`,icon:`size-6`},lg:{root:`size-12`,rootWithBorder:`p-[1.5px]`,initials:`text-lg font-semibold`,icon:`size-7`},xl:{root:`size-14`,rootWithBorder:`p-0.5`,initials:`text-xl font-semibold`,icon:`size-8`},"2xl":{root:`size-16`,rootWithBorder:`p-0.5`,initials:`text-display-xs font-semibold`,icon:`size-8`}},d=({size:a=`md`,src:s,alt:d,initials:f,placeholder:p,placeholderIcon:m,border:h,badge:g,status:_,verified:v,count:y,focusable:b=!1,rounded:x=!0,className:S,contentClassName:C})=>{let[w,T]=n(!1),E=s&&!w;return/* @__PURE__ */ i(`div`,{"data-avatar":!0,className:t(`relative inline-flex shrink-0 rounded-[7px]`,x&&`rounded-full`,b&&`outline-transparent group-focus-visible:outline-2 group-focus-visible:outline-offset-2 group-focus-visible:outline-focus-ring`,h&&`ring-1 ring-secondary_alt`,h&&u[a].rootWithBorder,u[a].root,S),children:[/* @__PURE__ */ r(`div`,{className:t(`relative inline-flex size-full shrink-0 items-center justify-center overflow-hidden rounded-md bg-tertiary outline-[0.5px] -outline-offset-[0.5px] outline-black/16 before:inset-[0.5px]`,x&&`rounded-full`,E&&a!==`xs`&&`before:absolute before:inset-0 before:rounded-[inherit] before:border before:border-white/32 before:mask-[linear-gradient(to_bottom,black_0%,transparent_25%,transparent_75%,black_100%)]`,C),children:E?/* @__PURE__ */ r(`img`,{"data-avatar-img":!0,className:`size-full object-cover`,src:s,alt:d,onError:()=>T(!0)}):f?/* @__PURE__ */ r(`span`,{className:t(`text-quaternary`,u[a].initials),children:f}):m?/* @__PURE__ */ r(m,{className:t(`text-fg-quaternary`,u[a].icon)}):p||/* @__PURE__ */ r(e,{className:t(`text-fg-quaternary`,u[a].icon)})}),_?/* @__PURE__ */ r(o,{status:_,size:a}):v?/* @__PURE__ */ r(c,{size:a,className:t(`absolute right-0 bottom-0`,a===`xs`&&`-right-px -bottom-px`)}):y?/* @__PURE__ */ r(l,{count:y}):g]})};export{d as t}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/chromeIcons-ITgd2uHk.js b/resources/vendor/react-icon-browser/chromeIcons-ITgd2uHk.js deleted file mode 100644 index fd0c263..0000000 --- a/resources/vendor/react-icon-browser/chromeIcons-ITgd2uHk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{createContext as e,createElement as t,forwardRef as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useSyncExternalStore as s}from"react";import{create as c}from"zustand";import{createJSONStorage as l,persist as u}from"zustand/middleware";import{jsx as d}from"react/jsx-runtime";var f=(e,t)=>e.includes(t)?e.filter(e=>e!==t):[...e,t],p=class e{#e;constructor(e){this.#e=e,Object.freeze(this)}static from(t){return new e({...t})}#t(t){return new e({...this.#e,...t})}search(e){return this.#t({search:e,page:1})}clearSearch(){return this.#t({search:``,page:1})}togglePackage(e){return this.#t({packages:f(this.#e.packages,e),page:1})}selectAllPacks(e){return this.#t({packages:e,page:1})}clearPacks(){return this.#t({packages:[],page:1})}toggleCategory(e){return this.#t({categories:f(this.#e.categories,e),page:1})}toggleSub(e,t){return this.#t({subs:f(this.#e.subs,`${e}/${t}`),page:1})}clearCategories(){return this.#t({categories:[],subs:[],page:1})}toggleVariant(e){return this.#t({variant:this.#e.variant===e?null:e,page:1})}sortBy(e){return this.#t({sortBy:e})}toggleOrder(){return this.#t({sortOrder:this.#e.sortOrder===`asc`?`desc`:`asc`})}page(e){return this.#t({page:e})}nextPage(e){return this.#t({page:Math.min(e,this.#e.page+1)})}prevPage(){return this.#t({page:Math.max(1,this.#e.page-1)})}perPage(e){return this.#t({perPage:e,page:1})}kind(e){return this.#e.kind===e?this:this.#t({kind:e,categories:[],subs:[],variant:null,tags:[],keywords:[],page:1})}toggleTag(e){return this.#t({tags:f(this.#e.tags??[],e),page:1})}toggleKeyword(e){return this.#t({keywords:f(this.#e.keywords??[],e),page:1})}clearTerms(){return this.#t({tags:[],keywords:[],page:1})}reset(t){return new e({...t,packages:this.#e.packages})}toFilters(){return{...this.#e}}toListParams(){let e=this.#e;return{search:e.search,packages:e.packages,categories:e.categories,subs:e.subs,variants:e.variant?[e.variant]:[],page:e.page,perPage:e.perPage,sortBy:e.sortBy,sortDirection:e.sortOrder,...e.kind?{kind:e.kind}:{},...e.tags?.length?{tags:e.tags}:{},...e.keywords?.length?{keywords:e.keywords}:{}}}},m=`ichava.browser-id`,ee=`ichava_`,te=/^ichava_[0-9a-f]{32}$/,h=null;function ne(){let e=globalThis.crypto;if(e&&typeof e.randomUUID==`function`)return e.randomUUID().replace(/-/g,``);let t=/* @__PURE__ */ new Uint8Array(16);if(e&&typeof e.getRandomValues==`function`)e.getRandomValues(t);else for(let e=0;ee.toString(16).padStart(2,`0`)).join(``)}function re(){try{return typeof window<`u`&&window.localStorage?window.localStorage:null}catch{return null}}function ie(){if(h)return h;let e=re();try{let t=e?.getItem(m);if(t&&te.test(t))return h=t,h}catch{}h=`${ee}${ne()}`;try{e?.setItem(m,h)}catch{}return h}var ae={baseUrl:`/ichava/api/v1`,credentials:`include`,timeoutMs:15e3,csrf:{strategy:`sanctum`,metaName:`csrf-token`,cookieName:`XSRF-TOKEN`,headerName:`X-CSRF-TOKEN`,endpoint:`/sanctum/csrf-cookie`}},oe=class extends Error{status;detail;constructor(e,t){super(`HTTP ${e}: ${t}`),this.status=e,this.detail=t,this.name=`HttpError`}},se=class extends Error{reason;constructor(e){super(e===`timeout`?`Request timed out`:`Request aborted by caller`),this.reason=e,this.name=`RequestAbortedError`}};function ce(e){if(typeof document>`u`)return``;for(let t of document.cookie.split(`; `)){let n=t.indexOf(`=`);if(n>0&&t.slice(0,n)===e)return decodeURIComponent(t.slice(n+1))}return``}var le=class e{#e;#t=!1;constructor(e=ae){this.#e={...e,csrf:{...e.csrf}}}get config(){return this.#e}with(t){return new e({...this.#e,...t,csrf:{...this.#e.csrf,...t.csrf??{}}})}#n(){let{strategy:e,metaName:t,cookieName:n}=this.#e.csrf;return e===`none`||typeof document>`u`?``:e===`cookie`?ce(n):document.querySelector(`meta[name="${t}"]`)?.content??``}async initCsrf(){if(this.#e.csrf.strategy===`sanctum`&&!(this.#t||typeof fetch>`u`)){this.#t=!0;try{await fetch(this.#e.csrf.endpoint,{credentials:this.#e.credentials})}catch{}}}async request(e,t={}){let n=this.#e,{method:r=`GET`,body:i,signal:a,raw:o=!1,baseUrl:s=n.baseUrl}=t,c=i!=null,l=new AbortController,u=!1,d=setTimeout(()=>{u=!0,l.abort()},n.timeoutMs),f=()=>l.abort();a?.addEventListener(`abort`,f,{once:!0});let p={Accept:o?`image/svg+xml`:`application/json`,"X-Requested-With":`XMLHttpRequest`,"X-Browser-Id":ie()};c&&(p[`Content-Type`]=`application/json`);let m=this.#n();m&&(p[n.csrf.headerName]=m);try{let t=await fetch(`${s}${e}`,{method:r,credentials:n.credentials,signal:l.signal,headers:p,body:c?JSON.stringify(g(i)):void 0});if(!t.ok)throw new oe(t.status,await ue(t));return o?await t.text():await t.json()}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?new se(u?`timeout`:`caller`):e}finally{clearTimeout(d),a?.removeEventListener(`abort`,f)}}};function g(e){if(e instanceof Set)return[...e];if(Array.isArray(e))return e.map(g);if(e&&typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!=null&&(t[n]=g(r));return t}return e}async function ue(e){try{return await e.text()}catch{return e.statusText}}function de(e){return/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e.trim())}function fe(e,t){return/^#[0-9a-f]{6}$/i.test(e)?`${e}${Math.round(Math.max(0,Math.min(100,t))/100*255).toString(16).padStart(2,`0`)}`:e}var pe=`14,124,102`;function _(e,t){let n=/^#([0-9a-f]{6})$/i.exec(e.trim());if(!n)return`rgba(${pe},${t})`;let r=parseInt(n[1],16);return`rgba(${r>>16&255},${r>>8&255},${r&255},${t})`}function v(e){let t=/^#([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return{r:n>>16&255,g:n>>8&255,b:n&255}}var y=({r:e,g:t,b:n})=>`#${[e,t,n].map(e=>Math.round(Math.max(0,Math.min(255,e))).toString(16).padStart(2,`0`)).join(``)}`;function b({r:e,g:t,b:n}){let r=e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4};return .2126*r(e)+.7152*r(t)+.0722*r(n)}function me(e,t){let[n,r]=[v(e),v(t)];if(!n||!r)return 1;let[i,a]=[b(n),b(r)].sort((e,t)=>t-e);return(i+.05)/(a+.05)}function he({r:e,g:t,b:n},r){let i=r>0?255:0,a=Math.abs(r);return{r:e+(i-e)*a,g:t+(i-t)*a,b:n+(i-n)*a}}function ge(e,t){let n=v(e);return!n||t===0?e:y(he(n,Math.max(-1,Math.min(1,t))))}function _e(e,t,n){let r=v(e),i=v(n);if(!r||!i)return n;let a=Math.max(0,Math.min(1,t));return y({r:r.r*a+i.r*(1-a),g:r.g*a+i.g*(1-a),b:r.b*a+i.b*(1-a)})}function ve(e,t,n=4.5){let r=v(e),i=v(t);if(!r||!i||me(e,t)>=n)return e;let a=b(i)<.5?1:-1,o=e,s=me(e,t);for(let e=.02;e<=1;e+=.02){let i=y(he(r,a*e)),c=me(i,t);if(c>s&&(o=i,s=c),c>=n)return i}return o}var ye=`#0e7c66`;function be(){try{return typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}catch{return`light`}}function xe(e){return e===`light`||e===`dark`?e:be()}var Se={50:.92,100:.84,200:.68,300:.48,400:.28,500:.12,600:0,700:-.16,800:-.32,900:-.46,950:-.62};function Ce(e){if(!de(e)||e.length!==7)return{};let t={};for(let[n,r]of Object.entries(Se))t[`--color-brand-${n}`]=ge(e,r);return t}var we={xs:.25,sm:.5,DEFAULT:.5,md:.75,lg:1,xl:1.5,"2xl":2,"3xl":3};function Te(e){let t=Number.isFinite(e)&&e>0?e:0,n={};for(let[e,r]of Object.entries(we))n[`--radius-${e}`]=`${+(t*r).toFixed(2)}px`;return n}var x={light:[`#ffffff`,`#f6f4ee`,`#ece8de`],dark:[`#14120e`,`#1f1c17`,`#2f2b24`]},Ee={light:x.light[2],dark:x.dark[2]},De={light:.1,dark:.16};x.light[0],x.dark[0];function Oe(e,t,n={}){if(!n.surfaces)return ve(e,_e(e,De[t],Ee[t]));let r=/^#[0-9a-f]{6}$/i.test(e.trim())?e.trim():ye,i=r;for(let e of n.surfaces)i=ve(i,e),i=ve(i,_e(r,De[t],e));return i}function ke(e,t,n,r){let i=Oe(e,n,{surfaces:x[n]});return{"--accent":e,"--accent-text":t,"--accent-soft":_(e,n===`dark`?.16:.1),"--ring":_(e,.35),"--radius":`${r}px`,...Ce(e),...Te(r),"--color-bg-brand-solid":e,"--color-bg-brand-solid_hover":_(e,.88),"--color-bg-brand-primary":_(e,n===`dark`?.16:.1),"--color-border-brand":_(e,.5),"--color-fg-brand-primary":i,"--color-text-brand-secondary":i,"--color-text-brand-tertiary":i}}var Ae=Object.keys(ke(`#000000`,`#000000`,`light`,8)),je=[{code:`en`,label:`English`,dir:`ltr`},{code:`es`,label:`Español`,dir:`ltr`},{code:`fr`,label:`Français`,dir:`ltr`},{code:`de`,label:`Deutsch`,dir:`ltr`},{code:`pt`,label:`Português`,dir:`ltr`},{code:`sw`,label:`Kiswahili`,dir:`ltr`},{code:`ar`,label:`العربية`,dir:`rtl`}];function Me(e){return typeof e==`string`&&je.some(t=>t.code===e)}function Ne(e){return je.find(t=>t.code===e)?.dir??`ltr`}function Pe(e,t){return t?e.replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??`{${n}}`)):e}var Fe=class e{#e;#t;#n;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n,Object.freeze(this)}static of(t,n=`en`){return new e(t,[],n)}locale(t){return new e(this.#e,this.#t,t)}withOverrides(t){return new e(this.#e,[...this.#t,t],this.#n)}withMessages(e,t){return this.withOverrides({[e]:t})}get currentLocale(){return this.#n}get dir(){return Ne(this.#n)}lookup(e,t=this.#n){for(let n of t===`en`?[`en`]:[t,`en`]){for(let t=this.#t.length-1;t>=0;--t){let r=this.#t[t]?.[n]?.[e];if(r!==void 0)return r}let t=this.#e[n]?.[e];if(t!==void 0)return t}}t(e,t){return Pe(this.lookup(e)??e,t)}},Ie=`ichava.locale`,Le=/* @__PURE__ */ new Set;function Re(){try{let e=globalThis.localStorage?.getItem(Ie);if(Me(e))return e}catch{}return`en`}function ze(e){try{globalThis.localStorage?.setItem(Ie,e)}catch{}for(let t of Le)t(e)}var S=`ichava.consent`;function Be(e){return e===`essential`||e===`all`}var C=/* @__PURE__ */ new Set;function Ve(){try{let e=globalThis.localStorage?.getItem(S);return Be(e)?e:null}catch{return null}}function w(e){try{e===null?globalThis.localStorage?.removeItem(S):globalThis.localStorage?.setItem(S,e)}catch{}for(let t of C)t(e)}function He(e){return C.add(e),()=>{C.delete(e)}}function Ue(e){let t=Ve();return t===null?Be(e)?(w(e),e):null:t}var T=[],E=/* @__PURE__ */ new Set;function We(){for(let e of E)e()}function Ge(e){return T.includes(e)||(T.push(e),We()),()=>{let t=T.indexOf(e);t!==-1&&(T.splice(t,1),We())}}function Ke(e){return T[0]===e}function qe(e){return E.add(e),()=>{E.delete(e)}}function Je(e,t){return e.replace(/\{(\w+)\}/g,(n,r)=>{let i=t[r];if(i===void 0)throw Error(`No value for {${r}} in ${e}`);return encodeURIComponent(String(i))})}var Ye=new le;function Xe(){return Ye}var Ze={"settings.clearHistoryTitle":`History`,"settings.clearHistoryDesc":`Clear the icons you viewed, copied and downloaded, and the command palette’s recent actions.`,"settings.clearHistoryButton":`Clear history`,"settings.clearHistoryToast":`History cleared`,"detail.tags":`Tags`,"kind.label":`Show`,"kind.icons":`Icons`,"kind.illustrations":`Illustrations`,"toolbar.illustrationOne":`illustration`,"toolbar.illustrationMany":`illustrations`,"toolbar.filterByTag":`Show icons tagged “{tag}”`,"toolbar.filterByKeyword":`Show icons with the keyword “{keyword}”`,"empty.noIllustrations":`No illustrations match these filters`,"empty.noIconsTitle":`Nothing to browse yet`,"empty.noIconsDesc":`No icon set is installed and seeded here. Once one is, its icons appear in this grid.`,"settings.syncAccount":`favorites and collections are kept with your account`,"settings.syncSession":`favorites and collections are kept for this session`,"settings.guestSignIn":`Sign in to keep them with your account.`,"settings.factoryDescHost":`Restore this browser’s settings and filters to defaults. Your favorites and collections stay.`,"settings.factoryConfirmBodyHost":`Preferences, filters, appearance, consent and the tour will be restored to defaults in this browser. Your favorites, collections and history stay where they are kept.`,"settings.deleteLibraryTitle":`Delete my library`,"settings.deleteLibraryDesc":`Remove every favorite and collection kept for you here.`,"settings.deleteLibraryButton":`Delete…`,"settings.deleteLibraryConfirmTitle":`Delete your library?`,"settings.deleteLibraryConfirmBody":`Every favorite and collection is removed, here and on the server. Your history and settings stay. This cannot be undone.`,"settings.deleteLibraryConfirmLabel":`Delete my library`,"settings.deleteLibraryToast":`Library deleted`,"detail.snippetFormat":`Snippet format`,"console.code":`Code`,"palette.results":`Results`,"appearance.adaptMono":`Adapt black icons in dark mode`,"common.cancel":`Cancel`,"common.create":`Create`,"common.clear":`Clear`,"common.all":`All`,"common.none":`None`,"common.copy":`Copy`,"common.download":`Download`,"common.favorite":`Favorite`,"common.favorited":`Favorited`,"common.close":`Close`,"common.signIn":`Sign in`,"common.signOut":`Sign out`,"common.search":`Search icons, actions…`,"header.favorites":`Favorites`,"header.history":`History`,"header.collections":`Collections`,"header.notifications":`Notifications`,"header.toggleTheme":`Toggle theme`,"header.settings":`Settings`,"header.fullscreen":`Full screen`,"header.exitFullscreen":`Exit full screen`,"header.commandPalette":`Command palette`,"header.gridView":`Grid view`,"header.listView":`List view`,"sidebar.packages":`Packages`,"sidebar.categories":`Categories`,"sidebar.filterCategories":`Filter categories…`,"sidebar.filterIcons":`Filter icons…`,"sidebar.expandAll":`Expand all`,"sidebar.collapseAll":`Collapse all`,"variant.all":`All`,"variant.outline":`Outline`,"variant.filled":`Filled`,"variant.color":`Color`,"toolbar.sort":`Sort`,"toolbar.size":`Size`,"toolbar.stroke":`Stroke`,"toolbar.color":`Color`,"toolbar.treatment":`Icon treatment`,"toolbar.export":`Export`,"toolbar.copyNames":`Copy names`,"toolbar.newCollection":`New collection`,"toolbar.selected":`{n} selected`,"appearance.title":`Appearance`,"appearance.subtitle":`theme · brand · zoom`,"appearance.theme":`Theme`,"appearance.light":`Light`,"appearance.dark":`Dark`,"appearance.brandAccent":`Brand accent`,"appearance.customHex":`Custom hex`,"appearance.radius":`Radius`,"appearance.size":`UI Zoom`,"appearance.density":`UI Density`,"appearance.compact":`Compact`,"appearance.comfy":`Comfy`,"appearance.reduceMotion":`Reduce motion`,"appearance.iconLabels":`Icon labels`,"appearance.language":`Language`,"appearance.footer":`Applies to the application only. Persists in your selected storage driver.`,"account.workspace":`Workspace`,"account.account":`Account`,"account.profile":`Profile & preferences`,"account.sharedCollections":`Shared collections`,"profile.title":`Profile`,"profile.account":`Account`,"profile.appSettings":`App settings & configuration`,"profile.signOutTitle":`Sign out?`,"profile.signOutBody":`You will keep local favorites and filters, but shared collections and team features require signing in again.`,"profile.signedOut":`Signed out`,"profile.switched":`Switched to {name}`,"shared.title":`Shared collections`,"shared.count":`{n} shared`,"shared.empty":`No collections shared yet.`,"shared.manageAccess":`Manage access`,"empty.noResults":`No icons match your filters.`,"empty.noFavorites":`No favorites yet.`,"empty.onboardTitle":`Select packages to browse`,"empty.onboardDesc":`Icons appear once at least one installed package is selected.`,"empty.selectAllPackages":`Select all packages`,"empty.noMatchSearch":`No icons match “{q}”`,"empty.noMatchFilters":`No icons match these filters`,"empty.tryDifferent":`Try a different term, another variant, or clear the active filters.`,"empty.clearFilters":`Clear filters`,"toolbar.iconOne":`icon`,"toolbar.iconMany":`icons`,"toolbar.removeFilter":`Remove filter`,"toolbar.namesCopied":`{n} names copied`,"toolbar.exportedToast":`Exported {n} icons — {label}`,"toolbar.treatmentEngine":`Treatment engine`,"toolbar.toggleSortOrder":`Toggle sort order`,"toolbar.gridIconSize":`Grid icon size`,"toolbar.sizeUnit":`Size unit`,"toolbar.strokeTitle":`Stroke width — rewrites stroke across grid, detail & export`,"toolbar.previewColor":`Preview color`,"toolbar.resetFilters":`Reset filters`,"toolbar.resetTitle":`Reset all filters?`,"toolbar.resetBody":`Search, categories, variants, sort, page, selection and preview color return to defaults. Favorites, collections and appearance are untouched.`,"toolbar.resetConfirm":`Reset filters`,"toolbar.resetToast":`Filters reset`,"footer.noResults":`No results`,"footer.range":`{start}–{end} of {total}`,"footer.perPage":`{n} / page`,"footer.perPageLabel":`Results per page`,"footer.prevPage":`Previous page`,"footer.nextPage":`Next page`,"list.copiedToast":`Copied {name}`,"sidebar.scopeIcons":`Icons`,"sidebar.scopePackages":`Packages`,"sidebar.scopeCategories":`Categories`,"sidebar.scopeAll":`All`,"sidebar.notInstalled":`not installed`,"sidebar.inView":`In view`,"sidebar.selected":`Selected`,"sidebar.loadedIcons":`In this catalog`,"sidebar.ecosystemTotal":`Ecosystem total`,"sidebar.favorites":`Favorites`,"sidebar.filterPackages":`Filter packages…`,"sidebar.searchEverything":`Search everything…`,"sidebar.searchScope":`Search scope`,"header.filtersPackages":`Filters & packages`,"header.toggleSidebar":`Toggle sidebar`,"header.devtools":`Ichava DevTools`,"palette.placeholder":`Type a command or search icons…`,"palette.recent":`Recent`,"palette.actions":`Actions`,"palette.icons":`Icons`,"palette.openHint":`open`,"palette.noMatches":`No matches for “{q}”`,"palette.navigate":`navigate`,"palette.select":`select`,"palette.close":`close`,"palette.toggleTheme":`Toggle theme`,"palette.openSettings":`Open settings`,"palette.openFavorites":`Open favorites`,"palette.openHistory":`Open history`,"palette.openCollections":`Open collections`,"palette.switchListView":`Switch to list view`,"palette.switchGridView":`Switch to grid view`,"palette.resetFilters":`Reset all filters`,"palette.selectAll":`Select all matching`,"selectAll.confirmTitle":`Select all {n} icons?`,"selectAll.confirmBody":`No search or filter is active, so every icon in the catalog will be selected.`,"selectAll.confirmLabel":`Select all`,"palette.openDevtools":`Open Ichava DevTools`,"common.remove":`Remove`,"settings.appearanceHintPre":`Theme, accent, radius, size, density, motion and labels live in the `,"settings.appearanceHintPost":` menu in the header.`,"settings.behavior":`Behavior`,"settings.perPageTitle":`Icons per page`,"settings.perPageDesc":`Grid pagination size.`,"settings.copyFormatTitle":`Default copy format`,"settings.copyFormatDesc":`Used by click-to-copy on tiles.`,"settings.storageTitle":`Storage driver`,"settings.storageDesc":`Where preferences & state persist.`,"settings.storageLocal":`local`,"settings.storageSession":`session`,"settings.tourTitle":`Product tour`,"settings.tourDesc":`Replay the first-run walkthrough.`,"settings.replayTour":`Replay tour`,"settings.factoryTitle":`Factory reset`,"settings.factoryDesc":`Restore every setting, filter, favorite and collection to defaults.`,"settings.factoryConfirmTitle":`Reset everything to factory settings?`,"settings.factoryConfirmBody":`All preferences, filters, favorites, history, collections, brand customization, consent and stored snapshots will be restored to defaults. This cannot be undone.`,"settings.factoryConfirmLabel":`Reset everything`,"settings.factoryToast":`Everything reset to defaults`,"settings.resetEverything":`Reset everything…`,"settings.account":`Account`,"settings.syncNote":`favorites and collections are saved in this browser only`,"settings.guestNote":`You're browsing as a guest. Preferences, favorites and collections are saved in this browser only.`,"settings.aboutLink":`About Ichava →`,"consent.ariaLabel":`Cookies and storage`,"consent.title":`Cookies & storage`,"consent.body":`Ichava stores your preferences and favorites in your chosen storage driver, plus anonymous usage events. No third-party trackers.`,"consent.essentialOnly":`Essential only`,"consent.acceptAll":`Accept all`,"consent.move":`Move notice`,"consent.moveHint":`Drag it, or use the arrow keys, to move it. Home puts it back.`,"about.browser":`Browser`,"about.craftedBy":`Crafted by`,"about.statIcons":`icons indexed`,"about.statSets":`icon sets`,"about.statLicense":`license`,"library.favorites":`Favorites`,"library.history":`History`,"library.collections":`Collections`,"library.emptyFavorites":`No favorites yet — hover an icon and tap the heart.`,"library.emptyHistory":`No activity yet — views, copies and downloads show up here.`,"library.emptyCollections":`No collections yet — name one above.`,"library.clearHistory":`Clear history`,"library.newCollectionPlaceholder":`New collection name…`,"library.seededWith":`Starts with {n} icons`,"library.iconCount":`{n} icons`,"library.teamBadge":`team`,"library.viewerBadge":`viewer`,"library.copyNamesTitle":`Copy icon names`,"library.deleteCollection":`Delete collection`,"tile.openDetail":`Open detail`,"tile.copyFormat":`Copy {format}`,"tile.copyName":`Copy name`,"tile.copiedName":`Copied name`,"tile.copyPermalink":`Copy permalink`,"tile.permalinkCopied":`Permalink copied`,"tile.select":`Select`,"tile.deselect":`Deselect`,"tile.addFavorite":`Add favorite`,"tile.removeFavorite":`Remove favorite`,"tile.favoritedAria":`favorited`,"tile.selectedAria":`selected`,"detail.previewOnly":`Preview only — grid is unaffected`,"detail.scaledToFit":`scaled to fit`,"detail.actual":`actual`,"detail.size":`Size`,"detail.previewSize":`Preview size`,"detail.unit":`Unit`,"detail.color":`Color`,"detail.stroke":`Stroke`,"detail.motion":`Motion`,"detail.searchPresets":`Search {n} presets…`,"detail.noPresets":`No presets found.`,"detail.easing":`Easing`,"detail.play":`Play`,"detail.pause":`Pause`,"detail.speed":`Speed`,"detail.copied":`Copied {label}`,"detail.download":`Download`,"detail.keyframesAria":`Custom keyframes JSON`,"detail.keyframesValid":`{n} keyframes — paste a Keyframe[] or { keyframes: […] } spec`,"detail.keyframesInvalid":`Invalid JSON — expects an array of plain keyframe objects`,"detail.related":`Related icons`,"detail.addToCollection":`Add to collection`,"detail.newCollection":`+ New`,"detail.noSvg":`No SVG available for this icon`,"detail.addedTo":`Added to {name}`,"detail.removedFrom":`Removed from {name}`,"detail.motionDefault":`Default`,"console.copyCode":`Copy code`,"console.copy":`Copy`,"console.copied":`Copied`,"help.title":`Help & about`,"help.about":`About Ichava`,"help.docs":`Documentation`,"help.replayTour":`Replay product tour`,"help.shortcuts":`Keyboard shortcuts`,"notifications.clearAll":`Clear all`,"notifications.empty":`You're all caught up.`,"team.title":`Team`,"team.online":`{n} online`,"team.onlineNow":`Online now`,"team.away":`Away`,"team.offline":`Offline`,"team.invite":`Invite…`,"color.previewColor":`Preview color`,"color.resetToTheme":`Reset to theme`,"color.opacity":`Opacity — 0–100%`,"contextMenu.actions":`Actions`,"boot.loadingCatalog":`Loading catalog`,"boot.ready":`Ready`,"sidebar.iconVariant":`Icon variant`,"auth.signInTo":`Sign in to {brand}`,"auth.needsAccount":`needs an account.`,"auth.emailCode":`We'll email you a one-time code — no password.`,"auth.emailPlaceholder":`you@company.com`,"auth.sendCode":`Send code`,"auth.newHere":`New here?`,"auth.createAccount":`Create account`,"auth.enterCode":`Enter your code`,"auth.sentTo":`Sent to`,"auth.demoHint":`Demo: any code signs in — try 000000 to see the failure state.`,"auth.digit":`Digit {n}`,"auth.codeFailed":`That code didn't work. Try again.`,"auth.verify":`Verify & sign in`,"auth.changeEmail":`← Change email`,"auth.resendIn":`Resend in {n}s`,"auth.resendCode":`Resend code`,"auth.createTitle":`Create your account`,"auth.createBlurb":`Join to unlock collections, sharing and team features. We'll verify your email with a one-time code.`,"auth.firstName":`First name`,"auth.lastName":`Last name`,"auth.passwordPlaceholder":`At least 8 characters`,"auth.togglePassword":`Toggle password visibility`,"auth.haveAccount":`Already have an account?`,"invite.title":`Invite to workspace`,"invite.workspace":`workspace`,"invite.emailPlaceholder":`teammate@company.com`,"invite.roleEditor":`Editor — can add & share`,"invite.roleViewer":`Viewer — read only`,"invite.role":`Role`,"invite.linkExpires":`Link expires`,"invite.exp24h":`24h`,"invite.exp7d":`7 days`,"invite.exp30d":`30 days`,"invite.expNever":`Never`,"invite.blurb":`Invitees get access to shared collections in this workspace. Roles can be changed later by the owner; links can be revoked in Settings.`,"invite.generateLink":`Generate link`,"invite.linkCopied":`Invite link copied`,"invite.yourTeammate":`your teammate`,"invite.sentNotification":`Invite sent to {to} ({role})`,"invite.sent":`Invite sent`,"invite.sendInvite":`Send invite`,"access.addPeople":`Add people or your team`,"access.searchTeammates":`Search teammates by name or email…`,"access.onlyYou":`Only you have access. Add teammates above, or share the whole team.`,"access.saveAccess":`Save access`,"access.shareEntireTeam":`Sharing with entire team`,"access.shareLinkCopied":`Share link copied`,"access.copyLinkInstead":`Copy link instead`,"shared.inviteTeam":`Invite the team…`,"shared.viewer":`viewer`,"shared.editor":`editor`,"tour.skip":`Skip`,"tour.back":`Back`,"tour.stepOf":`Step {n} of {total}`,"tour.next":`Next`,"tour.getStarted":`Get started`,"tour.s1Title":`Welcome to Ichava Browser`,"tour.s1Body":`Every icon in your Laravel app — searchable, previewable, copy-ready. This 30-second tour shows you around. You can replay it anytime from Settings.`,"tour.s2Title":`Find any icon fast`,"tour.s2Body":`Search by name or tag, filter by package, category and variant in the sidebar, or hit ⌘K for the command palette.`,"tour.s3Title":`Restyle live`,"tour.s3Body":`Treatments, size, stroke, color and motion presets restyle every icon in place — the grid updates as you tweak.`,"tour.s4Title":`Copy for your stack`,"tour.s4Body":`Open any icon for Blade, Livewire, Vue, React, Svelte, Web Component, raw SVG and more — one click to copy.`,"tour.s5Title":`Save & share`,"tour.s5Body":`Favorite icons, group them into collections, and export a sprite, manifest or ZIP. Sign in to sync across devices.`,"app.documentTitle":`Ichava Browser — every icon your Laravel app needs`,"sort.name":`Name`,"sort.package":`Package`,"sort.category":`Category`,"treatment.default":`Stroke`,"treatment.defaultDesc":`Original pack strokes`,"treatment.solid":`Solid`,"treatment.solidDesc":`Bolder, filled weight`,"treatment.duotone":`Dual tone`,"treatment.duotoneDesc":`Accent shadow layer`,"treatment.midtone":`Midtone`,"treatment.midtoneDesc":`Softened 50% ink`,"treatment.halftone":`Halftone`,"treatment.halftoneDesc":`Retro dot-matrix fill`,"unit.pxValue":`{n}px`,"export.files":`SVG files`,"export.filesDesc":`Individual .svg downloads`,"export.sprite":`SVG sprite`,"export.spriteDesc":`One sheet`,"export.manifest":`JSON manifest`,"export.manifestDesc":`ids, packs & categories`,"export.zip":`ZIP bundle`,"export.zipDesc":`Sprite + manifest + files`,"copyFormat.svg":`Raw SVG`,"copyFormat.blade":`Blade tag`,"copyFormat.vue":`Vue snippet`,"copyFormat.name":`Icon name`,"snippetTab.motion":`Motion`,"snippetTab.helper":`Helper`,"snippetTab.bladeGeneric":`Blade (generic)`,"snippetTab.webcomponent":`Web Component`,"snippetTab.name":`Name`,"format.svg":`Raw SVG`,"format.motion":`Motion`,"format.helper":`ichava() helper`,"format.blade":`Blade tag`,"format.bladeGeneric":`Generic Blade`,"format.livewire":`Livewire`,"format.alpine":`Alpine.js`,"format.vue":`Vue`,"format.react":`React`,"format.svelte":`Svelte`,"format.webcomponent":`Web Component`,"format.reactNative":`React Native`,"format.angular":`Angular`,"format.solid":`Solid`,"format.preact":`Preact`,"format.astro":`Astro`,"format.api":`REST URL`,"format.name":`Icon name`,"format.qwik":`Qwik`,"format.ember":`Ember`,"format.elm":`Elm`,"format.css-mask":`CSS mask`,"format.data-uri":`Data URI`,"format.flutter":`Flutter`,"format.swiftui":`SwiftUI`,"export.css-mask":`CSS mask`,"export.css-maskDesc":`One class per icon, in currentColor`,"export.data-uri":`Data URI`,"export.data-uriDesc":`CSS custom properties, colours kept`,"export.native":`Native assets`,"export.flutter":`Download for Flutter`,"export.flutterDesc":`SVG assets and a Dart index, built by js-icon-components`,"export.swiftui":`Download for SwiftUI`,"export.swiftuiDesc":`An .xcassets catalogue, built by js-icon-components`,"detail.cssMask":`CSS mask`,"detail.copyDataUri":`Copy as data URI`,"about.landing":`Website`,"clipboard.copyFailed":`Copy failed — select and copy manually`,"clipboard.copied":`Copied to clipboard`,"task.working":`Working…`,"task.export":`Exporting {n} icons…`,"task.copyNames":`Collecting {n} icon names…`,"task.selectAll":`Selecting every matching icon…`},D=[{code:`en`,label:`English`,dir:`ltr`},{code:`es`,label:`Español`,dir:`ltr`},{code:`fr`,label:`Français`,dir:`ltr`},{code:`de`,label:`Deutsch`,dir:`ltr`},{code:`pt`,label:`Português`,dir:`ltr`},{code:`sw`,label:`Kiswahili`,dir:`ltr`},{code:`ar`,label:`العربية`,dir:`rtl`}];function Qe(e){return D.find(t=>t.code===e)?.dir??`ltr`}var $e={es:()=>import(`./es-BQadDI5z.js`),fr:()=>import(`./fr-C3YrRQ0m.js`),de:()=>import(`./de-C11_iEFd.js`),pt:()=>import(`./pt-DiIN_EjM.js`),sw:()=>import(`./sw-s0osxpLo.js`),ar:()=>import(`./ar-DN72wH1H.js`)},O={en:Ze},et=/* @__PURE__ */ new Map,k=/* @__PURE__ */ new Set,tt=0;function nt(e){return O[e]!==void 0}function A(e){if(e===`en`||nt(e))return Promise.resolve();let t=et.get(e);if(t)return t;let n=$e[e]().then(t=>{O[e]=t.default,tt++;for(let e of k)e()});return et.set(e,n),n}async function rt(){await Promise.all(D.map(e=>A(e.code)))}function it(e){return k.add(e),()=>k.delete(e)}function j(){return tt}function at(e){return e}var ot={};function st(e,t=ot){return Fe.of(O).withOverrides(t).locale(e)}function ct(e,t,n){return st(e.locale,e.translationOverrides).t(t,n)}var lt=`ichava.debug`;function ut(){try{return!0}catch{return!1}}function dt(){try{let e=new URLSearchParams(window.location.search);if(e.has(`debug`)){let t=e.get(`debug`);return t===``||t===`1`||t===`true`||t===`boot`}}catch{}return null}function ft(){try{let e=window.localStorage.getItem(lt);return e==null?null:e===`1`||e===`true`}catch{return null}}function pt(e){return e?.env??(ut()?`production`:`development`)}function mt(e){let t=dt();if(t!==null)return t;let n=ft();return n===null?e?.debug?.enabled==null?pt(e)!==`production`:e.debug.enabled:n}function ht(e){return mt(e)&&e?.features?.devtools!==!1}var gt={debug:10,info:20,warn:30,error:40,silent:100},M=/* @__PURE__ */ new WeakMap,_t=0,vt=`page`,yt=new class e{level=`debug`;cap=300;buf=[];subs=/* @__PURE__ */ new Set;#e;#t;#n=0;constructor(e=vt,t=null){this.#e=e,this.#t=t}get source(){return this.#e}child(t){return new e(t,this)}configure(e){e?.limits?.logBuffer&&(this.cap=e.limits.logBuffer);let t=e?.debug?.logLevel;this.level=t||(mt(e)?`debug`:pt(e)===`production`?`warn`:`debug`)}setLevel(e){this.level=e}getLevel(){return this.level}subscribe(e){this.subs.add(e);let t=this.#t?.subscribe(e);return()=>{this.subs.delete(e),t?.()}}buffer(){if(!this.#t)return this.buf;let e=this.#t.buffer().filter(e=>M.get(e)>this.#n);return e.length?[...e,...this.buf].sort((e,t)=>M.get(e)-M.get(t)):this.buf}clear(){this.buf=[],this.#n=_t}write(e,t,n,r){let i={ts:Date.now(),level:e,channel:t,message:n,data:r,source:this.#e};if(M.set(i,++_t),this.buf.push(i),this.buf.length>this.cap&&this.buf.splice(0,this.buf.length-this.cap),this.subs.forEach(e=>{try{e(i)}catch{}}),gt[e]>=gt[this.level]&&this.level!==`silent`){let i=`[ichava:${t}]`,a=e===`error`?console.error:e===`warn`?console.warn:e===`info`?console.info:console.debug;r===void 0?a(i,n):a(i,n,r)}}debug(e,t,n){this.write(`debug`,e,t,n)}info(e,t,n){this.write(`info`,e,t,n)}warn(e,t,n){this.write(`warn`,e,t,n)}error(e,t,n){this.write(`error`,e,t,n)}},bt=`page`,xt=new class e{#e=/* @__PURE__ */ new Set;#t;#n;constructor(e=bt,t=null){this.#t=e,this.#n=t}get source(){return this.#t}child(t){return new e(t,this)}emit(e,t,n){let r={kind:e,label:t,payload:n,ts:Date.now(),source:this.#t};this.#e.forEach(e=>{try{e(r)}catch{}})}on(e){this.#e.add(e);let t=this.#n?.on(e);return()=>{this.#e.delete(e),t?.()}}},St=`1.8.0`,Ct=[{id:`svg`,label:`Raw SVG`,group:`raw`,delivery:`client`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!0},{id:`motion`,label:`Motion`,group:`motion`,delivery:`client`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`helper`,label:`ichava() helper`,group:`laravel`,delivery:`laravel`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!0},{id:`blade`,label:`Blade tag`,group:`laravel`,delivery:`laravel`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!0},{id:`bladeGeneric`,label:`Generic Blade`,group:`laravel`,delivery:`laravel`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`livewire`,label:`Livewire`,group:`laravel`,delivery:`laravel`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`alpine`,label:`Alpine.js`,group:`js`,delivery:`client`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`vue`,label:`Vue`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!0},{id:`react`,label:`React`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!0},{id:`svelte`,label:`Svelte`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`webcomponent`,label:`Web Component`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`reactNative`,label:`React Native`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`angular`,label:`Angular`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`solid`,label:`Solid`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`preact`,label:`Preact`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`astro`,label:`Astro`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`qwik`,label:`Qwik`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`ember`,label:`Ember`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`elm`,label:`Elm`,group:`js`,delivery:`generated`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`css-mask`,label:`CSS mask`,group:`export`,delivery:`asset`,kinds:[`icon`,`illustration`],copy:!1,defaultCopy:!1},{id:`data-uri`,label:`Data URI`,group:`export`,delivery:`asset`,kinds:[`icon`,`illustration`],copy:!1,defaultCopy:!1},{id:`flutter`,label:`Flutter`,group:`export`,delivery:`asset`,kinds:[`icon`,`illustration`],copy:!1,defaultCopy:!1,native:!0},{id:`swiftui`,label:`SwiftUI`,group:`export`,delivery:`asset`,kinds:[`icon`,`illustration`],copy:!1,defaultCopy:!1,native:!0},{id:`api`,label:`REST URL`,group:`reference`,delivery:`laravel`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!1},{id:`name`,label:`Icon name`,group:`reference`,delivery:`client`,kinds:[`icon`,`illustration`],copy:!0,defaultCopy:!0}],N={meta:{version:`0.1.0`,author:`Simtabi LLC`,sets:70,license:`Proprietary`,url:`https://simtabi.com`},seo:{title:`Ichava Browser — every icon your Laravel app needs`,description:`Any SVG, icons and illustrations, from open-source sets. Search, restyle, animate and copy — visual browser, REST API and Blade components for Laravel.`},env:null,debug:{enabled:null,logLevel:`debug`},features:{devtools:!0,collections:!0,history:!0,motion:!0,treatments:!0,multiSelect:!0,presence:!0,demo:!1,favorites:!0,commands:!0,library:!0,preferences:!0,status:!1,cacheAdmin:!1,illustrations:!0,searchLanguage:!1,export:!0,themeToggle:!0,invites:!0,sharing:!0,notifications:!0,workspaces:!0},brand:{name:`Ichava`,suffix:`Browser`,tagline:``},user:{mode:`guest`,name:``,email:``,initials:``,plan:``,workspaces:[]},team:[],ui:{defaultTheme:`light`,scale:`m`,density:`compact`,accentOptions:[`#0e7c66`,`#2f54d6`,`#c2410c`,`#7c3aed`,`#be185d`],perPageOptions:[30,60,120,240],scaleOptions:[{id:`xs`,label:`XS`},{id:`s`,label:`S`},{id:`m`,label:`M`},{id:`l`,label:`L`}],baseFontSize:13.5,avatarPalette:[`#7c3aed`,`#0891b2`,`#059669`,`#e11d48`,`#ea580c`]},defaults:{packages:[],perPage:60,sortBy:`name`,sortOrder:`asc`,appearance:{theme:`system`,accent:`#0e7c66`,radius:6,scale:`m`,density:`compact`,reduceMotion:!1,showLabels:!0,adaptMonochrome:!0},render:{size:48,sizeUnit:`px`,gridStroke:1.5,color:null,treatment:`default`,copyFormat:`svg`},collections:[]},ranges:{size:{min:16,max:1024,step:16},stroke:{min:.5,max:3,step:.25},radius:{min:0,max:14}},limits:{historyCap:40,recentCommandsCap:5,paletteIconResults:6,logBuffer:300,svgMaxChars:45e5,svgMaxNodes:3e4},toolbar:{sortOptions:[{id:`name`,label:`Name`},{id:`package`,label:`Package`},{id:`category`,label:`Category`}],treatments:[{id:`default`,label:`Stroke`,desc:`Original pack strokes`},{id:`solid`,label:`Solid`,desc:`Bolder, filled weight`},{id:`duotone`,label:`Dual tone`,desc:`Accent shadow layer`},{id:`midtone`,label:`Midtone`,desc:`Softened 50% ink`},{id:`halftone`,label:`Halftone`,desc:`Retro dot-matrix fill`}],sizeUnits:[`px`,`rem`,`em`],copyFormats:Ct.filter(e=>e.copy&&e.defaultCopy).map(e=>({id:e.id,label:e.label})),exportFormats:[{id:`files`,label:`SVG files`,desc:`Individual .svg downloads`,icon:`cube`},{id:`sprite`,label:`SVG sprite`,desc:`One sheet`,icon:`stats`},{id:`manifest`,label:`JSON manifest`,desc:`ids, packs & categories`,icon:`text`},{id:`zip`,label:`ZIP bundle`,desc:`Sprite + manifest + files`,icon:`download`},{id:`css-mask`,label:`CSS mask`,desc:`One class per icon, in currentColor`,icon:`palette`},{id:`data-uri`,label:`Data URI`,desc:`CSS custom properties, colours kept`,icon:`link`}],nativeExports:[{id:`flutter`,href:`https://github.com/ichava/js-icon-components/blob/main/docs/tools/flutter.md`},{id:`swiftui`,href:`https://github.com/ichava/js-icon-components/blob/main/docs/tools/swiftui.md`}]},about:{description:`An SVG engine for Laravel that serves any SVG, icons and illustrations, with a visual browser, REST API and Blade components.`,creditsTitle:`OPEN SOURCE CREDITS`,copyright:`© 2026 Simtabi LLC`,creditsMarqueeSec:64,credits:[{name:`Tabler Icons`,author:`Paweł Kuna`,license:`MIT`},{name:`Flag Icons`,author:`Panayiotis Lipiridis`,license:`MIT`},{name:`Twemoji`,author:`Twitter, Inc. and the jdecked/twemoji maintainers`,license:`CC BY 4.0`},{name:`OpenMoji`,author:`HfG Schwäbisch Gmünd and contributors`,license:`CC BY-SA 4.0`},{name:`Lucide`,author:`Lucide Contributors`,license:`ISC`},{name:`Heroicons`,author:`Tailwind Labs`,license:`MIT`},{name:`Feather`,author:`Cole Bemis`,license:`MIT`},{name:`Bootstrap Icons`,author:`The Bootstrap Authors`,license:`MIT`},{name:`Font Awesome Free`,author:`@fontawesome (Fonticons, Inc.)`,license:`CC BY 4.0`},{name:`Boxicons`,author:`Aniket Suvarna (Atisa)`,license:`MIT`},{name:`Phosphor Icons`,author:`Helena Zhang & Tobias Fried`,license:`MIT`},{name:`Remix Icon`,author:`Remix Design`,license:`Apache-2.0 (v4.8.0)`},{name:`Material Symbols`,author:`Google`,license:`Apache-2.0`},{name:`Material Design Icons`,author:`Pictogrammers`,license:`Apache-2.0`},{name:`Fluent UI System Icons`,author:`Microsoft`,license:`MIT`},{name:`Ionicons`,author:`Ionic`,license:`MIT`},{name:`Carbon Icons`,author:`IBM`,license:`Apache-2.0`},{name:`Octicons`,author:`GitHub`,license:`MIT`},{name:`Iconoir`,author:`Luca Burgio`,license:`MIT`},{name:`Simple Icons`,author:`Simple Icons Collaborators`,license:`CC0-1.0`},{name:`Radix Icons`,author:`WorkOS (Radix)`,license:`MIT`},{name:`IconPark`,author:`ByteDance`,license:`Apache-2.0`},{name:`MingCute`,author:`MingCute Design`,license:`Apache-2.0`},{name:`TDesign Icons`,author:`TDesign (Tencent)`,license:`MIT`},{name:`Siemens iX Icons`,author:`Siemens AG`,license:`MIT`},{name:`Zendesk Garden Icons`,author:`Zendesk`,license:`Apache-2.0`},{name:`coolicons`,author:`Kryston Schwarze`,license:`MIT`},{name:`Eva Icons`,author:`Akveo`,license:`MIT`},{name:`Ant Design Icons`,author:`Ant UED`,license:`MIT`},{name:`Health Icons`,author:`Resolve to Save Lives and the Health Icons contributors`,license:`CC0-1.0`},{name:`Devicon`,author:`konpa and the Devicon contributors`,license:`MIT`},{name:`Fluent Emoji`,author:`Microsoft Corporation`,license:`MIT`},{name:`Pepicons`,author:`CyCraft`,license:`CC BY 4.0`},{name:`Game Icons`,author:`Lorc, Delapouite and the game-icons.net contributors`,license:`CC BY 3.0`},{name:`CoreUI Icons Free`,author:`CoreUI (creativeLabs)`,license:`CC BY 4.0`},{name:`Pinhead`,author:`Wayside Mapping and the Pinhead contributors`,license:`CC0-1.0`},{name:`SVG Logos`,author:`Gil Barbara`,license:`CC0-1.0`},{name:`Noto Emoji`,author:`Google`,license:`Apache-2.0`}],links:[{label:`simtabi.com`,href:`https://simtabi.com`},{label:`Docs`,href:`https://github.com/ichava/icon-browser/tree/main/docs`},{label:`Icon packs`,href:`https://github.com/ichava/core/blob/main/docs/recipes/use-an-icon-pack.md`},{label:`GitHub`,href:`https://github.com/ichava/icon-browser`}],stats:[{key:`indexed`,label:`icons indexed`},{key:`sets`,label:`icon sets`},{key:`license`,label:`license`}]},i18n:{locale:`en`,available:[`en`,`es`,`fr`,`de`,`pt`,`sw`,`ar`]},storageKeys:{persist:`ichava.browser.v2`,driver:`ichava.browser.driver`,paletteRecent:`ichava.palette.recent`,locale:`ichava.locale`,consent:`ichava.consent`},host:null,boot:{},snippets:{tabs:Ct.filter(e=>e.copy).map(e=>e.id),labels:{},templates:{},className:`w-6 h-6`,apiOrigin:``},storage:{frontendDriver:`local`,laravelDriver:`session`},crossLinks:{landing:null}};function wt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Tt(e,t){if(t===void 0)return e;if(Array.isArray(t))return t;if(wt(t)&&wt(e)){let n={...e};for(let r of Object.keys(t))n[r]=Tt(e[r],t[r]);return n}return t??e}function Et(e){return Tt(N,e??{})}var Dt=N.storageKeys.driver,P=N.storageKeys.persist;function F(){try{return window.localStorage}catch{return null}}function I(){try{return window.sessionStorage}catch{return null}}var L=(()=>{let e=F()?.getItem(Dt);return e===`session`||e===`local`?e:N.storage.frontendDriver===`session`?`session`:`local`})();function R(){return L===`session`?I():F()}var Ot=/* @__PURE__ */ new Set;function kt(e){Ot.add(e)}function At(){return R()}function jt(e){try{return R()?.getItem(e)!=null}catch{return!1}}function z(){return L}function Mt(e){if(e===L)return;let t=L===`session`?I():F(),n=e===`session`?I():F();for(let e of[P,...Ot])try{let r=t?.getItem(e);r!=null&&n&&(n.setItem(e,r),t?.removeItem(e))}catch{}L=e;try{F()?.setItem(Dt,e)}catch{}}function Nt(){try{R()?.removeItem(P)}catch{}}var Pt={getItem:e=>R()?.getItem(e)??null,setItem:(e,t)=>{try{R()?.setItem(e,t)}catch{}},removeItem:e=>{try{R()?.removeItem(e)}catch{}}},Ft=l(()=>Pt),B=N.defaults,V={search:``,packages:[...B.packages],categories:[],subs:[],variant:null,sortBy:B.sortBy,sortOrder:B.sortOrder,page:1,perPage:B.perPage,kind:`icon`,tags:[],keywords:[]},It={...B.appearance,adaptMonochrome:B.appearance.adaptMonochrome??!0,get theme(){return xe(B.appearance.theme)}},Lt={...B.render,treatment:B.render.treatment},Rt=B.collections.map(e=>({...e,icons:[...e.icons]})),zt=N.limits.historyCap,Bt=(e,t)=>((e?.[0]??``)+(t?.[0]??e?.[1]??``)).toUpperCase()||`??`,Vt=class{signIn(e,t,n){return t===`000000`?null:{name:n?.user?.name??e.split(`@`)[0],initials:n?.user?.initials??Bt(e),email:e,plan:n?.user?.plan??`PRO`}}createAccount(e){return{name:`${e.first} ${e.last}`.trim(),initials:Bt(e.first,e.last),email:e.email,plan:`FREE`}}signOut(){}};function Ht(e){let t=e.trim().split(/\s+/).filter(Boolean),n=t[0]??``,r=t.length>1?t[t.length-1]??``:n.slice(1);return((n[0]??``)+(r[0]??``)).toUpperCase()||`?`}function Ut(e){return{id:e.id,name:e.name,initials:Ht(e.name),email:``,plan:null,avatarUrl:e.avatarUrl,abilities:e.abilities}}function Wt(e){if(typeof document>`u`)return null;let t=document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`));return t?decodeURIComponent(t.slice(e.length+1)):null}async function Gt(e){let t=Wt(`XSRF-TOKEN`),n=await fetch(e,{method:`POST`,credentials:`same-origin`,headers:{Accept:`text/html,application/json`,"X-Requested-With":`XMLHttpRequest`,...t?{"X-XSRF-TOKEN":t}:{}}});return n.redirected?n.url:null}var Kt=class{#e;#t;#n;#r;constructor(e,t,n={}){this.#e=e?Ut(e):null,this.#t=t,this.#n=n.navigate??(e=>window.location.assign(e)),this.#r=n.logout??Gt}current(){return this.#e}signIn(){return null}createAccount(){throw Error(`Accounts belong to the host application; the browser cannot create one.`)}beginSignIn(){return this.#t.login?(this.#n(this.#t.login),!0):!1}signOut(){let e=this.#t.logout;e&&this.#r(e).catch(()=>null).then(e=>this.#n(e??this.#t.login??window.location.href))}},qt=class{#e;constructor(e){this.#e=e,kt(e),Object.freeze(this)}get key(){return this.#e}read(){try{let e=At()?.getItem(this.#e);return e==null?void 0:JSON.parse(e)}catch{return}}write(e){try{At()?.setItem(this.#e,JSON.stringify(e))}catch{}}};function Jt(e,t){let n={...e};if(!t)return n;for(let r of Object.keys(e)){let e=t[r];e!=null&&(n[r]=e)}return n}function H(){return{...It}}function Yt(e){return{...Jt(H(),{...e,theme:void 0}),theme:e.theme?xe(e.theme):It.theme}}function U(){return{...Lt}}function Xt(e){return Jt(U(),e)}function Zt(e,t){if(t)return{};let n=e.defaults;if(!n)return{};let r=n.appearance,i=n.render;return{filters:{...V,packages:n.packages??V.packages,perPage:n.perPage??V.perPage,sortBy:n.sortBy??V.sortBy,sortOrder:n.sortOrder??V.sortOrder,kind:n.kind??V.kind},...r&&Yt(r),...i&&Xt(i),...n.collections?.length?{collections:n.collections}:{}}}function Qt(e,t,n){return{catalog:null,filtersData:null,config:null,loading:!0,activeWorkspaceId:null,setCatalog:t=>e({catalog:t,loading:!1}),setFiltersData:t=>e({filtersData:t}),setConfig:t=>e(e=>{let r=t.host?{auth:t.host.user?{status:`authed`,user:Ut(t.host.user)}:{status:`guest`,user:null},authInitialized:!0}:!e.authInitialized&&t.user.mode===`authenticated`?{auth:{status:`authed`,user:{name:t.user.name,initials:t.user.initials,email:t.user.email,plan:t.user.plan}},authInitialized:!0}:{};return{config:t,activeWorkspaceId:(e.activeWorkspaceId&&t.user.workspaces.some(t=>t.id===e.activeWorkspaceId)?e.activeWorkspaceId:null)??t.user.workspaces.find(e=>e.active)?.id??t.user.workspaces[0]?.id??null,...r,...Zt(t,n)}}),setActiveWorkspace:t=>e({activeWorkspaceId:t})}}function $t(e,t){return{...H(),locale:Re(),setLocale:t=>{ze(t),e({locale:t})},translationOverrides:{},addTranslations:t=>e(e=>{let n={...e.translationOverrides};for(let[e,r]of Object.entries(t))n[e]={...n[e]??{},...r};return{translationOverrides:n}}),setTheme:t=>e({theme:t}),toggleTheme:()=>e(e=>({theme:e.theme===`dark`?`light`:`dark`})),setAccent:t=>e({accent:t}),setRadius:t=>e({radius:t}),setScale:t=>e({scale:t}),setDensity:t=>e({density:t}),toggleReduceMotion:()=>e(e=>({reduceMotion:!e.reduceMotion})),toggleLabels:()=>e(e=>({showLabels:!e.showLabels})),toggleAdaptMonochrome:()=>e(e=>({adaptMonochrome:!e.adaptMonochrome}))}}function en(e,t){return{filters:V,view:`grid`,catQ:``,collapsedGroups:[],expandedCats:[],searchScope:`icons`,packageQuery:``,sidebarOpen:!1,setSearchScope:t=>e({searchScope:t}),setPackageQuery:t=>e({packageQuery:t}),toggleSidebar:()=>e(e=>({sidebarOpen:!e.sidebarOpen})),setSidebarOpen:t=>e({sidebarOpen:t}),setSearch:t=>e(e=>({filters:p.from(e.filters).search(t).toFilters()})),clearSearch:()=>e(e=>({filters:p.from(e.filters).clearSearch().toFilters()})),togglePackage:t=>e(e=>({filters:p.from(e.filters).togglePackage(t).toFilters()})),selectAllPacks:t=>e(e=>({filters:p.from(e.filters).selectAllPacks(t).toFilters()})),clearPacks:()=>e(e=>({filters:p.from(e.filters).clearPacks().toFilters()})),toggleCat:t=>e(e=>({filters:p.from(e.filters).toggleCategory(t).toFilters()})),toggleSub:(t,n)=>e(e=>({filters:p.from(e.filters).toggleSub(t,n).toFilters()})),clearCats:()=>e(e=>({filters:p.from(e.filters).clearCategories().toFilters()})),setVariant:t=>e(e=>({filters:p.from(e.filters).toggleVariant(t).toFilters()})),setSort:t=>e(e=>({filters:p.from(e.filters).sortBy(t).toFilters()})),toggleOrder:()=>e(e=>({filters:p.from(e.filters).toggleOrder().toFilters()})),setPage:t=>e(e=>({filters:p.from(e.filters).page(t).toFilters()})),nextPage:t=>e(e=>({filters:p.from(e.filters).nextPage(t).toFilters()})),prevPage:()=>e(e=>({filters:p.from(e.filters).prevPage().toFilters()})),setPerPage:t=>e(e=>({filters:p.from(e.filters).perPage(t).toFilters()})),setKind:t=>e(e=>({filters:p.from(e.filters).kind(t).toFilters()})),toggleTag:t=>e(e=>({filters:p.from(e.filters).toggleTag(t).toFilters()})),toggleKeyword:t=>e(e=>({filters:p.from(e.filters).toggleKeyword(t).toFilters()})),clearTerms:()=>e(e=>({filters:p.from(e.filters).clearTerms().toFilters()})),setView:t=>e({view:t}),setCatQ:t=>e({catQ:t}),toggleGroup:t=>e(e=>({collapsedGroups:e.collapsedGroups.includes(t)?e.collapsedGroups.filter(e=>e!==t):[...e.collapsedGroups,t]})),toggleCatExpand:t=>e(e=>({expandedCats:e.expandedCats.includes(t)?e.expandedCats.filter(e=>e!==t):[...e.expandedCats,t]})),toggleExpandAll:(t,n)=>e(e=>e.collapsedGroups.length===0&&n.every(t=>e.expandedCats.includes(t))?{collapsedGroups:[...t],expandedCats:[]}:{collapsedGroups:[],expandedCats:[...n]}),resetFilters:()=>e(e=>({filters:p.from(e.filters).reset(V).toFilters(),catQ:``,color:null,treatment:`default`,selection:[]}))}}function tn(e,t){return{...U(),setSize:t=>e({size:t}),setSizeUnit:t=>e({sizeUnit:t}),setGridStroke:t=>e({gridStroke:t}),setColor:t=>e({color:t}),setTreatment:t=>e({treatment:t}),setCopyFormat:t=>e({copyFormat:t})}}function nn(e,t){return{selection:[],toggleSelect:t=>e(e=>({selection:e.selection.includes(t)?e.selection.filter(e=>e!==t):[...e.selection,t]})),clearSelection:()=>e({selection:[]}),setSelection:t=>e({selection:[...t]})}}var rn=class e{#e;#t;constructor(e,t){this.#e=e,this.#t=t,Object.freeze(this)}static from(t,n){return new e({favorites:t.favorites,history:t.history,collections:t.collections},n.historyCap)}get favorites(){return this.#e.favorites}get history(){return this.#e.history}get collections(){return this.#e.collections}#n(t){return new e({...this.#e,...t},this.#t)}#r(e){return this.#n({collections:this.#e.collections.map(e)})}toggleFavorite(e){let t=this.#e.favorites;return this.#n({favorites:t.includes(e)?t.filter(t=>t!==e):[e,...t]})}record(e,t,n){let r=this.#e.history.filter(n=>n.id!==e||n.action!==t);return this.#n({history:[{id:e,action:t,ts:n},...r].slice(0,this.#t)})}clearHistory(){return this.#n({history:[]})}createCollection(e,t,n=[]){let r=e.trim();return r?this.#n({collections:[...this.#e.collections,{id:t(),name:r,icons:[...new Set(n)]}]}):this}renameCollection(e,t){return this.#r(n=>n.id===e?{...n,name:t.trim()||n.name}:n)}removeCollection(e){return this.#n({collections:this.#e.collections.filter(t=>t.id!==e)})}addTo(e,t){return this.#r(n=>n.id===e&&!n.icons.includes(t)?{...n,icons:[...n.icons,t]}:n)}removeFrom(e,t){return this.#r(n=>n.id===e?{...n,icons:n.icons.filter(e=>e!==t)}:n)}share(e,t){return this.#r(n=>n.id===e?{...n,shared:!0,role:t.role,sharedWith:t.sharedWith}:n)}},an={viewed:`view`,copied:`copy`,downloaded:`download`},on={view:`viewed`,copy:`copied`,download:`downloaded`},sn=e=>`${e.id}:${e.action}:${e.ts}`;function cn(e,t){let n=[],r=(t.libraryDeletions??0)>(e.libraryDeletions??0);if(r&&n.push({kind:`library.delete`}),e.favorites!==t.favorites){let i=new Set(e.favorites),a=new Set(t.favorites);for(let e of a)i.has(e)||n.push({kind:`favorite.add`,iconId:e});if(!r)for(let e of i)a.has(e)||n.push({kind:`favorite.remove`,iconId:e})}if(e.history!==t.history){if(t.history.length===0&&e.history.length>0)n.push({kind:`history.clear`});else{let r=new Set(e.history.map(sn));for(let e of[...t.history].reverse())r.has(sn(e))||n.push({kind:`history.record`,iconId:e.id,action:e.action})}}if(e.collections!==t.collections){let i=new Map(e.collections.map(e=>[e.id,e])),a=new Map(t.collections.map(e=>[e.id,e]));for(let[e,t]of a){let r=i.get(e);if(!r)n.push({kind:`collection.create`,id:e,name:t.name,icons:[...t.icons]});else if(r.name!==t.name&&n.push({kind:`collection.rename`,id:e,name:t.name}),r.icons!==t.icons){let i=new Set(r.icons),a=new Set(t.icons);for(let t of a)i.has(t)||n.push({kind:`collection.add`,id:e,iconId:t});for(let t of i)a.has(t)||n.push({kind:`collection.remove`,id:e,iconId:t})}}if(!r)for(let e of i.keys())a.has(e)||n.push({kind:`collection.delete`,id:e})}let i=e.recentCommands??[],a=t.recentCommands??[];return i!==a&&(a.length===0&&i.length>0?n.push({kind:`command.clear`}):a[0]!==void 0&&(a[0]!==i[0]||a.length!==i.length||a.some((e,t)=>e!==i[t]))&&n.push({kind:`command.log`,command:a[0]})),n}var W={admin:`ichava.admin`,manageCache:`ichava.manage-cache`},ln={status:[W.admin],cacheAdmin:[W.manageCache,W.admin]},un={enabled:!1,reason:`config`,endpoints:{}};function dn(e,t=St){let n=e=>e.split(`.`)[0]??``;return e!==``&&n(e)===n(t)}var fn=[`icon`,`illustration`],pn=e=>fn.includes(e),mn=e=>typeof e==`number`&&Number.isInteger(e)&&e>0?e:null,hn=e=>typeof e==`number`&&Number.isInteger(e)&&e>=0?e:null;function gn(e){if(!e||typeof e!=`object`)return null;let t=e,n=Array.isArray(t.available)?[...new Set(t.available.filter(pn))]:[],r=hn(t.counts?.icon),i=hn(t.counts?.illustration);return!pn(t.default)||!n.length||r===null||i===null?null:{default:t.default,available:n,counts:{icon:r,illustration:i}}}function _n(e){if(!e||typeof e!=`object`)return null;let t=e;return{svgMaxNodes:mn(t.svgMaxNodes),svgMaxChars:mn(t.svgMaxChars)}}function vn(e){if(!e||typeof e!=`object`)return null;let t=e.landing;return{landing:typeof t==`string`&&/^https?:\/\/[^\s/?#]+[^\s]*$/i.test(t)?t:null}}function yn(e){if(!e)return null;let t=e.available.includes(e.default)?e.default:e.available[0]??e.default;return e.counts[t]===0&&(t=e.available.find(t=>e.counts[t]>0)??t),t}var bn=e=>!!e&&typeof e==`object`&&`login`in e&&`logout`in e;function xn(e,t,n,r,i){let a=typeof t.schemaVersion==`string`?t.schemaVersion:``,o=t;return{source:e,schemaVersion:a,compatible:dn(a),locale:typeof t.locale==`string`&&t.locale?t.locale:null,modes:t.modes??{inertia:e===`inertia`,api:e===`rest`},user:n,features:t.features??{},links:r,storage:i,defaultTheme:o.defaultTheme===`dark`||o.defaultTheme===`light`?o.defaultTheme:null,perPage:typeof o.perPage==`number`&&o.perPage>0?o.perPage:null,kinds:gn(t.kinds),limits:_n(t.limits),crossLinks:vn(t.crossLinks)}}function Sn(e){let t=e?.ichava;return!t||typeof t!=`object`||!t.features?null:xn(`inertia`,t,e?.auth??null,bn(t.account)?t.account:{login:null,logout:null},{tier:t.storage?.tier??null,persistent:t.storage?.persistent??null})}function Cn(e){return{...xn(`rest`,e,e.session.user,e.session.links,{tier:e.session.tier,persistent:e.session.persistent}),api:wn(e.api)}}function wn(e){if(!e||typeof e!=`object`)return null;let t={};if(e.endpoints&&!Array.isArray(e.endpoints))for(let[n,r]of Object.entries(e.endpoints))typeof r==`string`&&r!==``&&(t[n]=r);return{version:typeof e.version==`string`?e.version:``,base:typeof e.base==`string`&&e.base?e.base:null,endpoints:t}}function Tn(e,t){return e.features[t]??un}function G(e,t){if(!Tn(e,t).enabled)return!1;let n=ln[t];if(!n)return!0;let r=e.user?.abilities??{};return n.some(e=>r[e]===!0)}function En(e,t,n){if(!G(e,t))return null;let r=Tn(e,t).endpoints;if(Array.isArray(r))return null;let i=r[n];return typeof i==`string`&&i!==``?i:null}function Dn(e,t){return Je(e,t)}function On(e){return kn[e.toLowerCase().split(/[-_]/)[0]??``]}var kn={en:`english`,es:`spanish`,fr:`french`,de:`german`,pt:`portuguese`,ar:`arabic`};function K(e,t){let n=e?.api?.endpoints[t];return typeof n==`string`&&n!==``?n:null}function An(e){let t=K(e,`library.show`);if(!t||!G(e,`library`))return null;let n=(t,n)=>G(e,t)?K(e,n):null;return{library:t,favorites:n(`favorites`,`favorites.list`),collections:n(`collections`,`collections.list`),history:n(`history`,`history.list`),commands:n(`commands`,`commands.list`),preferences:n(`preferences`,`preferences.show`),api:e.api?.endpoints??{}}}var jn=[`favorites`,`collections`,`history`,`commands`,`library`,`preferences`,`status`,`cacheAdmin`,`illustrations`,`searchLanguage`,`export`,`motion`,`themeToggle`,`presence`,`invites`,`sharing`,`notifications`,`workspaces`];function q(e){let t={demo:!1};for(let n of jn)t[n]=G(e,n);let n=e.api?.endpoints[`icons.svg`],r=yn(e.kinds),i={...e.limits?.svgMaxNodes?{svgMaxNodes:e.limits.svgMaxNodes}:{},...e.limits?.svgMaxChars?{svgMaxChars:e.limits.svgMaxChars}:{}},a={...e.perPage?{perPage:e.perPage}:{},...r?{kind:r}:{}};return{features:t,...n?{snippets:{svgEndpoint:n}}:{},...e.defaultTheme?{ui:{defaultTheme:e.defaultTheme}}:{},...Object.keys(a).length?{defaults:a}:{},...Object.keys(i).length?{limits:i}:{},...e.crossLinks?{crossLinks:{landing:e.crossLinks.landing}}:{},...e.locale?{i18n:{locale:e.locale}}:{},host:e}}function Mn(e){let t=Sn(e);return t?q(t):{}}async function Nn(e,t=Xe()){return Cn((await t.request(e,{baseUrl:``})).data)}async function Pn(e,t){return q(await Nn(e,t))}var Fn=e=>e.icons?.length?{name:e.name,icon_ids:[...e.icons]}:{name:e.name},J=(e,...t)=>[e.replace(/\/+$/,``),...t.map(e=>encodeURIComponent(String(e)))].join(`/`),In=class{#e;#t;#n=/* @__PURE__ */ new Map;constructor(e,t){this.#e=e,this.#t=t}#r(e,t=`GET`,n){return this.#t.request(e,{method:t,body:n,baseUrl:``})}serverId(e){return this.#n.get(e)??e}async load(){let e=(await this.#r(this.#e.library)).data??{};return{favorites:(e.favorites??[]).filter(e=>typeof e==`number`),collections:(e.collections??[]).map(e=>({id:String(e.id),name:e.name,icons:[...e.icon_ids??[]]})),history:(e.history??[]).map(e=>({id:e.icon_id,action:on[e.action]??e.action,ts:Date.parse(e.timestamp)||0})),recentCommands:(e.commandHistory??[]).map(e=>e.command)}}async apply(e){if(this.#e.api)return this.#a(e,this.#e.api);let t=this.#e;switch(e.kind){case`favorite.add`:t.favorites&&await this.#r(J(t.favorites,e.iconId),`POST`);return;case`favorite.remove`:t.favorites&&await this.#r(J(t.favorites,e.iconId),`DELETE`);return;case`history.record`:t.history&&await this.#r(t.history,`POST`,{icon_id:e.iconId,action:an[e.action]??e.action});return;case`history.clear`:t.history&&await this.#r(t.history,`DELETE`);return;case`collection.create`:{let n=t.collections;return n?this.#i(e,()=>this.#r(n,`POST`,Fn(e)),(e,t)=>this.#r(J(n,e,`icons`,t),`POST`)):void 0}case`collection.rename`:t.collections&&await this.#r(J(t.collections,this.serverId(e.id)),`PUT`,{name:e.name});return;case`collection.delete`:t.collections&&await this.#r(J(t.collections,this.serverId(e.id)),`DELETE`);return;case`collection.add`:t.collections&&await this.#r(J(t.collections,this.serverId(e.id),`icons`,e.iconId),`POST`);return;case`collection.remove`:t.collections&&await this.#r(J(t.collections,this.serverId(e.id),`icons`,e.iconId),`DELETE`);return;case`command.log`:t.commands&&await this.#r(t.commands,`POST`,{command:e.command,type:`action`});return;case`command.clear`:t.commands&&await this.#r(t.commands,`DELETE`);return;case`library.delete`:await this.#r(t.library,`DELETE`);return}}async#i(e,t,n){let r=await t(),i=r?.data?.id;if(i===void 0)return;let a=String(i);this.#n.set(e.id,a);let o=new Set(r?.data?.icon_ids??[]);for(let t of e.icons??[])o.has(t)||await n(a,t);return{from:e.id,to:a}}async#a(e,t){let n=(e,n={})=>{let r=t[e];return r?Dn(r,n):null},r=async(e,t,n)=>e?this.#r(e,t,n):null;switch(e.kind){case`favorite.add`:await r(n(`favorites.add`,{iconId:e.iconId}),`POST`);return;case`favorite.remove`:await r(n(`favorites.remove`,{iconId:e.iconId}),`DELETE`);return;case`history.record`:await r(n(`history.log`),`POST`,{icon_id:e.iconId,action:an[e.action]??e.action});return;case`history.clear`:await r(n(`history.clear`),`DELETE`);return;case`collection.create`:{let t=n(`collections.create`);return t?this.#i(e,()=>r(t,`POST`,Fn(e)),(e,t)=>r(n(`collections.addIcon`,{collectionId:e,iconId:t}),`POST`)):void 0}case`collection.rename`:await r(n(`collections.rename`,{collectionId:this.serverId(e.id)}),`PUT`,{name:e.name});return;case`collection.delete`:await r(n(`collections.delete`,{collectionId:this.serverId(e.id)}),`DELETE`);return;case`collection.add`:await r(n(`collections.addIcon`,{collectionId:this.serverId(e.id),iconId:e.iconId}),`POST`);return;case`collection.remove`:await r(n(`collections.removeIcon`,{collectionId:this.serverId(e.id),iconId:e.iconId}),`DELETE`);return;case`command.log`:await r(n(`commands.log`),`POST`,{command:e.command,type:`action`});return;case`command.clear`:await r(n(`commands.clear`),`DELETE`);return;case`library.delete`:await r(n(`library.destroy`),`DELETE`);return}}},Y=new qt(N.storageKeys.paletteRecent);function Ln(){let e=Y.read();return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}var Rn=0,X=e=>rn.from(e,{historyCap:zt});function zn(e,t){return{favorites:[],history:[],collections:Rt.map(e=>({...e,icons:[...e.icons]})),toggleFavorite:t=>e(e=>({favorites:X(e).toggleFavorite(t).favorites})),pushHistory:(t,n)=>e(e=>({history:X(e).record(t,n,Date.now()).history})),clearHistory:()=>e(e=>({history:X(e).clearHistory().history})),createCollection:(t,n=[])=>e(e=>{let r=X(e),i=r.createCollection(t,()=>`c-${Date.now().toString(36)}${(++Rn).toString(36)}`,n);return i===r?{}:{collections:i.collections}}),renameCollection:(t,n)=>e(e=>({collections:X(e).renameCollection(t,n).collections})),removeCollection:t=>e(e=>({collections:X(e).removeCollection(t).collections})),addToCollection:(t,n)=>e(e=>({collections:X(e).addTo(t,n).collections})),removeFromCollection:(t,n)=>e(e=>({collections:X(e).removeFrom(t,n).collections})),recentCommands:Ln(),logCommand:n=>{let r=t().config?.limits.recentCommandsCap??N.limits.recentCommandsCap,i=[n,...t().recentCommands.filter(e=>e!==n)].slice(0,r);e({recentCommands:i}),Y.write(i)},clearRecentCommands:()=>{e({recentCommands:[]}),Y.write([])},libraryDeletions:0,deleteLibrary:()=>e(e=>({favorites:[],collections:[],libraryDeletions:e.libraryDeletions+1}))}}var Bn=2e3,Vn=0,Hn=0;function Un(e,t){return{layer:null,detailId:null,libTab:`favorites`,librarySeed:[],openLayer:t=>e({layer:t}),closeLayer:()=>e({layer:null,detailId:null,librarySeed:[]}),openDetail:n=>{e({layer:`detail`,detailId:n}),t().pushHistory(n,`viewed`)},openLibrary:(t,n)=>e({layer:`library`,libTab:t,librarySeed:[...new Set(n?.seed??[])]}),showToast:(t,n=`check`)=>e(e=>({toasts:[...e.toasts,{id:++Hn,msg:t,icon:n}]})),dismissToast:t=>e(e=>({toasts:e.toasts.filter(e=>e.id!==t)})),toasts:[],tasks:[],runTask:async(t,n,r)=>{let i=++Vn,a=setTimeout(()=>e(e=>({tasks:[...e.tasks,{id:i,label:t}]})),r?.delayMs??2e3);try{return await n()}finally{clearTimeout(a),e(e=>e.tasks.some(e=>e.id===i)?{tasks:e.tasks.filter(e=>e.id!==i)}:{})}},ctx:null,openCtx:(t,n,r,i)=>e({ctx:{x:t,y:n,items:r,title:i}}),closeCtx:()=>e({ctx:null}),confirm:null,openConfirm:t=>e({confirm:t}),closeConfirm:()=>e({confirm:null})}}var Wn=/* @__PURE__ */ new WeakMap;function Gn(e,t,n){if(e)return e;if(!t)return n;let r=Wn.get(t);return r||(r=new Kt(t.user,t.links),Wn.set(t,r)),r}function Kn(e,t,n,r){let i=new Vt,a=()=>Gn(r,t().config?.host,i);return{auth:{status:`guest`,user:null},authView:null,authReason:null,authInitialized:!1,openAuth:(t,n)=>{t!==`signout`&&a().beginSignIn?.(t)||e({authView:t,authReason:n??null})},closeAuth:()=>e({authView:null,authReason:null}),signIn:(r,i)=>{let o=a().signIn(r,i,t().config);return o?(e({auth:{status:`authed`,user:o},authView:null,authInitialized:!0}),n.emit(`auth`,`auth.signin`,{email:r}),t().pushNotification({icon:`check`,text:`Signed in — collections and sharing unlocked`}),!0):!1},createAccount:r=>{e({auth:{status:`authed`,user:a().createAccount(r)},authView:null,authInitialized:!0}),n.emit(`auth`,`auth.create`,{email:r.email}),t().pushNotification({icon:`check`,text:`Account created — welcome to Ichava`})},signOut:()=>{e({auth:{status:`guest`,user:null},authView:null,authInitialized:!0}),a().signOut(),n.emit(`auth`,`auth.signout`)}}}var qn=[{icon:`info`,text:`Share link created for "Dashboard set"`,ageMin:0},{icon:`check`,text:`Signed in — collections and sharing unlocked`,ageMin:1},{icon:`info`,text:`Jonas D. added 3 icons to "Dashboard set"`,ageMin:8},{icon:`info`,text:`Preferences restored from local storage`,ageMin:20,read:!0}],Jn=0;function Yn(e,t){return{notifications:[],seedDemoNotifications:()=>e(e=>e.notifications.length?{}:{notifications:qn.map((e,t)=>({id:`seed-${t}`,icon:e.icon,text:e.text,ts:Date.now()-e.ageMin*6e4,read:e.read??!1}))}),pushNotification:t=>e(e=>({notifications:[{id:`n-${++Jn}`,icon:t.icon,text:t.text,ts:Date.now(),read:!1},...e.notifications].slice(0,50)})),markNotificationsRead:()=>e(e=>({notifications:e.notifications.map(e=>({...e,read:!0}))})),clearNotifications:()=>e({notifications:[]})}}var Z={min:120,max:1600,default:260};function Xn(e,t,n){return{devtools:{open:!1,tab:`events`,events:[],capturing:!0},toggleDevtools:()=>e(e=>{let t=!e.devtools.open;return n.emit(`devtools`,`devtools.toggle`,{open:t}),{devtools:{...e.devtools,open:t}}}),setDevToolsTab:t=>e(e=>({devtools:{...e.devtools,tab:t}})),pushDevEvent:t=>e(e=>e.devtools.capturing?{devtools:{...e.devtools,events:[t,...e.devtools.events].slice(0,200)}}:{}),clearDevEvents:()=>e(e=>({devtools:{...e.devtools,events:[]}})),setCapturing:t=>e(e=>({devtools:{...e.devtools,capturing:t}})),devtoolsLayout:{dock:`bottom`,size:Z.default},setDevtoolsDock:t=>e(e=>({devtoolsLayout:{...e.devtoolsLayout,dock:t}})),setDevtoolsSize:t=>e(e=>({devtoolsLayout:{...e.devtoolsLayout,size:Math.round(Math.min(Z.max,Math.max(Z.min,t)))}}))}}var Zn=e=>rn.from(e,{historyCap:zt});function Qn(e,t,n){return{inviteOpen:!1,accessCollectionId:null,sharedOpen:!1,openShared:()=>e({sharedOpen:!0}),closeShared:()=>e({sharedOpen:!1}),openInvite:()=>e({inviteOpen:!0}),closeInvite:()=>e({inviteOpen:!1}),openAccess:t=>e({accessCollectionId:t}),closeAccess:()=>e({accessCollectionId:null}),shareCollection:(r,i)=>{e(e=>({collections:Zn(e).share(r,i).collections}));let a=t().collections.find(e=>e.id===r);n.emit(`share`,`collection.shareLink`,{id:r}),t().pushNotification({icon:`info`,text:`Share link created for "${a?.name??`collection`}"`})}}}function $n(e,t,n){return{storageDriver:z(),setStorageDriver:t=>{Mt(t),e({storageDriver:t}),n.emit(`storage`,`storage.driver`,{driver:t})}}}function er(e,t){return{tour:{active:!1,step:0},tourSeen:!1,startTour:()=>e({tour:{active:!0,step:0}}),nextTourStep:()=>e(e=>({tour:{...e.tour,step:e.tour.step+1}})),prevTourStep:()=>e(e=>({tour:{...e.tour,step:Math.max(0,e.tour.step-1)}})),skipTour:()=>e({tour:{active:!1,step:0},tourSeen:!0}),endTour:()=>e({tour:{active:!1,step:0},tourSeen:!0}),consent:Ve(),setConsent:t=>{e({consent:t}),w(t)}}}function tr(e,t){return{boot:{phase:`idle`,progress:0,label:``,done:!1},setBoot:t=>e(e=>({boot:{...e.boot,...t}}))}}function nr(e,t){return{factoryReset:()=>{e({...t().config?.host?{}:{favorites:[],history:[],collections:[]},filters:{...V},view:`grid`,catQ:``,collapsedGroups:[],...U(),searchScope:`icons`,selection:[],...H(),layer:null,detailId:null,librarySeed:[],notifications:[],consent:null,tourSeen:!1}),w(null)}}}function rr(e){return p.from(e).toListParams()}var ir={getItem:()=>null,setItem:()=>{},removeItem:()=>{}},ar=0,or=/* @__PURE__ */ new WeakMap;function sr(e){return or.get(e)}function cr({persistKey:e=N.storageKeys.persist,devBus:t,identity:n}={}){let r=t??xt.child(`store-${++ar}`),i=e!==null&&jt(e),a=c()(u((e,t)=>({...Qt(e,t,i),...$t(e,t),...en(e,t),...tn(e,t),...nn(e,t),...zn(e,t),...Un(e,t),...Kn(e,t,r,n),...Yn(e,t),...Xn(e,t,r),...Qn(e,t,r),...$n(e,t,r),...er(e,t),...tr(e,t),...nr(e,t)}),{name:e??`ichava.browser.ephemeral`,version:5,storage:e===null?ir:Ft,migrate:e=>{let t=e??{},n=t.filters;return n&&(!Array.isArray(n.categories)||!(`sortBy`in n))?delete t.filters:n&&(Array.isArray(n.subs)||(n.subs=[]),n.kind!==`icon`&&n.kind!==`illustration`&&(n.kind=`icon`),Array.isArray(n.tags)||(n.tags=[]),Array.isArray(n.keywords)||(n.keywords=[])),Array.isArray(t.favorites)&&t.favorites.some(e=>typeof e!=`number`)&&(t.favorites=[]),delete t.locale,t},merge:(e,t)=>({...t,...e,locale:Re(),consent:Ue(e?.consent)}),partialize:e=>({theme:e.theme,accent:e.accent,radius:e.radius,scale:e.scale,density:e.density,reduceMotion:e.reduceMotion,showLabels:e.showLabels,adaptMonochrome:e.adaptMonochrome,filters:e.filters,view:e.view,searchScope:e.searchScope,size:e.size,sizeUnit:e.sizeUnit,gridStroke:e.gridStroke,color:e.color,treatment:e.treatment,copyFormat:e.copyFormat,favorites:e.favorites,history:e.history,collections:e.collections,auth:e.auth,authInitialized:e.authInitialized,activeWorkspaceId:e.activeWorkspaceId,notifications:e.notifications,storageDriver:e.storageDriver,tourSeen:e.tourSeen,consent:e.consent,devtoolsLayout:e.devtoolsLayout}),onRehydrateStorage:()=>e=>{if(!e)return;let t=Object.keys(e).length;r.emit(`storage`,`state.restore`,{driver:z(),keys:t})}}));return or.set(a,r),a}var lr=cr(),ur=e(null),dr=ur.Provider;function fr(){return i(ur)??lr}function pr(e){return fr()(e)}var mr={outline:{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},filled:{xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`currentColor`,stroke:`none`}},Q=(e,r,i,a)=>{let o=n(({color:n=`currentColor`,size:i=24,stroke:o=2,title:s,className:c,children:l,...u},d)=>t(`svg`,{ref:d,...mr[e],width:i,height:i,className:[`tabler-icon`,`tabler-icon-${r}`,c].filter(Boolean).join(` `),...e===`filled`?{fill:n}:{strokeWidth:o,stroke:n},...u},[s&&t(`title`,{key:`svg-title`},s),...a.map(([e,n])=>t(e,n)),...Array.isArray(l)?l:[l]]));return o.displayName=`${i}`,o},hr=Q(`outline`,`arrow-down`,`ArrowDown`,[[`path`,{d:`M12 5l0 14`,key:`svg-0`}],[`path`,{d:`M18 13l-6 6`,key:`svg-1`}],[`path`,{d:`M6 13l6 6`,key:`svg-2`}]]),gr=Q(`outline`,`arrow-left`,`ArrowLeft`,[[`path`,{d:`M5 12l14 0`,key:`svg-0`}],[`path`,{d:`M5 12l6 6`,key:`svg-1`}],[`path`,{d:`M5 12l6 -6`,key:`svg-2`}]]),_r=Q(`outline`,`arrow-right`,`ArrowRight`,[[`path`,{d:`M5 12l14 0`,key:`svg-0`}],[`path`,{d:`M13 18l6 -6`,key:`svg-1`}],[`path`,{d:`M13 6l6 6`,key:`svg-2`}]]),vr=Q(`outline`,`arrow-up`,`ArrowUp`,[[`path`,{d:`M12 5l0 14`,key:`svg-0`}],[`path`,{d:`M18 11l-6 -6`,key:`svg-1`}],[`path`,{d:`M6 11l6 -6`,key:`svg-2`}]]),yr=Q(`outline`,`check`,`Check`,[[`path`,{d:`M5 12l5 5l10 -10`,key:`svg-0`}]]),br=Q(`outline`,`chevron-down`,`ChevronDown`,[[`path`,{d:`M6 9l6 6l6 -6`,key:`svg-0`}]]),xr=Q(`outline`,`chevron-right`,`ChevronRight`,[[`path`,{d:`M9 6l6 6l-6 6`,key:`svg-0`}]]),Sr=Q(`outline`,`corner-down-left`,`CornerDownLeft`,[[`path`,{d:`M18 6v6a3 3 0 0 1 -3 3h-10l4 -4m0 8l-4 -4`,key:`svg-0`}]]),Cr=Q(`outline`,`dots-vertical`,`DotsVertical`,[[`path`,{d:`M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-0`}],[`path`,{d:`M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}]]),wr=Q(`outline`,`eye-off`,`EyeOff`,[[`path`,{d:`M10.585 10.587a2 2 0 0 0 2.829 2.828`,key:`svg-0`}],[`path`,{d:`M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87`,key:`svg-1`}],[`path`,{d:`M3 3l18 18`,key:`svg-2`}]]),Tr=Q(`outline`,`eye`,`Eye`,[[`path`,{d:`M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0`,key:`svg-0`}],[`path`,{d:`M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6`,key:`svg-1`}]]),Er=Q(`outline`,`folder`,`Folder`,[[`path`,{d:`M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2`,key:`svg-0`}]]),Dr=Q(`outline`,`grid-dots`,`GridDots`,[[`path`,{d:`M4 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-0`}],[`path`,{d:`M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M18 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}],[`path`,{d:`M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-3`}],[`path`,{d:`M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-4`}],[`path`,{d:`M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-5`}],[`path`,{d:`M4 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-6`}],[`path`,{d:`M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-7`}],[`path`,{d:`M18 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-8`}]]),Or=Q(`outline`,`grip-horizontal`,`GripHorizontal`,[[`path`,{d:`M4 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-0`}],[`path`,{d:`M4 15a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M11 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}],[`path`,{d:`M11 15a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-3`}],[`path`,{d:`M18 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-4`}],[`path`,{d:`M18 15a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-5`}]]),kr=Q(`outline`,`help-circle`,`HelpCircle`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0`,key:`svg-0`}],[`path`,{d:`M12 16v.01`,key:`svg-1`}],[`path`,{d:`M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483`,key:`svg-2`}]]),Ar=Q(`outline`,`info-circle`,`InfoCircle`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0`,key:`svg-0`}],[`path`,{d:`M12 9h.01`,key:`svg-1`}],[`path`,{d:`M11 12h1v4h1`,key:`svg-2`}]]),jr=Q(`outline`,`layout-bottombar`,`LayoutBottombar`,[[`path`,{d:`M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12`,key:`svg-0`}],[`path`,{d:`M4 15l16 0`,key:`svg-1`}]]),Mr=Q(`outline`,`layout-navbar`,`LayoutNavbar`,[[`path`,{d:`M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12`,key:`svg-0`}],[`path`,{d:`M4 9l16 0`,key:`svg-1`}]]),Nr=Q(`outline`,`layout-sidebar-right`,`LayoutSidebarRight`,[[`path`,{d:`M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12`,key:`svg-0`}],[`path`,{d:`M15 4l0 16`,key:`svg-1`}]]),Pr=Q(`outline`,`layout-sidebar`,`LayoutSidebar`,[[`path`,{d:`M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12`,key:`svg-0`}],[`path`,{d:`M9 4l0 16`,key:`svg-1`}]]),Fr=Q(`outline`,`package`,`Package`,[[`path`,{d:`M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5`,key:`svg-0`}],[`path`,{d:`M12 12l8 -4.5`,key:`svg-1`}],[`path`,{d:`M12 12l0 9`,key:`svg-2`}],[`path`,{d:`M12 12l-8 -4.5`,key:`svg-3`}],[`path`,{d:`M16 5.25l-8 4.5`,key:`svg-4`}]]),Ir=Q(`outline`,`rosette-discount-check`,`RosetteDiscountCheck`,[[`path`,{d:`M5 7.2a2.2 2.2 0 0 1 2.2 -2.2h1a2.2 2.2 0 0 0 1.55 -.64l.7 -.7a2.2 2.2 0 0 1 3.12 0l.7 .7c.412 .41 .97 .64 1.55 .64h1a2.2 2.2 0 0 1 2.2 2.2v1c0 .58 .23 1.138 .64 1.55l.7 .7a2.2 2.2 0 0 1 0 3.12l-.7 .7a2.2 2.2 0 0 0 -.64 1.55v1a2.2 2.2 0 0 1 -2.2 2.2h-1a2.2 2.2 0 0 0 -1.55 .64l-.7 .7a2.2 2.2 0 0 1 -3.12 0l-.7 -.7a2.2 2.2 0 0 0 -1.55 -.64h-1a2.2 2.2 0 0 1 -2.2 -2.2v-1a2.2 2.2 0 0 0 -.64 -1.55l-.7 -.7a2.2 2.2 0 0 1 0 -3.12l.7 -.7a2.2 2.2 0 0 0 .64 -1.55v-1`,key:`svg-0`}],[`path`,{d:`M9 12l2 2l4 -4`,key:`svg-1`}]]),Lr=Q(`outline`,`search`,`Search`,[[`path`,{d:`M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0`,key:`svg-0`}],[`path`,{d:`M21 21l-6 -6`,key:`svg-1`}]]),Rr=Q(`outline`,`settings`,`Settings`,[[`path`,{d:`M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065`,key:`svg-0`}],[`path`,{d:`M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0`,key:`svg-1`}]]),zr=Q(`outline`,`sparkles`,`Sparkles`,[[`path`,{d:`M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2m0 -12a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2m-7 12a6 6 0 0 1 6 -6a6 6 0 0 1 -6 -6a6 6 0 0 1 -6 6a6 6 0 0 1 6 6`,key:`svg-0`}]]),Br=Q(`outline`,`user`,`User`,[[`path`,{d:`M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0`,key:`svg-0`}],[`path`,{d:`M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2`,key:`svg-1`}]]),Vr=Q(`outline`,`x`,`X`,[[`path`,{d:`M18 6l-12 12`,key:`svg-0`}],[`path`,{d:`M6 6l12 12`,key:`svg-1`}]]);function Hr(){let e=pr(e=>e.locale),t=pr(e=>e.translationOverrides),n=s(it,j,j);a(()=>{A(e)},[e]);let i=o(()=>st(e,t),[e,t,n]);return r((e,t)=>i.t(e,t),[i])}function Ur(e){return s(it,j,j),a(()=>{A(e)},[e]),nt(e)}function $(e,t){let n=t=>/* @__PURE__ */ d(e,{stroke:1.75,"aria-hidden":`true`,...t});return n.displayName=t,n}var Wr=$(hr,`ArrowDown`),Gr=$(gr,`ArrowLeft`),Kr=$(_r,`ArrowRight`),qr=$(vr,`ArrowUp`),Jr=$(yr,`Check`),Yr=$(Ir,`CheckVerified02`),Xr=$(br,`ChevronDown`),Zr=$(xr,`ChevronRight`),Qr=$(Sr,`CornerDownLeft`),$r=$(Dr,`DotsGrid`),ei=$(Cr,`DotsVertical`),ti=$(Tr,`Eye`),ni=$(wr,`EyeOff`),ri=$(Er,`Folder`),ii=$(Or,`GripHorizontal`),ai=$(kr,`HelpCircle`),oi=$(Ar,`InfoCircle`),si=$(jr,`LayoutBottom`),ci=$(Pr,`LayoutLeft`),li=$(Nr,`LayoutRight`),ui=$(Mr,`LayoutTop`),di=$(Fr,`Package`),fi=$(Lr,`SearchLg`),pi=$(Lr,`SearchMd`),mi=$(Rr,`Settings01`),hi=$(zr,`Stars01`),gi=$(Br,`User01`),_i=$(Vr,`X`);export{Bn as $,se as $t,Hr as A,ht as At,br as B,Ke as Bt,fi as C,N as Ct,gi as D,St as Dt,hi as E,Ct as Et,Fr as F,at as Ft,dr as G,Ae as Gt,vr as H,He as Ht,Ar as I,ct as It,cr as J,fe as Jt,pr as K,Oe as Kt,Er as L,Xe as Lt,zr as M,rt as Mt,Rr as N,A as Nt,_i as O,xt as Ot,Lr as P,Qe as Pt,Z as Q,ae as Qt,Tr as R,Je as Rt,di as S,z as St,mi as T,Et as Tt,hr as U,Me as Ut,yr as V,qe as Vt,Q as W,x as Wt,rr as X,oe as Xt,sr as Y,de as Yt,lr as Z,le as Zt,oi as _,Kt as _t,Jr as a,W as at,li as b,P as bt,Zr as c,G as ct,ei as d,Cn as dt,ie as en,In as et,ti as f,Sn as ft,ai as g,cn as gt,ii as h,On as ht,qr as i,Nn as it,Vr as j,D as jt,Ur as k,yt as kt,Qr as l,Dn as lt,ri as m,An as mt,Gr as n,Mn as nt,Yr as o,K as ot,ni as p,dn as pt,fr as q,ke as qt,Kr as r,Pn as rt,Xr as s,En as st,Wr as t,q as tt,$r as u,wn as ut,si as v,Vt as vt,pi as w,Tt as wt,ui as x,Nt as xt,ci as y,V as yt,xr as z,Ge as zt}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/cx-B63ov-ZV.js b/resources/vendor/react-icon-browser/cx-B63ov-ZV.js deleted file mode 100644 index 57af198..0000000 --- a/resources/vendor/react-icon-browser/cx-B63ov-ZV.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -var e=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t({classGroupId:e,validator:t}),n=(e=/* @__PURE__ */ new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),r=`-`,i=[],a=`arbitrary..`,o=t=>{let n=l(t),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=t;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return c(e);let t=e.split(r);return s(t,+(t[0]===``&&t.length>1),n)},getConflictingClassGroupIds:(t,n)=>{if(n){let n=o[t],r=a[t];return n?r?e(r,n):n:r||i}return a[t]||i}}},s=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let i=e[t],a=n.nextPart.get(i);if(a){let n=s(e,t+1,a);if(n)return n}let o=n.validators;if(o===null)return;let c=t===0?e.join(r):e.slice(t).join(r),l=o.length;for(let e=0;ee.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?a+r:void 0})(),l=e=>{let{theme:t,classGroups:n}=e;return u(n,t)},u=(e,t)=>{let r=n();for(let n in e){let i=e[n];d(i,r,n,t)}return r},d=(e,t,n,r)=>{let i=e.length;for(let a=0;a{typeof e==`string`?f(e,t,n):typeof e==`function`?p(e,t,n,r):m(e,t,n,r)},f=(e,t,n)=>{let r=e===``?t:h(t,e);r.classGroupId=n},p=(e,n,r,i)=>{g(e)?d(e(i),n,r,i):(n.validators===null&&(n.validators=[]),n.validators.push(t(r,e)))},m=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e{let i=e,a=t.split(r),o=a.length;for(let e=0;e`isThemeGetter`in e&&e.isThemeGetter===!0,te=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},_=`!`,v=`:`,y=[],b=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),x=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;si?a-i:void 0;return b(t,l,c,u)};if(t){let e=t+v,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):b(y,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},S=e=>{let t=/* @__PURE__ */ new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},C=e=>({cache:te(e.cacheSize),parseClassName:x(e),sortModifiers:S(e),postfixLookupClassGroupIds:ne(e),...o(e)}),ne=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(re),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:ee,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let m=!!p,h;if(m){h=r(f.substring(0,p));let e=h&&o[h]?r(f):void 0;e&&e!==h&&(h=e,m=!1)}else h=r(f);if(!h){if(!m||(h=r(f),!h)){l=t+(l.length>0?` `+l:l);continue}m=!1}let g=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),te=ee?g+_:g,v=te+h;if(s.indexOf(v)>-1)continue;s.push(v);let y=i(h,m);for(let e=0;e0?` `+l:l)}return l},ie=(...e)=>{let t=0,n,r,i=``;for(;t{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r{let n,r,i,a,o=o=>(n=C(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=w(e,n);return i(e,a),a};return a=o,(...e)=>a(ie(...e))},D=[],O=e=>{let t=t=>t[e]||D;return t.isThemeGetter=!0,t.themeKey=e,t},k=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,A=/^\((?:(\w[\w-]*):)?(.+)\)$/i,j=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,M=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ae=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,oe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,se=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,N=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,P=e=>j.test(e),F=e=>!!e&&!Number.isNaN(Number(e)),I=e=>!!e&&Number.isInteger(Number(e)),ce=e=>e.endsWith(`%`)&&F(e.slice(0,-1)),L=e=>M.test(e),le=()=>!0,R=e=>ae.test(e)&&!oe.test(e),z=()=>!1,B=e=>se.test(e),ue=e=>N.test(e),de=e=>!V(e)&&!W(e),fe=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),pe=e=>q(e,Z,z),V=e=>k.test(e),H=e=>q(e,Q,R),me=e=>q(e,we,F),he=e=>q(e,Ee,le),ge=e=>q(e,Te,z),_e=e=>q(e,Y,z),ve=e=>q(e,X,ue),U=e=>q(e,De,B),W=e=>A.test(e),G=e=>J(e,Q),ye=e=>J(e,Te),be=e=>J(e,Y),xe=e=>J(e,Z),Se=e=>J(e,X),K=e=>J(e,De,!0),Ce=e=>J(e,Ee,!0),q=(e,t,n)=>{let r=k.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},J=(e,t,n=!1)=>{let r=A.exec(e);return r?r[1]?t(r[1]):n:!1},Y=e=>e===`position`||e===`percentage`,X=e=>e===`image`||e===`url`,Z=e=>e===`length`||e===`size`||e===`bg-size`,Q=e=>e===`length`,we=e=>e===`number`,Te=e=>e===`family-name`,Ee=e=>e===`number`||e===`weight`,De=e=>e===`shadow`,Oe=()=>{let e=O(`color`),t=O(`font`),n=O(`text`),r=O(`font-weight`),i=O(`tracking`),a=O(`leading`),o=O(`breakpoint`),s=O(`container`),c=O(`spacing`),l=O(`radius`),u=O(`shadow`),d=O(`inset-shadow`),ee=O(`text-shadow`),f=O(`drop-shadow`),p=O(`blur`),m=O(`perspective`),h=O(`aspect`),g=O(`ease`),te=O(`animate`),_=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],v=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],y=()=>[...v(),W,V],b=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],x=()=>[`auto`,`contain`,`none`],S=()=>[W,V,c],C=()=>[P,`full`,`auto`,...S()],ne=()=>[I,`none`,`subgrid`,W,V],re=()=>[`auto`,{span:[`full`,I,W,V]},I,W,V],w=()=>[I,`auto`,W,V],ie=()=>[`auto`,`min`,`max`,`fr`,W,V],T=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],E=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],D=()=>[`auto`,...S()],k=()=>[P,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...S()],A=()=>[s,P,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...S()],j=()=>[P,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...S()],M=()=>[e,W,V],ae=()=>[...v(),be,_e,{position:[W,V]}],oe=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],se=()=>[`auto`,`cover`,`contain`,xe,pe,{size:[W,V]}],N=()=>[ce,G,H],R=()=>[``,`none`,`full`,l,W,V],z=()=>[``,F,G,H],B=()=>[`solid`,`dashed`,`dotted`,`double`],ue=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],q=()=>[F,ce,be,_e],J=()=>[``,`none`,p,W,V],Y=()=>[`none`,F,W,V],X=()=>[`none`,F,W,V],Z=()=>[F,W,V],Q=()=>[P,`full`,...S()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[L],breakpoint:[L],color:[le],container:[L],"drop-shadow":[L],ease:[`in`,`out`,`in-out`],font:[de],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[L],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[L],shadow:[L],spacing:[`px`,F],text:[L],"text-shadow":[L],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,P,V,W,h]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,W,V]}],"container-named":[fe],columns:[{columns:[F,`auto`,V,W,s]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:y()}],overflow:[{overflow:b()}],"overflow-x":[{"overflow-x":b()}],"overflow-y":[{"overflow-y":b()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{"inset-s":C(),start:C()}],end:[{"inset-e":C(),end:C()}],"inset-bs":[{"inset-bs":C()}],"inset-be":[{"inset-be":C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[I,`auto`,W,V]}],basis:[{basis:[P,`full`,`auto`,s,...S()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[F,P,`auto`,`initial`,`none`,V]}],grow:[{grow:[``,F,W,V]}],shrink:[{shrink:[``,F,W,V]}],order:[{order:[I,`first`,`last`,`none`,W,V]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:re()}],"col-start":[{"col-start":w()}],"col-end":[{"col-end":w()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:re()}],"row-start":[{"row-start":w()}],"row-end":[{"row-end":w()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":ie()}],"auto-rows":[{"auto-rows":ie()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...T(),`normal`]}],"justify-items":[{"justify-items":[...E(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...E()]}],"align-content":[{content:[`normal`,...T()]}],"align-items":[{items:[...E(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...E(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":T()}],"place-items":[{"place-items":[...E(),`baseline`]}],"place-self":[{"place-self":[`auto`,...E()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:D()}],mx:[{mx:D()}],my:[{my:D()}],ms:[{ms:D()}],me:[{me:D()}],mbs:[{mbs:D()}],mbe:[{mbe:D()}],mt:[{mt:D()}],mr:[{mr:D()}],mb:[{mb:D()}],ml:[{ml:D()}],"space-x":[{"space-x":S()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":S()}],"space-y-reverse":[`space-y-reverse`],size:[{size:k()}],"inline-size":[{inline:[`auto`,...A()]}],"min-inline-size":[{"min-inline":[`auto`,...A()]}],"max-inline-size":[{"max-inline":[`none`,...A()]}],"block-size":[{block:[`auto`,...j()]}],"min-block-size":[{"min-block":[`auto`,...j()]}],"max-block-size":[{"max-block":[`none`,...j()]}],w:[{w:[s,`screen`,...k()]}],"min-w":[{"min-w":[s,`screen`,`none`,...k()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...k()]}],h:[{h:[`screen`,`lh`,...k()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...k()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...k()]}],"font-size":[{text:[`base`,n,G,H]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Ce,he]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,ce,V]}],"font-family":[{font:[ye,ge,t]}],"font-features":[{"font-features":[V]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,W,V]}],"line-clamp":[{"line-clamp":[F,`none`,W,me]}],leading:[{leading:[`none`,a,...S()]}],"list-image":[{"list-image":[`none`,W,V]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,W,V]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...B(),`wavy`]}],"text-decoration-thickness":[{decoration:[F,`from-font`,`auto`,W,H]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[F,`auto`,W,V]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:S()}],"tab-size":[{tab:[I,W,V]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,W,V]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,W,V]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:ae()}],"bg-repeat":[{bg:oe()}],"bg-size":[{bg:se()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},I,W,V],radial:[``,W,V],conic:[``,I,W,V]},Se,ve]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:N()}],"gradient-via-pos":[{via:N()}],"gradient-to-pos":[{to:N()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:z()}],"border-w-x":[{"border-x":z()}],"border-w-y":[{"border-y":z()}],"border-w-s":[{"border-s":z()}],"border-w-e":[{"border-e":z()}],"border-w-bs":[{"border-bs":z()}],"border-w-be":[{"border-be":z()}],"border-w-t":[{"border-t":z()}],"border-w-r":[{"border-r":z()}],"border-w-b":[{"border-b":z()}],"border-w-l":[{"border-l":z()}],"divide-x":[{"divide-x":z()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":z()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...B(),`hidden`,`none`]}],"divide-style":[{divide:[...B(),`hidden`,`none`]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-bs":[{"border-bs":M()}],"border-color-be":[{"border-be":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}],"divide-color":[{divide:M()}],"outline-style":[{outline:[...B(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[F,W,V]}],"outline-w":[{outline:[``,F,G,H]}],"outline-color":[{outline:M()}],shadow:[{shadow:[``,`inner`,`none`,u,K,U]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":[`none`,d,K,U]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:z()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[F,H]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":z()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":[`none`,ee,K,U]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[F,W,V]}],"mix-blend":[{"mix-blend":[...ue(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ue()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[F]}],"mask-image-linear-from-pos":[{"mask-linear-from":q()}],"mask-image-linear-to-pos":[{"mask-linear-to":q()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":q()}],"mask-image-t-to-pos":[{"mask-t-to":q()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":q()}],"mask-image-r-to-pos":[{"mask-r-to":q()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":q()}],"mask-image-b-to-pos":[{"mask-b-to":q()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":q()}],"mask-image-l-to-pos":[{"mask-l-to":q()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":q()}],"mask-image-x-to-pos":[{"mask-x-to":q()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":q()}],"mask-image-y-to-pos":[{"mask-y-to":q()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[W,V]}],"mask-image-radial-from-pos":[{"mask-radial-from":q()}],"mask-image-radial-to-pos":[{"mask-radial-to":q()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[F]}],"mask-image-conic-from-pos":[{"mask-conic-from":q()}],"mask-image-conic-to-pos":[{"mask-conic-to":q()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:ae()}],"mask-repeat":[{mask:oe()}],"mask-size":[{mask:se()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,W,V]}],filter:[{filter:[``,`none`,W,V]}],blur:[{blur:J()}],brightness:[{brightness:[F,W,V]}],contrast:[{contrast:[F,W,V]}],"drop-shadow":[{"drop-shadow":[``,`none`,f,K,U]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:[``,F,W,V]}],"hue-rotate":[{"hue-rotate":[F,W,V]}],invert:[{invert:[``,F,W,V]}],saturate:[{saturate:[F,W,V]}],sepia:[{sepia:[``,F,W,V]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,W,V]}],"backdrop-blur":[{"backdrop-blur":J()}],"backdrop-brightness":[{"backdrop-brightness":[F,W,V]}],"backdrop-contrast":[{"backdrop-contrast":[F,W,V]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,F,W,V]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[F,W,V]}],"backdrop-invert":[{"backdrop-invert":[``,F,W,V]}],"backdrop-opacity":[{"backdrop-opacity":[F,W,V]}],"backdrop-saturate":[{"backdrop-saturate":[F,W,V]}],"backdrop-sepia":[{"backdrop-sepia":[``,F,W,V]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,W,V]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[F,`initial`,W,V]}],ease:[{ease:[`linear`,`initial`,g,W,V]}],delay:[{delay:[F,W,V]}],animate:[{animate:[`none`,te,W,V]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[m,W,V]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:Y()}],"rotate-x":[{"rotate-x":Y()}],"rotate-y":[{"rotate-y":Y()}],"rotate-z":[{"rotate-z":Y()}],scale:[{scale:X()}],"scale-x":[{"scale-x":X()}],"scale-y":[{"scale-y":X()}],"scale-z":[{"scale-z":X()}],"scale-3d":[`scale-3d`],skew:[{skew:Z()}],"skew-x":[{"skew-x":Z()}],"skew-y":[{"skew-y":Z()}],transform:[{transform:[W,V,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:Q()}],"translate-x":[{"translate-x":Q()}],"translate-y":[{"translate-y":Q()}],"translate-z":[{"translate-z":Q()}],"translate-none":[`translate-none`],zoom:[{zoom:[I,W,V]}],accent:[{accent:M()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:M()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,W,V]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":M()}],"scrollbar-track-color":[{"scrollbar-track":M()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,W,V]}],fill:[{fill:[`none`,...M()]}],"stroke-w":[{stroke:[F,G,H,me]}],stroke:[{stroke:[`none`,...M()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`start`,`end`,`right`,`left`],"inset-y":[`inset-bs`,`inset-be`,`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`ps`,`pe`,`pr`,`pl`],py:[`pbs`,`pbe`,`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`ms`,`me`,`mr`,`ml`],my:[`mbs`,`mbe`,`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-s`,`border-w-e`,`border-w-r`,`border-w-l`],"border-w-y":[`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-s`,`border-color-e`,`border-color-r`,`border-color-l`],"border-color-y":[`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-ms`,`scroll-me`,`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-ps`,`scroll-pe`,`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}},ke=(e,{cacheSize:t,prefix:n,experimentalParseClassName:r,extend:i={},override:a={}})=>($(e,`cacheSize`,t),$(e,`prefix`,n),$(e,`experimentalParseClassName`,r),Ae(e.theme,a.theme),Ae(e.classGroups,a.classGroups),Ae(e.conflictingClassGroups,a.conflictingClassGroups),Ae(e.conflictingClassGroupModifiers,a.conflictingClassGroupModifiers),$(e,`postfixLookupClassGroups`,a.postfixLookupClassGroups),$(e,`orderSensitiveModifiers`,a.orderSensitiveModifiers),je(e.theme,i.theme),je(e.classGroups,i.classGroups),je(e.conflictingClassGroups,i.conflictingClassGroups),je(e.conflictingClassGroupModifiers,i.conflictingClassGroupModifiers),Me(e,i,`postfixLookupClassGroups`),Me(e,i,`orderSensitiveModifiers`),e),$=(e,t,n)=>{n!==void 0&&(e[t]=n)},Ae=(e,t)=>{if(t)for(let n in t)$(e,n,t[n])},je=(e,t)=>{if(t)for(let n in t)Me(e,t,n)},Me=(e,t,n)=>{let r=t[n];r!==void 0&&(e[n]=e[n]?e[n].concat(r):r)},Ne=((e,...t)=>typeof e==`function`?E(Oe,e,...t):E(()=>ke(Oe(),e),...t))({extend:{theme:{text:[`display-xs`,`display-sm`,`display-md`,`display-lg`,`display-xl`,`display-2xl`]}}});function Pe(e){return e}export{Pe as n,Ne as t}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/de-C11_iEFd.js b/resources/vendor/react-icon-browser/de-C11_iEFd.js deleted file mode 100644 index 95f363b..0000000 --- a/resources/vendor/react-icon-browser/de-C11_iEFd.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -var e={"format.qwik":`Qwik`,"format.ember":`Ember`,"format.elm":`Elm`,"format.css-mask":`CSS-Maske`,"format.data-uri":`Data-URI`,"format.flutter":`Flutter`,"format.swiftui":`SwiftUI`,"export.css-mask":`CSS-Maske`,"export.css-maskDesc":`Eine Klasse pro Symbol, in currentColor`,"export.data-uri":`Data-URI`,"export.data-uriDesc":`CSS-Custom-Properties, Farben bleiben erhalten`,"export.native":`Native Assets`,"export.flutter":`Für Flutter herunterladen`,"export.flutterDesc":`SVG-Assets und ein Dart-Index, erzeugt von js-icon-components`,"export.swiftui":`Für SwiftUI herunterladen`,"export.swiftuiDesc":`Ein .xcassets-Katalog, erzeugt von js-icon-components`,"detail.cssMask":`CSS-Maske`,"detail.copyDataUri":`Als Data-URI kopieren`,"settings.clearHistoryTitle":`Verlauf`,"settings.clearHistoryDesc":`Löscht die angesehenen, kopierten und heruntergeladenen Symbole und die letzten Aktionen der Befehlspalette.`,"settings.clearHistoryButton":`Verlauf löschen`,"settings.clearHistoryToast":`Verlauf gelöscht`,"detail.tags":`Tags`,"kind.label":`Anzeigen`,"kind.icons":`Symbole`,"kind.illustrations":`Illustrationen`,"toolbar.illustrationOne":`Illustration`,"toolbar.illustrationMany":`Illustrationen`,"toolbar.filterByTag":`Symbole mit dem Tag „{tag}“ zeigen`,"toolbar.filterByKeyword":`Symbole mit dem Stichwort „{keyword}“ zeigen`,"empty.noIllustrations":`Keine Illustrationen entsprechen diesen Filtern`,"empty.noIconsTitle":`Noch nichts zu durchsuchen`,"empty.noIconsDesc":`Hier ist noch kein Symbolsatz installiert und eingelesen. Sobald einer da ist, erscheinen seine Symbole in diesem Raster.`,"settings.syncAccount":`Favoriten & Sammlungen werden mit deinem Konto gespeichert`,"settings.syncSession":`Favoriten & Sammlungen werden für diese Sitzung gespeichert`,"settings.guestSignIn":`Melde dich an, um sie mit deinem Konto zu speichern.`,"settings.factoryDescHost":`Setzt die Einstellungen und Filter dieses Browsers zurück. Deine Favoriten und Sammlungen bleiben erhalten.`,"settings.factoryConfirmBodyHost":`Einstellungen, Filter, Darstellung, Einwilligung und die Tour werden in diesem Browser auf die Standardwerte zurückgesetzt. Deine Favoriten, Sammlungen und dein Verlauf bleiben, wo sie gespeichert sind.`,"settings.deleteLibraryTitle":`Meine Bibliothek löschen`,"settings.deleteLibraryDesc":`Entfernt alle Favoriten und Sammlungen, die hier für dich gespeichert sind.`,"settings.deleteLibraryButton":`Löschen…`,"settings.deleteLibraryConfirmTitle":`Deine Bibliothek löschen?`,"settings.deleteLibraryConfirmBody":`Alle Favoriten und Sammlungen werden entfernt, hier und auf dem Server. Dein Verlauf und deine Einstellungen bleiben. Dies kann nicht rückgängig gemacht werden.`,"settings.deleteLibraryConfirmLabel":`Meine Bibliothek löschen`,"settings.deleteLibraryToast":`Bibliothek gelöscht`,"detail.snippetFormat":`Snippet-Format`,"console.code":`Code`,"palette.results":`Ergebnisse`,"appearance.adaptMono":`Schwarze Symbole im Dunkelmodus anpassen`,"app.documentTitle":`Ichava Browser — jedes Symbol, das Ihre Laravel-App braucht`,"sort.name":`Name`,"sort.package":`Paket`,"sort.category":`Kategorie`,"treatment.default":`Strich`,"treatment.defaultDesc":`Originale Striche des Pakets`,"treatment.solid":`Gefüllt`,"treatment.solidDesc":`Kräftiger, gefüllt`,"treatment.duotone":`Zweifarbig`,"treatment.duotoneDesc":`Akzent-Schattenebene`,"treatment.midtone":`Mittelton`,"treatment.midtoneDesc":`Auf 50 % abgeschwächte Farbe`,"treatment.halftone":`Raster`,"treatment.halftoneDesc":`Retro-Punktraster`,"unit.pxValue":`{n} px`,"common.cancel":`Abbrechen`,"common.create":`Erstellen`,"common.clear":`Löschen`,"common.all":`Alle`,"common.none":`Keine`,"common.copy":`Kopieren`,"common.download":`Herunterladen`,"common.favorite":`Favorit`,"common.favorited":`Favorisiert`,"common.close":`Schließen`,"common.signIn":`Anmelden`,"common.signOut":`Abmelden`,"common.search":`Symbole, Aktionen suchen…`,"header.favorites":`Favoriten`,"header.history":`Verlauf`,"header.collections":`Sammlungen`,"header.notifications":`Benachrichtigungen`,"header.toggleTheme":`Design wechseln`,"header.settings":`Einstellungen`,"header.fullscreen":`Vollbild`,"header.exitFullscreen":`Vollbild beenden`,"header.commandPalette":`Befehlspalette`,"header.gridView":`Rasteransicht`,"header.listView":`Listenansicht`,"sidebar.packages":`Pakete`,"sidebar.categories":`Kategorien`,"sidebar.filterCategories":`Kategorien filtern…`,"sidebar.filterIcons":`Symbole filtern…`,"sidebar.expandAll":`Alle ausklappen`,"sidebar.collapseAll":`Alle einklappen`,"variant.all":`Alle`,"variant.outline":`Umriss`,"variant.filled":`Gefüllt`,"variant.color":`Farbe`,"toolbar.sort":`Sortieren`,"toolbar.size":`Größe`,"toolbar.stroke":`Strich`,"toolbar.color":`Farbe`,"toolbar.treatment":`Symbolstil`,"toolbar.export":`Exportieren`,"toolbar.copyNames":`Namen kopieren`,"toolbar.newCollection":`Neue Sammlung`,"toolbar.selected":`{n} ausgewählt`,"appearance.title":`Darstellung`,"appearance.subtitle":`Design · Marke · Zoom`,"appearance.theme":`Design`,"appearance.light":`Hell`,"appearance.dark":`Dunkel`,"appearance.brandAccent":`Markenfarbe`,"appearance.customHex":`Eigener Hex`,"appearance.radius":`Radius`,"appearance.size":`UI-Zoom`,"appearance.density":`UI-Dichte`,"appearance.compact":`Kompakt`,"appearance.comfy":`Komfortabel`,"appearance.reduceMotion":`Bewegung reduzieren`,"appearance.iconLabels":`Symbolbeschriftungen`,"appearance.language":`Sprache`,"appearance.footer":`Gilt nur für die Anwendung. Wird in Ihrem gewählten Speicher gespeichert.`,"account.workspace":`Arbeitsbereich`,"account.account":`Konto`,"account.profile":`Profil & Einstellungen`,"account.sharedCollections":`Geteilte Sammlungen`,"profile.signOutTitle":`Abmelden?`,"profile.signOutBody":`Lokale Favoriten und Filter bleiben erhalten, aber geteilte Sammlungen und Team-Funktionen erfordern eine erneute Anmeldung.`,"profile.signedOut":`Abgemeldet`,"profile.switched":`Zu {name} gewechselt`,"profile.title":`Profil`,"profile.account":`Konto`,"profile.appSettings":`App-Einstellungen & Konfiguration`,"shared.title":`Geteilte Sammlungen`,"shared.count":`{n} geteilt`,"shared.empty":`Noch keine Sammlungen geteilt.`,"shared.manageAccess":`Zugriff verwalten`,"empty.noResults":`Keine Symbole entsprechen deinen Filtern.`,"empty.noFavorites":`Noch keine Favoriten.`,"empty.onboardTitle":`Sätze zum Durchsuchen wählen`,"empty.onboardDesc":`Symbole erscheinen, sobald mindestens ein installierter Satz ausgewählt ist.`,"empty.selectAllPackages":`Alle Sätze auswählen`,"empty.noMatchSearch":`Keine Symbole für „{q}“`,"empty.noMatchFilters":`Keine Symbole entsprechen diesen Filtern`,"empty.tryDifferent":`Versuche einen anderen Begriff, eine andere Variante, oder lösche die aktiven Filter.`,"empty.clearFilters":`Filter löschen`,"toolbar.iconOne":`Symbol`,"toolbar.iconMany":`Symbole`,"toolbar.removeFilter":`Filter entfernen`,"toolbar.namesCopied":`{n} Namen kopiert`,"toolbar.exportedToast":`{n} Symbole exportiert — {label}`,"toolbar.treatmentEngine":`Stil-Engine`,"toolbar.toggleSortOrder":`Sortierreihenfolge umkehren`,"toolbar.gridIconSize":`Symbolgröße im Raster`,"toolbar.sizeUnit":`Größeneinheit`,"toolbar.strokeTitle":`Strichstärke — überschreibt den Strich in Raster, Detail & Export`,"toolbar.previewColor":`Vorschaufarbe`,"toolbar.resetFilters":`Filter zurücksetzen`,"toolbar.resetTitle":`Alle Filter zurücksetzen?`,"toolbar.resetBody":`Suche, Kategorien, Varianten, Sortierung, Seite, Auswahl und Vorschaufarbe kehren zu den Standardwerten zurück. Favoriten, Sammlungen und Darstellung bleiben unberührt.`,"toolbar.resetConfirm":`Filter zurücksetzen`,"toolbar.resetToast":`Filter zurückgesetzt`,"footer.noResults":`Keine Ergebnisse`,"footer.range":`{start}–{end} von {total}`,"footer.perPageLabel":`Ergebnisse pro Seite`,"footer.perPage":`{n} / Seite`,"footer.prevPage":`Vorherige Seite`,"footer.nextPage":`Nächste Seite`,"list.copiedToast":`{name} kopiert`,"sidebar.scopeIcons":`Symbole`,"sidebar.scopePackages":`Sätze`,"sidebar.scopeCategories":`Kategorien`,"sidebar.scopeAll":`Alle`,"sidebar.notInstalled":`nicht installiert`,"sidebar.inView":`Sichtbar`,"sidebar.selected":`Ausgewählt`,"sidebar.loadedIcons":`In diesem Katalog`,"sidebar.ecosystemTotal":`Ökosystem gesamt`,"sidebar.favorites":`Favoriten`,"sidebar.filterPackages":`Sätze filtern…`,"sidebar.searchEverything":`Alles durchsuchen…`,"sidebar.searchScope":`Suchbereich`,"header.filtersPackages":`Filter & Sätze`,"header.toggleSidebar":`Seitenleiste umschalten`,"header.devtools":`Ichava DevTools`,"palette.placeholder":`Befehl eingeben oder Symbole suchen…`,"palette.recent":`Zuletzt`,"palette.actions":`Aktionen`,"palette.icons":`Symbole`,"palette.openHint":`öffnen`,"palette.noMatches":`Keine Treffer für „{q}“`,"palette.navigate":`navigieren`,"palette.select":`auswählen`,"palette.close":`schließen`,"palette.toggleTheme":`Design wechseln`,"palette.openSettings":`Einstellungen öffnen`,"palette.openFavorites":`Favoriten öffnen`,"palette.openHistory":`Verlauf öffnen`,"palette.openCollections":`Sammlungen öffnen`,"palette.switchListView":`Zur Listenansicht wechseln`,"palette.switchGridView":`Zur Rasteransicht wechseln`,"palette.resetFilters":`Alle Filter zurücksetzen`,"palette.selectAll":`Alle Treffer auswählen`,"selectAll.confirmTitle":`Alle {n} Symbole auswählen?`,"selectAll.confirmBody":`Keine Suche und kein Filter ist aktiv, daher werden alle Symbole im Katalog ausgewählt.`,"selectAll.confirmLabel":`Alle auswählen`,"palette.openDevtools":`Ichava DevTools öffnen`,"common.remove":`Entfernen`,"settings.appearanceHintPre":`Design, Akzent, Radius, Größe, Dichte, Bewegung und Beschriftungen findest du im Menü `,"settings.appearanceHintPost":` in der Kopfzeile.`,"settings.behavior":`Verhalten`,"settings.perPageTitle":`Symbole pro Seite`,"settings.perPageDesc":`Größe der Raster-Paginierung.`,"settings.copyFormatTitle":`Standard-Kopierformat`,"settings.copyFormatDesc":`Wird beim Klick-zum-Kopieren auf Kacheln verwendet.`,"settings.storageTitle":`Speichertreiber`,"settings.storageDesc":`Wo Einstellungen & Zustand gespeichert werden.`,"settings.storageLocal":`lokal`,"settings.storageSession":`Sitzung`,"settings.tourTitle":`Produkttour`,"settings.tourDesc":`Die Einführung erneut abspielen.`,"settings.replayTour":`Tour erneut abspielen`,"settings.factoryTitle":`Werkseinstellungen`,"settings.factoryDesc":`Setzt alle Einstellungen, Filter, Favoriten und Sammlungen auf die Standardwerte zurück.`,"settings.factoryConfirmTitle":`Alles auf Werkseinstellungen zurücksetzen?`,"settings.factoryConfirmBody":`Alle Einstellungen, Filter, Favoriten, Verlauf, Sammlungen, Markenanpassungen, Einwilligung und gespeicherte Snapshots werden auf die Standardwerte zurückgesetzt. Dies kann nicht rückgängig gemacht werden.`,"settings.factoryConfirmLabel":`Alles zurücksetzen`,"settings.factoryToast":`Alles auf Standard zurückgesetzt`,"settings.resetEverything":`Alles zurücksetzen…`,"settings.account":`Konto`,"settings.syncNote":`Favoriten & Sammlungen werden nur in diesem Browser gespeichert`,"settings.guestNote":`Du surfst als Gast. Einstellungen, Favoriten und Sammlungen werden nur in diesem Browser gespeichert.`,"settings.aboutLink":`Über Ichava →`,"consent.ariaLabel":`Cookies und Speicher`,"consent.title":`Cookies & Speicher`,"consent.body":`Ichava speichert deine Einstellungen und Favoriten im gewählten Speichertreiber sowie anonyme Nutzungsereignisse. Keine Tracker von Drittanbietern.`,"consent.essentialOnly":`Nur essenzielle`,"consent.acceptAll":`Alle akzeptieren`,"consent.move":`Hinweis verschieben`,"consent.moveHint":`Ziehen oder mit den Pfeiltasten verschieben. Pos1 setzt ihn zurück.`,"about.browser":`Browser`,"about.craftedBy":`Erstellt von`,"about.statIcons":`indizierte Symbole`,"about.statSets":`Symbolsätze`,"about.statLicense":`Lizenz`,"library.favorites":`Favoriten`,"library.history":`Verlauf`,"library.collections":`Sammlungen`,"library.emptyFavorites":`Noch keine Favoriten — fahre über ein Symbol und tippe auf das Herz.`,"library.emptyHistory":`Noch keine Aktivität — Ansichten, Kopien und Downloads erscheinen hier.`,"library.emptyCollections":`Noch keine Sammlungen — erstelle oben eine.`,"library.clearHistory":`Verlauf löschen`,"library.newCollectionPlaceholder":`Name der Sammlung…`,"library.seededWith":`Beginnt mit {n} Symbolen`,"library.iconCount":`{n} Symbole`,"library.teamBadge":`Team`,"library.viewerBadge":`Betrachter`,"library.copyNamesTitle":`Symbolnamen kopieren`,"library.deleteCollection":`Sammlung löschen`,"tile.openDetail":`Details öffnen`,"tile.copyFormat":`{format} kopieren`,"tile.copyName":`Namen kopieren`,"tile.copiedName":`Name kopiert`,"tile.copyPermalink":`Permalink kopieren`,"tile.permalinkCopied":`Permalink kopiert`,"tile.select":`Auswählen`,"tile.deselect":`Abwählen`,"tile.addFavorite":`Zu Favoriten`,"tile.removeFavorite":`Aus Favoriten entfernen`,"tile.favoritedAria":`favorisiert`,"tile.selectedAria":`ausgewählt`,"detail.previewOnly":`Nur Vorschau — das Raster bleibt unberührt`,"detail.scaledToFit":`eingepasst`,"detail.actual":`tatsächlich`,"detail.size":`Größe`,"detail.previewSize":`Vorschaugröße`,"detail.unit":`Einheit`,"detail.color":`Farbe`,"detail.stroke":`Strich`,"detail.motion":`Bewegung`,"detail.searchPresets":`{n} Presets durchsuchen…`,"detail.noPresets":`Keine Presets gefunden.`,"detail.easing":`Beschleunigung`,"detail.play":`Abspielen`,"detail.pause":`Pause`,"detail.speed":`Geschwindigkeit`,"detail.copied":`{label} kopiert`,"detail.download":`Herunterladen`,"detail.keyframesAria":`Keyframes-JSON`,"detail.keyframesValid":`{n} Keyframes — füge ein Keyframe[] oder { keyframes: […] } ein`,"detail.keyframesInvalid":`Ungültiges JSON — ein Array einfacher Keyframe-Objekte wird erwartet`,"detail.related":`Verwandte Symbole`,"detail.addToCollection":`Zur Sammlung hinzufügen`,"detail.newCollection":`+ Neu`,"detail.noSvg":`Kein SVG für dieses Symbol verfügbar`,"detail.addedTo":`Zu {name} hinzugefügt`,"detail.removedFrom":`Aus {name} entfernt`,"detail.motionDefault":`Standard`,"console.copyCode":`Code kopieren`,"console.copy":`Kopieren`,"console.copied":`Kopiert`,"help.title":`Hilfe & Info`,"help.about":`Über Ichava`,"help.docs":`Dokumentation`,"help.replayTour":`Produkttour erneut abspielen`,"help.shortcuts":`Tastenkürzel`,"notifications.clearAll":`Alle löschen`,"notifications.empty":`Alles erledigt.`,"team.title":`Team`,"team.online":`{n} online`,"team.onlineNow":`Jetzt online`,"team.away":`Abwesend`,"team.offline":`Offline`,"team.invite":`Einladen…`,"color.previewColor":`Vorschaufarbe`,"color.resetToTheme":`Auf Design zurücksetzen`,"color.opacity":`Deckkraft — 0–100 %`,"contextMenu.actions":`Aktionen`,"boot.loadingCatalog":`Katalog wird geladen`,"boot.ready":`Bereit`,"sidebar.iconVariant":`Symbolvariante`,"auth.signInTo":`Bei {brand} anmelden`,"auth.needsAccount":`benötigt ein Konto.`,"auth.emailCode":`Wir senden dir einen Einmalcode per E-Mail — ohne Passwort.`,"auth.emailPlaceholder":`du@firma.com`,"auth.sendCode":`Code senden`,"auth.newHere":`Neu hier?`,"auth.createAccount":`Konto erstellen`,"auth.enterCode":`Gib deinen Code ein`,"auth.sentTo":`Gesendet an`,"auth.demoHint":`Demo: jeder Code meldet an — probiere 000000 für den Fehlerzustand.`,"auth.digit":`Ziffer {n}`,"auth.codeFailed":`Dieser Code hat nicht funktioniert. Versuche es erneut.`,"auth.verify":`Verifizieren & anmelden`,"auth.changeEmail":`← E-Mail ändern`,"auth.resendIn":`Erneut senden in {n}s`,"auth.resendCode":`Code erneut senden`,"auth.createTitle":`Erstelle dein Konto`,"auth.createBlurb":`Registriere dich, um Sammlungen, Freigabe und Team-Funktionen freizuschalten. Wir bestätigen deine E-Mail mit einem Einmalcode.`,"auth.firstName":`Vorname`,"auth.lastName":`Nachname`,"auth.passwordPlaceholder":`Mindestens 8 Zeichen`,"auth.togglePassword":`Passwort ein- oder ausblenden`,"auth.haveAccount":`Hast du schon ein Konto?`,"invite.title":`In Arbeitsbereich einladen`,"invite.workspace":`Arbeitsbereich`,"invite.emailPlaceholder":`kollege@firma.com`,"invite.roleEditor":`Bearbeiter — kann hinzufügen & teilen`,"invite.roleViewer":`Betrachter — nur lesen`,"invite.role":`Rolle`,"invite.linkExpires":`Link läuft ab`,"invite.exp24h":`24 Std`,"invite.exp7d":`7 Tage`,"invite.exp30d":`30 Tage`,"invite.expNever":`Nie`,"invite.blurb":`Eingeladene erhalten Zugriff auf die geteilten Sammlungen dieses Arbeitsbereichs. Rollen kann der Eigentümer später ändern; Links lassen sich in den Einstellungen widerrufen.`,"invite.generateLink":`Link erzeugen`,"invite.linkCopied":`Einladungslink kopiert`,"invite.yourTeammate":`dein Teammitglied`,"invite.sentNotification":`Einladung an {to} gesendet ({role})`,"invite.sent":`Einladung gesendet`,"invite.sendInvite":`Einladung senden`,"access.addPeople":`Personen oder dein Team hinzufügen`,"access.searchTeammates":`Teammitglieder nach Name oder E-Mail suchen…`,"access.onlyYou":`Nur du hast Zugriff. Füge oben Teammitglieder hinzu oder teile mit dem ganzen Team.`,"access.saveAccess":`Zugriff speichern`,"access.shareEntireTeam":`Mit gesamtem Team teilen`,"access.shareLinkCopied":`Freigabelink kopiert`,"access.copyLinkInstead":`Stattdessen Link kopieren`,"shared.inviteTeam":`Team einladen…`,"shared.viewer":`Betrachter`,"shared.editor":`Bearbeiter`,"tour.skip":`Überspringen`,"tour.back":`Zurück`,"tour.stepOf":`Schritt {n} von {total}`,"tour.next":`Weiter`,"tour.getStarted":`Loslegen`,"tour.s1Title":`Willkommen bei Ichava Browser`,"tour.s1Body":`Jedes Symbol in deiner Laravel-App — durchsuchbar, vorschaubar, kopierbereit. Diese 30-Sekunden-Tour zeigt dir alles. Du kannst sie jederzeit über die Einstellungen erneut abspielen.`,"tour.s2Title":`Finde jedes Symbol schnell`,"tour.s2Body":`Suche nach Name oder Tag, filtere nach Satz, Kategorie und Variante in der Seitenleiste, oder drücke ⌘K für die Befehlspalette.`,"tour.s3Title":`Style live um`,"tour.s3Body":`Stile, Größe, Strich, Farbe und Bewegungs-Presets stylen jedes Symbol direkt um — das Raster aktualisiert sich beim Anpassen.`,"tour.s4Title":`Kopiere für deinen Stack`,"tour.s4Body":`Öffne ein Symbol für Blade, Livewire, Vue, React, Svelte, Web Component, rohes SVG und mehr — ein Klick zum Kopieren.`,"tour.s5Title":`Speichern & teilen`,"tour.s5Body":`Favorisiere Symbole, gruppiere sie in Sammlungen und exportiere ein Sprite, Manifest oder ZIP. Melde dich an, um geräteübergreifend zu synchronisieren.`,"task.working":`Wird bearbeitet…`,"task.export":`{n} Symbole werden exportiert…`,"task.copyNames":`{n} Symbolnamen werden gesammelt…`,"task.selectAll":`Alle passenden Symbole werden ausgewählt…`,"export.files":`SVG-Dateien`,"export.filesDesc":`Einzelne .svg-Downloads`,"export.sprite":`SVG-Sprite`,"export.spriteDesc":`Ein -Sheet`,"export.manifest":`JSON-Manifest`,"export.manifestDesc":`IDs, Pakete & Kategorien`,"export.zip":`ZIP-Bundle`,"export.zipDesc":`Sprite + Manifest + Dateien`,"copyFormat.svg":`Rohes SVG`,"copyFormat.blade":`Blade-Tag`,"copyFormat.vue":`Vue-Snippet`,"copyFormat.name":`Symbolname`,"snippetTab.motion":`Bewegung`,"snippetTab.helper":`Helper-Funktion`,"snippetTab.bladeGeneric":`Blade (generisch)`,"snippetTab.webcomponent":`Web-Komponente`,"snippetTab.name":`Name`,"format.svg":`Rohes SVG`,"format.motion":`Bewegung`,"format.helper":`ichava()-Helper`,"format.blade":`Blade-Tag`,"format.bladeGeneric":`Generisches Blade`,"format.livewire":`Livewire`,"format.alpine":`Alpine.js`,"format.vue":`Vue`,"format.react":`React`,"format.svelte":`Svelte`,"format.webcomponent":`Web-Komponente`,"format.reactNative":`React Native`,"format.angular":`Angular`,"format.solid":`Solid`,"format.preact":`Preact`,"format.astro":`Astro`,"format.api":`REST-URL`,"format.name":`Symbolname`,"about.landing":`Website`,"clipboard.copyFailed":`Kopieren fehlgeschlagen — markieren und manuell kopieren`,"clipboard.copied":`In die Zwischenablage kopiert`};export{e as default}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/es-BQadDI5z.js b/resources/vendor/react-icon-browser/es-BQadDI5z.js deleted file mode 100644 index 7797b89..0000000 --- a/resources/vendor/react-icon-browser/es-BQadDI5z.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -var e={"format.qwik":`Qwik`,"format.ember":`Ember`,"format.elm":`Elm`,"format.css-mask":`Máscara CSS`,"format.data-uri":`URI de datos`,"format.flutter":`Flutter`,"format.swiftui":`SwiftUI`,"export.css-mask":`Máscara CSS`,"export.css-maskDesc":`Una clase por icono, en currentColor`,"export.data-uri":`URI de datos`,"export.data-uriDesc":`Propiedades CSS personalizadas, con sus colores`,"export.native":`Recursos nativos`,"export.flutter":`Descargar para Flutter`,"export.flutterDesc":`Recursos SVG y un índice Dart, generados por js-icon-components`,"export.swiftui":`Descargar para SwiftUI`,"export.swiftuiDesc":`Un catálogo .xcassets, generado por js-icon-components`,"detail.cssMask":`Máscara CSS`,"detail.copyDataUri":`Copiar como URI de datos`,"settings.clearHistoryTitle":`Historial`,"settings.clearHistoryDesc":`Borra los iconos que viste, copiaste y descargaste, y las acciones recientes de la paleta de comandos.`,"settings.clearHistoryButton":`Borrar historial`,"settings.clearHistoryToast":`Historial borrado`,"detail.tags":`Etiquetas`,"kind.label":`Mostrar`,"kind.icons":`Iconos`,"kind.illustrations":`Ilustraciones`,"toolbar.illustrationOne":`ilustración`,"toolbar.illustrationMany":`ilustraciones`,"toolbar.filterByTag":`Mostrar iconos con la etiqueta «{tag}»`,"toolbar.filterByKeyword":`Mostrar iconos con la palabra clave «{keyword}»`,"empty.noIllustrations":`Ninguna ilustración coincide con estos filtros`,"empty.noIconsTitle":`Todavía no hay nada que explorar`,"empty.noIconsDesc":`No hay ningún conjunto de iconos instalado y cargado aquí. Cuando lo haya, sus iconos aparecerán en esta cuadrícula.`,"settings.syncAccount":`los favoritos y colecciones se guardan con tu cuenta`,"settings.syncSession":`los favoritos y colecciones se guardan durante esta sesión`,"settings.guestSignIn":`Inicia sesión para guardarlos con tu cuenta.`,"settings.factoryDescHost":`Restaura los ajustes y filtros de este navegador. Tus favoritos y colecciones se conservan.`,"settings.factoryConfirmBodyHost":`Las preferencias, filtros, apariencia, consentimiento y el recorrido volverán a sus valores predeterminados en este navegador. Tus favoritos, colecciones e historial se conservan donde están guardados.`,"settings.deleteLibraryTitle":`Eliminar mi biblioteca`,"settings.deleteLibraryDesc":`Quita todos los favoritos y colecciones que se guardan para ti aquí.`,"settings.deleteLibraryButton":`Eliminar…`,"settings.deleteLibraryConfirmTitle":`¿Eliminar tu biblioteca?`,"settings.deleteLibraryConfirmBody":`Se eliminan todos los favoritos y colecciones, aquí y en el servidor. Tu historial y tus ajustes se conservan. Esto no se puede deshacer.`,"settings.deleteLibraryConfirmLabel":`Eliminar mi biblioteca`,"settings.deleteLibraryToast":`Biblioteca eliminada`,"detail.snippetFormat":`Formato del fragmento`,"console.code":`Código`,"palette.results":`Resultados`,"appearance.adaptMono":`Adaptar iconos negros en modo oscuro`,"app.documentTitle":`Ichava Browser — todos los iconos que necesita tu app Laravel`,"sort.name":`Nombre`,"sort.package":`Paquete`,"sort.category":`Categoría`,"treatment.default":`Trazo`,"treatment.defaultDesc":`Trazos originales del paquete`,"treatment.solid":`Sólido`,"treatment.solidDesc":`Peso más grueso y relleno`,"treatment.duotone":`Dos tonos`,"treatment.duotoneDesc":`Capa de sombra con el acento`,"treatment.midtone":`Medio tono`,"treatment.midtoneDesc":`Tinta suavizada al 50 %`,"treatment.halftone":`Semitono`,"treatment.halftoneDesc":`Relleno retro de puntos`,"unit.pxValue":`{n} px`,"common.cancel":`Cancelar`,"common.create":`Crear`,"common.clear":`Limpiar`,"common.all":`Todos`,"common.none":`Ninguno`,"common.copy":`Copiar`,"common.download":`Descargar`,"common.favorite":`Favorito`,"common.favorited":`Favorito`,"common.close":`Cerrar`,"common.signIn":`Iniciar sesión`,"common.signOut":`Cerrar sesión`,"common.search":`Buscar iconos, acciones…`,"header.favorites":`Favoritos`,"header.history":`Historial`,"header.collections":`Colecciones`,"header.notifications":`Notificaciones`,"header.toggleTheme":`Cambiar tema`,"header.settings":`Ajustes`,"header.fullscreen":`Pantalla completa`,"header.exitFullscreen":`Salir de pantalla completa`,"header.commandPalette":`Paleta de comandos`,"header.gridView":`Vista de cuadrícula`,"header.listView":`Vista de lista`,"sidebar.packages":`Paquetes`,"sidebar.categories":`Categorías`,"sidebar.filterCategories":`Filtrar categorías…`,"sidebar.filterIcons":`Filtrar iconos…`,"sidebar.expandAll":`Expandir todo`,"sidebar.collapseAll":`Contraer todo`,"variant.all":`Todos`,"variant.outline":`Contorno`,"variant.filled":`Relleno`,"variant.color":`Color`,"toolbar.sort":`Ordenar`,"toolbar.size":`Tamaño`,"toolbar.stroke":`Trazo`,"toolbar.color":`Color`,"toolbar.treatment":`Tratamiento del icono`,"toolbar.export":`Exportar`,"toolbar.copyNames":`Copiar nombres`,"toolbar.newCollection":`Nueva colección`,"toolbar.selected":`{n} seleccionados`,"appearance.title":`Apariencia`,"appearance.subtitle":`tema · marca · zoom`,"appearance.theme":`Tema`,"appearance.light":`Claro`,"appearance.dark":`Oscuro`,"appearance.brandAccent":`Color de marca`,"appearance.customHex":`Hex personalizado`,"appearance.radius":`Radio`,"appearance.size":`Zoom de interfaz`,"appearance.density":`Densidad de interfaz`,"appearance.compact":`Compacto`,"appearance.comfy":`Cómodo`,"appearance.reduceMotion":`Reducir movimiento`,"appearance.iconLabels":`Etiquetas de iconos`,"appearance.language":`Idioma`,"appearance.footer":`Se aplica solo a la aplicación. Se guarda en tu almacenamiento seleccionado.`,"account.workspace":`Espacio de trabajo`,"account.account":`Cuenta`,"account.profile":`Perfil y preferencias`,"account.sharedCollections":`Colecciones compartidas`,"profile.signOutTitle":`¿Cerrar sesión?`,"profile.signOutBody":`Conservarás los favoritos y filtros locales, pero las colecciones compartidas y las funciones de equipo requieren iniciar sesión de nuevo.`,"profile.signedOut":`Sesión cerrada`,"profile.switched":`Cambiado a {name}`,"profile.title":`Perfil`,"profile.account":`Cuenta`,"profile.appSettings":`Ajustes y configuración de la app`,"shared.title":`Colecciones compartidas`,"shared.count":`{n} compartidas`,"shared.empty":`Aún no hay colecciones compartidas.`,"shared.manageAccess":`Gestionar acceso`,"empty.noResults":`Ningún icono coincide con tus filtros.`,"empty.noFavorites":`Aún no hay favoritos.`,"empty.onboardTitle":`Selecciona paquetes para explorar`,"empty.onboardDesc":`Los iconos aparecen cuando seleccionas al menos un paquete instalado.`,"empty.selectAllPackages":`Seleccionar todos los paquetes`,"empty.noMatchSearch":`Ningún icono coincide con «{q}»`,"empty.noMatchFilters":`Ningún icono coincide con estos filtros`,"empty.tryDifferent":`Prueba otro término, otra variante o borra los filtros activos.`,"empty.clearFilters":`Borrar filtros`,"toolbar.iconOne":`icono`,"toolbar.iconMany":`iconos`,"toolbar.removeFilter":`Quitar filtro`,"toolbar.namesCopied":`{n} nombres copiados`,"toolbar.exportedToast":`{n} iconos exportados — {label}`,"toolbar.treatmentEngine":`Motor de tratamientos`,"toolbar.toggleSortOrder":`Cambiar orden`,"toolbar.gridIconSize":`Tamaño del icono en la cuadrícula`,"toolbar.sizeUnit":`Unidad de tamaño`,"toolbar.strokeTitle":`Grosor del trazo — reescribe el trazo en cuadrícula, detalle y exportación`,"toolbar.previewColor":`Color de vista previa`,"toolbar.resetFilters":`Restablecer filtros`,"toolbar.resetTitle":`¿Restablecer todos los filtros?`,"toolbar.resetBody":`La búsqueda, categorías, variantes, orden, página, selección y color de vista previa vuelven a sus valores predeterminados. Favoritos, colecciones y apariencia no se tocan.`,"toolbar.resetConfirm":`Restablecer filtros`,"toolbar.resetToast":`Filtros restablecidos`,"footer.noResults":`Sin resultados`,"footer.range":`{start}–{end} de {total}`,"footer.perPageLabel":`Resultados por página`,"footer.perPage":`{n} / página`,"footer.prevPage":`Página anterior`,"footer.nextPage":`Página siguiente`,"list.copiedToast":`{name} copiado`,"sidebar.scopeIcons":`Iconos`,"sidebar.scopePackages":`Paquetes`,"sidebar.scopeCategories":`Categorías`,"sidebar.scopeAll":`Todo`,"sidebar.notInstalled":`no instalado`,"sidebar.inView":`En vista`,"sidebar.selected":`Seleccionados`,"sidebar.loadedIcons":`En este catálogo`,"sidebar.ecosystemTotal":`Total del ecosistema`,"sidebar.favorites":`Favoritos`,"sidebar.filterPackages":`Filtrar paquetes…`,"sidebar.searchEverything":`Buscar en todo…`,"sidebar.searchScope":`Ámbito de búsqueda`,"header.filtersPackages":`Filtros y paquetes`,"header.toggleSidebar":`Alternar barra lateral`,"header.devtools":`Ichava DevTools`,"palette.placeholder":`Escribe un comando o busca iconos…`,"palette.recent":`Recientes`,"palette.actions":`Acciones`,"palette.icons":`Iconos`,"palette.openHint":`abrir`,"palette.noMatches":`Sin coincidencias para «{q}»`,"palette.navigate":`navegar`,"palette.select":`seleccionar`,"palette.close":`cerrar`,"palette.toggleTheme":`Cambiar tema`,"palette.openSettings":`Abrir ajustes`,"palette.openFavorites":`Abrir favoritos`,"palette.openHistory":`Abrir historial`,"palette.openCollections":`Abrir colecciones`,"palette.switchListView":`Cambiar a vista de lista`,"palette.switchGridView":`Cambiar a vista de cuadrícula`,"palette.resetFilters":`Restablecer todos los filtros`,"palette.selectAll":`Seleccionar todos los coincidentes`,"selectAll.confirmTitle":`¿Seleccionar los {n} iconos?`,"selectAll.confirmBody":`No hay búsqueda ni filtros activos, así que se seleccionarán todos los iconos del catálogo.`,"selectAll.confirmLabel":`Seleccionar todo`,"palette.openDevtools":`Abrir Ichava DevTools`,"common.remove":`Quitar`,"settings.appearanceHintPre":`El tema, acento, radio, tamaño, densidad, movimiento y etiquetas están en el menú `,"settings.appearanceHintPost":` de la cabecera.`,"settings.behavior":`Comportamiento`,"settings.perPageTitle":`Iconos por página`,"settings.perPageDesc":`Tamaño de paginación de la cuadrícula.`,"settings.copyFormatTitle":`Formato de copia predeterminado`,"settings.copyFormatDesc":`Usado al hacer clic para copiar en las fichas.`,"settings.storageTitle":`Controlador de almacenamiento`,"settings.storageDesc":`Dónde se guardan las preferencias y el estado.`,"settings.storageLocal":`local`,"settings.storageSession":`sesión`,"settings.tourTitle":`Recorrido del producto`,"settings.tourDesc":`Repetir el tutorial inicial.`,"settings.replayTour":`Repetir recorrido`,"settings.factoryTitle":`Restablecimiento de fábrica`,"settings.factoryDesc":`Restaura todos los ajustes, filtros, favoritos y colecciones a sus valores predeterminados.`,"settings.factoryConfirmTitle":`¿Restablecer todo a los valores de fábrica?`,"settings.factoryConfirmBody":`Todas las preferencias, filtros, favoritos, historial, colecciones, personalización de marca, consentimiento e instantáneas guardadas volverán a sus valores predeterminados. Esto no se puede deshacer.`,"settings.factoryConfirmLabel":`Restablecer todo`,"settings.factoryToast":`Todo restablecido a los valores predeterminados`,"settings.resetEverything":`Restablecer todo…`,"settings.account":`Cuenta`,"settings.syncNote":`los favoritos y colecciones se guardan solo en este navegador`,"settings.guestNote":`Estás navegando como invitado. Las preferencias, favoritos y colecciones se guardan solo en este navegador.`,"settings.aboutLink":`Acerca de Ichava →`,"consent.ariaLabel":`Cookies y almacenamiento`,"consent.title":`Cookies y almacenamiento`,"consent.body":`Ichava guarda tus preferencias y favoritos en el controlador de almacenamiento elegido, además de eventos de uso anónimos. Sin rastreadores de terceros.`,"consent.essentialOnly":`Solo esenciales`,"consent.acceptAll":`Aceptar todo`,"consent.move":`Mover el aviso`,"consent.moveHint":`Arrástralo, o usa las flechas, para moverlo. Inicio lo devuelve a su sitio.`,"about.browser":`Browser`,"about.craftedBy":`Creado por`,"about.statIcons":`iconos indexados`,"about.statSets":`conjuntos de iconos`,"about.statLicense":`licencia`,"library.favorites":`Favoritos`,"library.history":`Historial`,"library.collections":`Colecciones`,"library.emptyFavorites":`Aún no hay favoritos — pasa el ratón sobre un icono y toca el corazón.`,"library.emptyHistory":`Aún no hay actividad — las vistas, copias y descargas aparecen aquí.`,"library.emptyCollections":`Aún no hay colecciones — crea una arriba.`,"library.clearHistory":`Borrar historial`,"library.newCollectionPlaceholder":`Nombre de la colección…`,"library.seededWith":`Empieza con {n} iconos`,"library.iconCount":`{n} iconos`,"library.teamBadge":`equipo`,"library.viewerBadge":`lector`,"library.copyNamesTitle":`Copiar nombres de iconos`,"library.deleteCollection":`Eliminar colección`,"tile.openDetail":`Abrir detalle`,"tile.copyFormat":`Copiar {format}`,"tile.copyName":`Copiar nombre`,"tile.copiedName":`Nombre copiado`,"tile.copyPermalink":`Copiar enlace permanente`,"tile.permalinkCopied":`Enlace permanente copiado`,"tile.select":`Seleccionar`,"tile.deselect":`Deseleccionar`,"tile.addFavorite":`Añadir a favoritos`,"tile.removeFavorite":`Quitar de favoritos`,"tile.favoritedAria":`en favoritos`,"tile.selectedAria":`seleccionado`,"detail.previewOnly":`Solo vista previa — la cuadrícula no cambia`,"detail.scaledToFit":`ajustado`,"detail.actual":`real`,"detail.size":`Tamaño`,"detail.previewSize":`Tamaño de vista previa`,"detail.unit":`Unidad`,"detail.color":`Color`,"detail.stroke":`Trazo`,"detail.motion":`Movimiento`,"detail.searchPresets":`Buscar {n} preajustes…`,"detail.noPresets":`No se encontraron preajustes.`,"detail.easing":`Suavizado`,"detail.play":`Reproducir`,"detail.pause":`Pausar`,"detail.speed":`Velocidad`,"detail.copied":`{label} copiado`,"detail.download":`Descargar`,"detail.keyframesAria":`JSON de fotogramas clave`,"detail.keyframesValid":`{n} fotogramas — pega un Keyframe[] o { keyframes: […] }`,"detail.keyframesInvalid":`JSON no válido — se espera un array de objetos de fotograma`,"detail.related":`Iconos relacionados`,"detail.addToCollection":`Añadir a colección`,"detail.newCollection":`+ Nueva`,"detail.noSvg":`No hay SVG disponible para este icono`,"detail.addedTo":`Añadido a {name}`,"detail.removedFrom":`Quitado de {name}`,"detail.motionDefault":`Predeterminado`,"console.copyCode":`Copiar código`,"console.copy":`Copiar`,"console.copied":`Copiado`,"help.title":`Ayuda y acerca de`,"help.about":`Acerca de Ichava`,"help.docs":`Documentación`,"help.replayTour":`Repetir recorrido del producto`,"help.shortcuts":`Atajos de teclado`,"notifications.clearAll":`Borrar todo`,"notifications.empty":`Estás al día.`,"team.title":`Equipo`,"team.online":`{n} en línea`,"team.onlineNow":`En línea`,"team.away":`Ausente`,"team.offline":`Desconectado`,"team.invite":`Invitar…`,"color.previewColor":`Color de vista previa`,"color.resetToTheme":`Restablecer al tema`,"color.opacity":`Opacidad — 0–100 %`,"contextMenu.actions":`Acciones`,"boot.loadingCatalog":`Cargando catálogo`,"boot.ready":`Listo`,"sidebar.iconVariant":`Variante del icono`,"auth.signInTo":`Inicia sesión en {brand}`,"auth.needsAccount":`necesita una cuenta.`,"auth.emailCode":`Te enviaremos un código de un solo uso por correo — sin contraseña.`,"auth.emailPlaceholder":`tu@empresa.com`,"auth.sendCode":`Enviar código`,"auth.newHere":`¿Nuevo por aquí?`,"auth.createAccount":`Crear cuenta`,"auth.enterCode":`Introduce tu código`,"auth.sentTo":`Enviado a`,"auth.demoHint":`Demo: cualquier código inicia sesión — prueba 000000 para ver el estado de error.`,"auth.digit":`Dígito {n}`,"auth.codeFailed":`Ese código no funcionó. Inténtalo de nuevo.`,"auth.verify":`Verificar e iniciar sesión`,"auth.changeEmail":`← Cambiar correo`,"auth.resendIn":`Reenviar en {n}s`,"auth.resendCode":`Reenviar código`,"auth.createTitle":`Crea tu cuenta`,"auth.createBlurb":`Únete para desbloquear colecciones, uso compartido y funciones de equipo. Verificaremos tu correo con un código de un solo uso.`,"auth.firstName":`Nombre`,"auth.lastName":`Apellidos`,"auth.passwordPlaceholder":`Al menos 8 caracteres`,"auth.togglePassword":`Mostrar u ocultar la contraseña`,"auth.haveAccount":`¿Ya tienes una cuenta?`,"invite.title":`Invitar al espacio de trabajo`,"invite.workspace":`espacio de trabajo`,"invite.emailPlaceholder":`companero@empresa.com`,"invite.roleEditor":`Editor — puede añadir y compartir`,"invite.roleViewer":`Lector — solo lectura`,"invite.role":`Rol`,"invite.linkExpires":`El enlace caduca`,"invite.exp24h":`24 h`,"invite.exp7d":`7 días`,"invite.exp30d":`30 días`,"invite.expNever":`Nunca`,"invite.blurb":`Los invitados obtienen acceso a las colecciones compartidas de este espacio. El propietario puede cambiar los roles más tarde; los enlaces se pueden revocar en Ajustes.`,"invite.generateLink":`Generar enlace`,"invite.linkCopied":`Enlace de invitación copiado`,"invite.yourTeammate":`tu compañero`,"invite.sentNotification":`Invitación enviada a {to} ({role})`,"invite.sent":`Invitación enviada`,"invite.sendInvite":`Enviar invitación`,"access.addPeople":`Añade personas o tu equipo`,"access.searchTeammates":`Busca compañeros por nombre o correo…`,"access.onlyYou":`Solo tú tienes acceso. Añade compañeros arriba o comparte con todo el equipo.`,"access.saveAccess":`Guardar acceso`,"access.shareEntireTeam":`Compartir con todo el equipo`,"access.shareLinkCopied":`Enlace de uso compartido copiado`,"access.copyLinkInstead":`Copiar enlace en su lugar`,"shared.inviteTeam":`Invitar al equipo…`,"shared.viewer":`lector`,"shared.editor":`editor`,"tour.skip":`Omitir`,"tour.back":`Atrás`,"tour.stepOf":`Paso {n} de {total}`,"tour.next":`Siguiente`,"tour.getStarted":`Empezar`,"tour.s1Title":`Bienvenido a Ichava Browser`,"tour.s1Body":`Cada icono de tu app Laravel — con búsqueda, vista previa y listo para copiar. Este recorrido de 30 segundos te muestra lo básico. Puedes repetirlo cuando quieras desde Ajustes.`,"tour.s2Title":`Encuentra cualquier icono rápido`,"tour.s2Body":`Busca por nombre o etiqueta, filtra por paquete, categoría y variante en la barra lateral, o pulsa ⌘K para la paleta de comandos.`,"tour.s3Title":`Reestiliza en vivo`,"tour.s3Body":`Tratamientos, tamaño, trazo, color y preajustes de movimiento reestilizan cada icono en el momento — la cuadrícula se actualiza mientras ajustas.`,"tour.s4Title":`Copia para tu stack`,"tour.s4Body":`Abre cualquier icono para Blade, Livewire, Vue, React, Svelte, Web Component, SVG en bruto y más — un clic para copiar.`,"tour.s5Title":`Guarda y comparte`,"tour.s5Body":`Marca iconos como favoritos, agrúpalos en colecciones y exporta un sprite, manifiesto o ZIP. Inicia sesión para sincronizar entre dispositivos.`,"task.working":`Trabajando…`,"task.export":`Exportando {n} iconos…`,"task.copyNames":`Reuniendo {n} nombres de iconos…`,"task.selectAll":`Seleccionando todos los iconos coincidentes…`,"export.files":`Archivos SVG`,"export.filesDesc":`Descargas .svg individuales`,"export.sprite":`Sprite SVG`,"export.spriteDesc":`Una hoja de `,"export.manifest":`Manifiesto JSON`,"export.manifestDesc":`ids, paquetes y categorías`,"export.zip":`Paquete ZIP`,"export.zipDesc":`Sprite + manifiesto + archivos`,"copyFormat.svg":`SVG sin procesar`,"copyFormat.blade":`Etiqueta Blade`,"copyFormat.vue":`Fragmento Vue`,"copyFormat.name":`Nombre del icono`,"snippetTab.motion":`Movimiento`,"snippetTab.helper":`Función helper`,"snippetTab.bladeGeneric":`Blade (genérico)`,"snippetTab.webcomponent":`Componente web`,"snippetTab.name":`Nombre`,"format.svg":`SVG sin procesar`,"format.motion":`Movimiento`,"format.helper":`Helper ichava()`,"format.blade":`Etiqueta Blade`,"format.bladeGeneric":`Blade genérico`,"format.livewire":`Livewire`,"format.alpine":`Alpine.js`,"format.vue":`Vue`,"format.react":`React`,"format.svelte":`Svelte`,"format.webcomponent":`Componente web`,"format.reactNative":`React Native`,"format.angular":`Angular`,"format.solid":`Solid`,"format.preact":`Preact`,"format.astro":`Astro`,"format.api":`URL REST`,"format.name":`Nombre del icono`,"about.landing":`Sitio web`,"clipboard.copyFailed":`No se pudo copiar — selecciona y copia manualmente`,"clipboard.copied":`Copiado al portapapeles`};export{e as default}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/featured-icon-CzZVq73R.js b/resources/vendor/react-icon-browser/featured-icon-CzZVq73R.js deleted file mode 100644 index d7adb51..0000000 --- a/resources/vendor/react-icon-browser/featured-icon-CzZVq73R.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! @ichava/react-icon-browser | Proprietary. Copyright (c) Simtabi LLC. See LICENSE. */ -/*! @tabler/icons-react v3.50.0 | MIT | https://github.com/tabler/tabler-icons/blob/main/LICENSE */ -import{n as e,t}from"./cx-B63ov-ZV.js";import{t as n}from"./is-react-component-BskCHdxR.js";import{isValidElement as r}from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";var o={sm:`*:data-icon:size-4 *:data-icon:stroke-[2.25px]`,md:`*:data-icon:size-5`,lg:`*:data-icon:size-6`,xl:`*:data-icon:size-7`},s=e({light:{base:`rounded-full`,sizes:{sm:`size-8`,md:`size-10`,lg:`size-12`,xl:`size-14`},colors:{brand:`bg-brand-secondary text-featured-icon-light-fg-brand`,gray:`bg-tertiary text-featured-icon-light-fg-gray`,error:`bg-error-secondary text-featured-icon-light-fg-error`,warning:`bg-warning-secondary text-featured-icon-light-fg-warning`,success:`bg-success-secondary text-featured-icon-light-fg-success`}},gradient:{base:`rounded-full text-fg-white before:absolute before:inset-0 before:size-full before:rounded-full before:border before:mask-b-from-0% after:absolute after:block after:rounded-full`,sizes:{sm:`size-8 after:size-6 *:data-icon:size-4`,md:`size-10 after:size-7 *:data-icon:size-4`,lg:`size-12 after:size-8 *:data-icon:size-5`,xl:`size-14 after:size-10 *:data-icon:size-5`},colors:{brand:`before:border-utility-brand-200 before:bg-utility-brand-50 after:bg-brand-solid`,gray:`before:border-utility-neutral-200 before:bg-utility-neutral-50 after:bg-secondary-solid`,error:`before:border-utility-red-200 before:bg-utility-red-50 after:bg-error-solid`,warning:`before:border-utility-yellow-200 before:bg-utility-yellow-50 after:bg-warning-solid`,success:`before:border-utility-green-200 before:bg-utility-green-50 after:bg-success-solid`}},dark:{base:`text-fg-white shadow-xs-skeuomorphic before:absolute before:inset-px before:border before:border-white/12 before:mask-b-from-0%`,sizes:{sm:`size-8 rounded-md before:rounded-[5px]`,md:`size-10 rounded-lg before:rounded-[7px]`,lg:`size-12 rounded-[10px] before:rounded-[9px]`,xl:`size-14 rounded-xl before:rounded-[11px]`},colors:{brand:`bg-brand-solid before:border-utility-brand-200/12`,gray:`bg-secondary-solid before:border-utility-neutral-200/12`,error:`bg-error-solid before:border-utility-red-200/12`,warning:`bg-warning-solid before:border-utility-yellow-200/12`,success:`bg-success-solid before:border-utility-green-200/12`}},modern:{base:`bg-primary shadow-xs-skeuomorphic ring-1 ring-primary ring-inset`,sizes:{sm:`size-8 rounded-md`,md:`size-10 rounded-lg`,lg:`size-12 rounded-[10px]`,xl:`size-14 rounded-xl`},colors:{brand:`text-fg-brand-primary`,gray:`text-fg-secondary`,error:`text-fg-error-primary`,warning:`text-fg-warning-primary`,success:`text-fg-success-primary`}},"modern-neue":{base:`bg-primary_alt ring-1 ring-inset before:absolute before:inset-1 before:shadow-[0px_1px_2px_0px_rgba(0,0,0,0.1),0px_3px_3px_0px_rgba(0,0,0,0.09),1px_8px_5px_0px_rgba(0,0,0,0.05),2px_21px_6px_0px_rgba(0,0,0,0),0px_0px_0px_1px_rgba(0,0,0,0.08),1px_13px_5px_0px_rgba(0,0,0,0.01),0px_-2px_2px_0px_rgba(0,0,0,0.13)_inset] before:ring-1 before:ring-secondary_alt`,sizes:{sm:`size-8 rounded-[8px] before:rounded-[4px]`,md:`size-10 rounded-[10px] before:rounded-[6px]`,lg:`size-12 rounded-[12px] before:rounded-[8px]`,xl:`size-14 rounded-[14px] before:rounded-[10px]`},colors:{brand:``,gray:`text-fg-secondary ring-primary`,error:``,warning:``,success:``}},outline:{base:`before:absolute before:rounded-full before:border-2 after:absolute after:rounded-full after:border-2`,sizes:{sm:`size-4 before:size-6 after:size-8.5`,md:`size-5 before:size-7 after:size-9.5`,lg:`size-6 before:size-8 after:size-10.5`,xl:`size-7 before:size-9 after:size-11.5`},colors:{brand:`text-fg-brand-primary before:border-fg-brand-primary/30 after:border-fg-brand-primary/10`,gray:`text-fg-tertiary before:border-fg-tertiary/30 after:border-fg-tertiary/10`,error:`text-fg-error-primary before:border-fg-error-primary/30 after:border-fg-error-primary/10`,warning:`text-fg-warning-primary before:border-fg-warning-primary/30 after:border-fg-warning-primary/10`,success:`text-fg-success-primary before:border-fg-success-primary/30 after:border-fg-success-primary/10`}}}),c=e=>{let{size:c=`sm`,theme:l=`light`,color:u=`brand`,icon:d,...f}=e;return/* @__PURE__ */ a(`div`,{...f,"data-featured-icon":!0,className:t(`relative flex shrink-0 items-center justify-center`,o[c],s[l].base,s[l].sizes[c],s[l].colors[u],e.className),children:[n(d)&&/* @__PURE__ */ i(d,{"data-icon":!0,className:`z-1`}),r(d)&&/* @__PURE__ */ i(`div`,{className:`z-1`,children:d}),e.children]})};export{c as t}; \ No newline at end of file diff --git a/resources/vendor/react-icon-browser/fonts/Geist-Variable.woff2 b/resources/vendor/react-icon-browser/fonts/Geist-Variable.woff2 deleted file mode 100644 index 5c5999d617e106753ce406898cacc94a169bbb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69652 zcmV(_K-9l?Pew8T0RR910T2`b6#xJL0+)yY0S}Y_0nE(+00000000000000000000 z0000QiewvtkUku#DnCe8K~j|iKTTFaQalD=KT}jeRDn1EkpM4#5eN!`+>| z_Io5ux$94{44q?>&O0P#hFQb5X%sW)4xrP?M)S)5|NsC0Ym&utte;()-M0@As8h;y zb@xB0n7OC0oTI9(K})36^@uL2Ojsh!Q|B=lqCeMzjcF3I$bFhRIx!NYG|4vkGR{O8 zmZ;apkTL>|35F9UDKE6^z(f;Y*jzEeo189iiX=@^jD`u`3KxcDqt={p?^jp%QXke2 zI4^20l(cx7dQk1CE>t_JEi20A!0H)3VQWOqo4JpYFt`i$NBTaaLPW%)$rgx=YdlhB zw0qUXFjJ5(U&YVR;@!vw$0sR2FjGIIM%_3nhl^3OJ06PR7rU58Q`T@!m+d1{qmn9F zG|ON33tqqAWzGetQ$LKY{JSr=(XTjf`lj}c8m{-{yicMk@%q%p>$;Cik||B8%E&o; z93di}io0uOwu%YdTx9ea!_e(|;>UzhymmptYdta&r8P1LBib#=b|<387l!Vc4NVj# z^}EXQRxxYT-zT&FJ7CgaROZe#2T6*XH2ENm<%}^=e8g-kx*r4_3G1&Vf)qqDVHtle zH#*oI&3@l2ce1iV{|n^BTbWL465oQUF2#$#%ShKy>taWNr%Il{1?PXozDWIZhz>0N zRNn%FaoIBrVM?ji*22-+t#;lQ>Jex4)%_$nv9pup2={>J2#G$!_;`M8&3k{NSZaw{ zmJk+6X$z%lk2(b5JR}9FHVWEPB0>eDXca8500X21GZ5ntgP;Fw>;Kn|wQE=Gkby=7 z&5Uwqoa7`=^h9q;*>0G7@B0cd&WoNDJRYy(AY#H18Egp+HqfEEx+)V@aZp)33!i|9 zeVs_m(Cf7S9{~~|1d>pz2qZ)k#X?|%v5lSXl;&+YrS=efOYMK{^}4+$apDrkN!;St zU|@LC&3`Dt0TKxyJFqj>z9g6Aa!D@PBoIg#OF#uh1XQ$Y>!=^?7OU7IwT_7vI{{~Z zwO_3rOLvE@{dQXY;hXdO6G#FC3e}XFTzox;3m85-eCk2*E<|3I!@g#a8|NzTEz8Z+rUpe-hEMtQZvs0dE8Ig9jL9 z5|?CghwYXhzO(9;O0r~*12oO)<}708kpF&3WoHSoXJ(P%7TwJK;!SW2x!sb_Qel-dZe`u#Lu%%7;R@L$G70l_`qgiC-R8{g)UiHeeTH)CpHFd9`2YQ6XKcmNelj$>pa_#i%d@2& zeX%ZTuJdw z|MoLqV6p%-3y8uLg|4a*y_sJ&w!&2HsjFPbW~l%WhM_t0Yuvk6W20sS*awzgR|trQr8DD7@WN=0AmtVv#ie zJ8f*CQQH{aNrwfCy19~+{-4z`ZzVTVmKN;0_Qf5b|M!T6*-MiKDq-4vXC$#=XATQ? z_cP2r57-KUR7zT6y4?lctMhBdvXl2_r1*$Cglf6EYJmi{m7mzW0OZzb50N3?pG?@_ z-s?o&2Eh_C;$gxfq=e`H+uJwWb@${_J!PK#LXL3JiXZZs02HBTJ(8Ow3CW=l8s}ID z6SA*}s-XqjkO{f9H>6_zHemMr}wA z8liMjxeU?iy#@*pRXHh2;2N>5()Bs1a#C{9SMmGQTpKjs@k9(IO|KQXr0e9Jom~gb z+3&2iGci;t>qvJdYL)h9vqyl$8IiKoT50wSx$A?BqEgjV82 zXI$n?bWvt(m|hZI9vv3!{AN7`rbRS4(gVUYYY$W+mOZai*L%8x>{rlhr(c#;l3m)z zgms1xDVczjiKhO2san_nK$B|9sX?btPik%a)TW+vmnVdL+s)VbyFm!u4UlRyD7yhF ze1MX-0m(BTpk%jbc};*CkJ8La)I@oMhu$D-lFZ4P^g+t@CpFq?(h1fkN*h8-_dV_L zn6F!VxbNX~+WVf@|I$^aCq4az*0O4=570D8I-B_%{i@5NX{f)m>NX&RE~nGRzcU7z zbp{H}QRXO4egC@BR`WIESp#XG&N5(i>CQ#BccY+6xk{SWsPjd;YwbaBL%eo{_@!tK z`d5XB444Y3Xwnn}ZHg|by1aCOzW%27;P3=jyh*8`sq0&Ifi<3oe{u^WNGJ2_U#4c3 zZx9A0+81h_wV(({0hD+G6{KKzmzTye*`Pp!YAf=p2WB3L5Lv_wvWST6V;_0O|M~m= z?b?Cy=LnUHcta2gAxID#B#49{5`tJe41;(2df)rDeSfy_x*r%X5wfBpjIxXPV)*lO z3wrMj$ydMaCMyt#ZGu1`5KkZwh!Kbph!HCgcXwa7cD`TE{|rkOx3(u;cF&ZXT1t^S zl87TsF{Lp<8WC|Mh?F2fn9R+M%l}&_+{TuQEkBn)KmE4;J%e%gBI@RVLpspbfQ2?}g{wE?@4onrR$okGvwKg!Yr$A#VIde8bBqOi z56orr=2L9MF|44l9`W3g(gp_s4Z(iw8Nav?4bf1_+YJ%_mmvf(zzaZ&0y-T`0b&F( zaT0RcW5^RvVb78V6bdQ?rP!CCywV2egB~cK?11uR0#Gq98&HW%1eN?0P$|s=mFbRy z%3%&rxz7tK?*&2i&*Gp8TPvtywgOapw-?klrU5m}bf9LN5!4*BfLc~rpjJ>11Q8TG zdNy+5CmKTW#M2m>TG}8aM5#c5;R9iGt`R++*G*_$_hx?Gix0_wbpkK|<6onL#aei z4v|ShTJmx}let4$^>_7DDy?N&u5$I;HA}Z#D=?19OlwX*b;T>rbAIFoJ>;vn^x#%* z>rK6;U)C24%3ux2$QxBN(EgmoTY^=w30tsLTeA&2XP4~@4&hJ^>j;kKT@?LcTul%f8mnAPxygMHBG2)m`4J%m18rE?Nn>de)Rd6VV#?Y>~O0A44P2Ns=Nt_U(h~o-Zy1Hw+ zHX#X3SfUb}RLI%=5j}xs*)H=v?nzJgjBQwgYw6fLQXfdZd=|2ZQKm4#G~VY9 zce%$SPDN|p6`qKM5O(Nz=tStp=M?B_Zaue~>*V%xUD=ne^kpC;nMfuTDPO$nQY_X^$G~KVk$6qOP}D0r4R*1dWYGlr*)%3@w-RF2lhba~n1(Q? zW%LVGmwaA_C1{_R*MkJzYV4(fE<;5$Y+7z$=)Go8TgJ_K%-9VQ^kLs)gBV(&4)~Dz z7avJqZ7Iw57<*C%lINg7XAy);$msIt3xZNk*rX9N3DlfogGxptQGTWE>?#%E#kyM- zbh^@$z6|Dw)b-x9Ui{O6>oV&FjtYn18mAjcdS+&_gf>KxH({1z8{;DEIYef$k*#R_v`YX>l!Ngf9Mt zF!it>WvP6n6SRKze$E>%DkL2)El%vkF(U9~b^)7+VPdA`S@*C*Qp1#Nt&%Ega09xE zro1vw_9%1Y&xdzlQ6z+B-7Y3-#U2JtztD5LYAc_j5LY#Ps4l4MysGq<)45`y83~Ew z{`!a1Ru&((&6_r7uc_YF;UWvJVcx(sM>`apvlvA-i|B`tj^)nS<3_Q$L`at+2jU!o&%A z4J3`Y==L4nEp3T*zjCzhYU9`w?|pcH8z!i3&o3!8iu2V}(L*aMsGGE-`;5R=u}(^e zed<z>S3dSGP+E&mP z$Q1*Kfw%yj5fG_N3Xy8<7pZ;rbfnSB#z^UE*{|1XeDQ^DlDn*qt>S4 z7XmnmMm4|!Fe1#pNC+?RltrhB6-WcFcv_~Jjh?Gibv2*1)Tv|KwzER=d9ld3pT>2T z=~&+9Ai0pB2Cf}9D+Kv5<2=}$p$@F?wd=aBb~?t*phC%!rcBzl9&*DEs!L?`(N+gq zut^r|>O!N;T^e_Eg>3hxea{Oe*U2lWX<$>oIMYLQo2tT^*aeCVpmaS|Q*$SN*yneM za`nSN%9`l|69vPp3L(i2z@X$xFCfw)qZ`c!P%0moB_3SSkh^+(6_!;GNoM{S9m_)I zvZ$%{X9Y59vdy4fO6LprZL({N*c{1hw2(6bdc93WA#X_N+}@AY-o>t^wo-r1kBm4c z^v%F7QLPIb(n|ns4Z-z?7(|X#Sy45s6U>hufz8#skaOH1A9o_`&c(=$pD%Yevuc)A zILVNzU6f!H*ibp#(Jk)f3S>kz&y^cO(4m)KfDc5NKBhwI2=isM2zpWNFUF9`(FKeV zi#DxZ2gyF9X)U|K!SsE*fh}1l7Yvy@rxVr_@Bnkb-Xt^}vs6kFtDos4MsCCl5V(Rl z+tmb)L7}ffJ<5&h+TXO#AQ*{=zD?I>;@o|T3L{ORV&=%>dix2V(ZQ({n^qOu65>k( z4y~01;8#g?7)b(f7-R;JE0#baj&$nXE2won!78?GLYcD|j-RM#sn0(x5~RL6Abf~^ znBeZ>I1vhoiFk?tk%7{&hm(4ZZ&WdmLS$aq%yP+~-zI#O`a&@+%j6d8%RI)c=KOOp zPE(#O!YDute#|UhFr#@4FM{N0+wqFx*yuS)!SM9Xx#0-qliP(WqfZrk<;h&YL5V)S z>=Q`Oz@AfMICkDVdesxxrs+!K8PSCt8O@4xI8Nh}`*Ug;BbwD?HuQ*b+yz!GWu%<| z1FO`JELek^5^Auw7P%IuIfz_?i~`eFTCG`-L1tG2=|W8fiOvSM3r{SaGauCJQvr=Iw~!m{ynvpEd8yIP z-iGA|#jlJpG6E~Y-|g+BfDw>-P-K6Rk0ADDqetforN)u*_9IFz;d8hPbZVQOfj*j@ z29m=sN(^)@dP25;W9YLGv>++iJ;7fk=V3zUH@xzIgJGaqu&w$w(m0SY&-^kJogA1M z+?WTLvbqRCz(A`p=hoqC(=DBh;Xv+_o?%ekuG4rZ^w;PDPQ|{6h++bqvmH zdP-KAjx7DT0*MSrZ!d%^-REl=*1`^hL=)dLIq3)XwV1E`82Sq~7-ylnp8@1VasY5w zW*W3km=~Pr7aHX?vp&419rE65eqrr(m4*2{+tZ?_EGDfr;~pfTEUm9_4h#}n13BS^ z=r*eLNPmc#3*`@@0iY7YIn5)sz0bxu*fvehi&fwtBTMP0!LpOab9bE~Q`4QX$QPr( zBjLLboX|r7$bsk53I93iGl9<t zI1irU5X<%TPvv?Td>|cP1mp7#>=E3R|8Y4Vt0F2%;#sy-sFD7}VI<2)Ko-)Yg2YR| z3y+=O&tk!2lzKng463l7q-aC*g-n18!dX`So|$;*fx=EE>VM765fB}~Stu@~R~z&U z%u+b>=ZJ?OBT}~J#8Gdgh#hs+Ew5MgePJ0y?fu52{)X&G9^FAD2ox=?14d5~_@vNOVss-V)`**; zEdH@&6Q#-pae7EBbK+@>kAYPRC?(S9JqD{k3JPE`Nwr#=^7}hLod%n2wF3y!xgark zN~ohXJa>D4+$C_@DD1S5kE6Dx0q-j`8G=5#opo%{YS3~dn+_mfhClvH-*TqKMYd1P z1sz>vQ){NIm7e>5j!vnlg@4PfA`INta@&(=+g6}2E}NO50He!Yz1LtH73bKafAnp@ zAq3nhLp%LpEb$hoYHXyo0lVRV{81CV@15&Gj|7U~1?fzZp*ria=f0DH_NI6qq)_Kg zDs4MpA=DQDilkf7s|&B$o2a)%gYUqR-VGVZL>9~D&ca>>xKc0}3L8-JTQ#Uf z9qQ45NldZnIR~7ZnzAAPx?xg0cmcMNfGkH9Ij5bbx4^IhJOr5Yq? zS!J;wCXYu2urza|0VC9*S<+=whI)Mr-_NQ~x(sTSFp2K41JG|KqXhx?=CRktdkH(= zC24^z%b5J@c;~lrCR+#R|14m&61WXsrx2l$BFyGNq|A&Ad&7b=eu%%FhC21LHRuLc zw+!K-rSCir+{&KA!s`N@)y6e*QiA~%~2P?kvhDNm^vY0p)6d5}FTOr$2pOh{>- zMo{NPJUu?7=ZJkE7UkF5tGxbM+H=k)ZFnuT=t=I<$ASZVEet`H!S8kEBruYv#1sP~@I%Y?ndsq<#bADEi%L#9li?ox< zC#Rc~u{t}MSxMNMd)Ybkz1Lifj8pcDQ7#96%uqj7jDLMSgoN6p8okIl5N+bYdE#3cBFj>WcfOPtajPJ2k6e|e?(!LLm5z-6x1g^~PSdi@#w(3;CT`uQ?b>)^q91JS ztOS73m^+*su1=a?{5{at^cZOI6^P9W@FYP&pXsZG@NL%JTDQ2L)@A~`m9~Powzoyn zuc5l21>i#>Czf|14;g|fpruz9he%~aM0Hpr=C0I$cQy(b)g@b$l9D(xgS34qbXy z(PzMrgG8y)q|1;gOSS@qiWDnR>XzH?7&ehvByH7+yZpzi$pQC!z%K$jHiR-1(nqXy1WDT}S%k2SEK;_O{VE*0i=QT=#x{R6TC84HdENf@9*~M0jgt z+fUe*Qsv4vvTpt~^d%$jcYpEB?f;S&>}TzWjvdjhX*9RwOl1WbV{n?l@XZo&*iF?7 zvz~T7#v@xClyz2~2VLfsOm+ew3e${$<%A-!L@JZ3DbzJIwX|jQEID%J$yb1=P!T-? zh>?jI%)-hBVTW>Xa>2NHc=`ARREnxmD<-ban78cnw*3w`=#ayXIO>?=P8fI6DestY z+8Jk^bKV6PU2)YlH{5iq+nXVxq@t!}fp7|osM2V$W%c~nUabB5!LZR1fCMwlln5uu zEVIoqSF#lIq{5po4MDmLnHI>BBUhe$1&9h2(KCP;nV7*WtZWc=CW3gp7g8KqZ zB0y}&-#7URX}mPBjLKQYYl`=kZRG}uf`hAIA`PKtSslG4fn^FSwk8N+WINY2(ReZuBF#ag@Twat`q-M5%d&dDdhw zjSQ`LJuD$%y@wPq!wOle*&_nT5Xf4@DdvQU!-Yoa%m-wg)UjrKm_Gj%62C*a$UrFcqK9&R4^V&aEe#xd^bqi-j*2WH(X>guRT{3%|n% zeHN+ubXYSyAGA0;Co(x5gY_2+y^_l&UZjPGbT+~)61+zOiX<|r0GcT*#@&ecvcv-9 zB$sM7vf4|!N@W=dt<);}Y}BV}^m4|v!TVL@3^XTq11QTsxC(oIe!$snWmaF+mXWnB zW|hnt#nimG>0~IG$Ie^r;CWXO+IS^&gsGG~RnY#vxS3YlH&dPV*uQ$MVNZmXH}Cj! zek*acAQQ7LJQ&55LI9N_X-5p|jM8TfM5%)`o5x+3#XoA8xo4U23AK{T<&r9}PZI*`bE# z)@WW+3Y2Qa-)wn6UC!BWQ7A--OzY*2WjGtzLbjERkV3Nt^n#Jwti@L7P^=}UH4Gp@ zH8E$Whx>T$mfP;Q>z?}_c<7PGek^5dVk(v^5fmq=3oZY0c#vjvxOuEPD;Q;)D*R3d;ta5U6O7HkosF1tK)D5Rw<7BQ;CDmtI}9jWu-^;F z^RWJc*x%9gI<$X)yaeT6pa4(>8HhwqKy;!3MG5p!1U+~lhjJi~xzIu%Fv19|a6Bln z!LrbcP$_m5;R$Ws3SBhsRU{BL z^1U=uUwaZlt{G+5b`41JVW~_Jv1V2a7MVCDN&CwDmJOXyY!JlIX_fvhFS@=6qqa`p z+CU2&Lh>ln5T7|_W3FYR2_l^Ax;I4sAHE@@5NDuJw;JS-^ZqRt4DEPetn0RGL$GfK zxr}5XSCMiT5RnGgG-*+;orFlQKDDH@#Pl3`xw+vu95vn~jf817vlg+EHhFB@7IMpD zVL$d`2`RC^^;zzpd{g>odxU>+Lb)VP;LrDkSo0%v%wH~ft|3zA=M*vL=aJd-tGFuj zYXqwE>nuF;RFBnB2@Qiigh->1Ap?=6h`^%^QK5pM$`E422*H>!#Dp2b2F?%x7cyLV zV%cO9#ETaV-u{L7NkmAJ3`voKkZKoXw*v@i(je)w3CmH1rdk6bjT(t*(uS?wNm5Sh zfOP7|G~hbIpc^P|x`}YhFl59C!l-+Y`^FH)O`w@HO~{NHQXZMZ^w?vBC!U~q>M5FM zmQX*1kY6c*BQ1}3f;u=#mOxphi$qmxpqSc3vPowl$I1XWJ_aGj*AOWGSP9M+t0BkV zI&ijG4@#&li1bzap=O^M(35E6(358&(*2&rNcQ`dKu)R0Af?TV;9T+wC|BKu zlp(9&42y#@W*eLdX{ec&gPvJ=q`R&RDbLiwd8LJT>)MEPR~M!3=|RayJD@B$K+jhl zc)mFTWl@i82l||-X9&t~6HoyTpj~Sa1OXxo$p+*Cash}OBnK?tA-OPi5xEG25D`K) z56J`MGLj!ssIW?rqIAVdBg&M8lq*kHsWOX*D5P3-mKrtbYSoslQx_p7&QPzuY=g#- zCe4{zw3Kbr9@3#BLP8SJt1m=K8YLqOlN*W|hK8xA%44uFoHj;J-#Eb#V`L07F~?X~ z!boH`#hQvnhuPT5Gng1VdkU5##>E}u;mPK3jeB`xc>b_}U`$A;LRdH?A`&xhyxfF| z@=?*SNt3B!V&&r!AycMP&6p`aYc|E4`H%$*VT%@Hl9H*GEk~_b4O_DwvSFjbrp>r* z+c~$~>d|et3wPYf?z)@ab1#42{osKIJ$mS2^2noJKK3~Ju^;y+Wt?c*G}-s!L_bL4 zev+m7O<8^q$=*jR9AFuTc;pe0ctS;<(y8ZOVT8|=-jB=~%IcaR^dzE{AR&wpX#=0BHs~V6`9S>+3L4R8VAw5Lcc9~i(C(JopnWYU zYIy~-}QKf=~Lle+EQbyhBGYVS9>mapOi7QiM=P_9dq*xf=qVY663-cK%o zExZ7>$O7A<2lF$mal^TU76?l|N7Q>7!*9!*1;Pq%BhR`Iw($LgS2DtZiEM?fc@>{) z+xy_%XMt+N32uBR*{jV)+$VzeP6?OzB*->R;sqaMCrwCoiHBy}B-R%}f36@>2;Pw# zTo;f-CZvf((H+f^nqbe+a&FMR7D$di8R$A~s{{SG9*pVaYeUwpSuk(KvN@Wja*2B1 zWR;93*^-T;hI?(fEGfg5N%gYw!cFoali#EmnNmzSnxe9Wt1dIupwbG1oxp?Ls%dmo z&DAq%KXF;^s_G)Afa`KMQNvGPF&h9Woog&G+z(m-#&8#~4*lBThW0hOuS4`qBJ@e3 z^j_xao2<|uvJwB^M3TdL_e3-+$?K71i^8Un8lDMq|XkLfBC#L=1kx(<_Q3k9t~ za;1hkd6K5Cc4|l^mBF4S8)8YmVXKBXvK~C&=tF{Z$>t8Tc2CfJu8D^kyJzk>1n7SN z2qN#Ww(W)^%FnFldL$<4FjSG*=Ho9gUutEp54LBZCOV?7Fk`x&B!l#%doJhigN+cR z{-sNUEufoAg*A>@B!056#W)FG)JqD@v=gIPbU#@*KVaQyTJajoN)CB^S>1%* z_5#k(>z+h1z3d45=y`{NU6n2TYw$E|Y=5oaj`Ni4yKs(H`kkr_`ukYXL4O^S@`3(5 zIur!|IBKx`zUac*^k68LU{r*HcnNVN85o)^2Pe`rXaZ78@`T7C*;=Pgx)#RZJRnqc z4sHb+e7efil-wLB+U*bx`3`CV&m3gd;JcO56{|}t4y4YDF0xVj%G7n-Yb7vAsTsLB zsHnIo#jRN_7Sdbv`ZzU^y3^P}d;5kk$MB%IXr;+a#2hOGSG<^QmO@mCSx^~wVuqq4 zj#mCSjdkGq8kb`=+`7casxeG70Bj*5R?4Phz2s2N1PnTKqz4FQn*?p+ z!)!$36VM-HDofUXc!2c}Ze{B)oHN!RxOVB^037`j5U#&dr{`y@KiiLC_Wfu0jS<-w zx2l8hCrM3apS6}?rauc>m@GeWNY23Es!jb)ybP9eEa;ry*pNc=C4Y`=mHT_<4Kk;s zA=Dd1 zT6>soGcfFsah5T^itT0r0`LE)&TAoST!Ym~tIY$&5{V`vr#(NB(~Bb71U4BvhGJw} zRQsrLh1Ka`B90&i+SJB20*u@ND0L4s2F2`Kazx9O5CSwJZ}BjBzi8D>HI-n6dNi@( zcH$|@W|5?)Y=fM!C&W?sae@ZacSdUV zQ>%nvyp+@YuG4kjDKPFYunzu7Dsar6@H^AwS0+3AtZ%8TueA-GGvVtx^vB(@$y=V> zFi+7{SL})9d_>tTbgK$hVXg}s6-#QaDWY;1CmEA1mWbRSgVVvQvwbO7+fgGW!>rQL zt=3w1-UIK_MsZ4m(4B{38W{MUJTNjVgM1Ru9ftgW!odK+O#XU>cTN6wb8Ii(Vp)Ri zz7fA=6 zr#X0*S!bv9JjRm{HSG-|+r%}@iK}P;?jUR9VhHm38|lI|ALIgSVPk=@Hy=q8{!5(1zgbE4r=Be)za!ASxefDPkC(y3E70z} zcZ|=oYz3b)mF$?D4DbG<69YGI_un{Qa@u$9HS-<D&|}ED zc%$uAab2nj?+H<%nf^V&ji-n0iLdz&hU?*ZF=!qPz;bElyNLViBi{2h+Zd#JN1CmB z3C*f$QjOBnjP#JF5r!M{+!Jgz$y`OCiJM*K%N4&}SF+KVh&LI`ra`J+Z0d#*n(?ve zo_|qvHlEyEuPJ6sNRbeRt2bKPOawSj>biG$8fhbM1bBC?;Z3RMZiME4>&T$GQq*wGkDHtIh{TRZ{2bl+9}4dB?p3NjR`6k$*xH@@ z)v@0y$iqSLv;qr?tGHEeUKxlh6#35_sfo_>jRdG|qIp8~VI*tn z4kZ&RQiqas5+eGN+SteVq)5_U2e&ReUHeY|U>MHI3OVD$8HTF_Fn^*-#uFFJk1}+6 zCkwHjRSH|N476#*q?6cZbM%;X=I(iH;v(dE7b|^;M&Rqp&PB|6CuNgdGixSIz!eO5 zRUsERk04JG((_cGtC9v*4!4U^xCA5Dah6#EOkJu z4HZNydXfsfB_X$2v0t|_*0qt@csS1sK` z?+XsCWcDZdN_IGoD5gCRsb;MLt4E-x$|u+q+CB}j78A@v#a1rZl-Rr?mvXkzuFm`W z4OguI-L)#Rsafi@Jy4k*K9p+G&GUeGiT?GLn}Vi4&#SnS_|ZQc&l6NHBQ{Orz(Xl> zL{G(FRCnlR7-+$O?fQsvN~DIJdC4A_q__d`c9R z)U_jiXyg$P70_W9Ot#BV?NH9~(h^-x2?G&{WqOMTod%a=7QM?zv=in@kns$KSeqJP zIf96{Rl`))$u4I7+odQi0ys~`aLz!T&&s&b5RrVKt3uJEMYGy!@6ya2p>fv)LiRI; zb#_ui&RG)WQ@M2MDv1MO#kW*ME80Lafa#c7soLt+#4`yPQqM&yoPVG-%hiEP?qrPy8*<%$5beW z1WO^X@vl$pl@OmrruUA04q>u5`~2Ptvao+>Vibw(A9wwbZ$(7+taQMjWplzsfNBbs-{YB?PEGd z`k0uQg-G>1FzQr$uRHPq74{A|XPAb)$VAQ!8X?;n49_?bVD?f^lpd#-8A;}3R+i<~ zJd{@pKU1l4b!&3y6qCI8fAPva;n+$XicU8(n}v3Tb2jG8htMsL+A-zp<$P zj+RHpLI^g(h#-m>;&6~a(j;6KIpk3QRr8oekDT55_0>g@a zEBa{ro$TnrGatzmEwBfDr$r}F6IFZ%s@m&lLIZZQ3Bk-us1CP7O>8k)jaF0mZZawh z`S*8OF^4C-RjJQmxFZ4)XTu+NBTO0+2mDelt3ESH`GbD>Oo(wh18d??N6b;(tbEl( z6${sg%xV8BH)W5WcyLxw7;xDYS6y=*0jiEMZx;DdtEbdZcqbRO zm@7KHi3d%~!VNxc=$|&sPaDSeQ~%{gB@e8uDaD0bc!ggoN@Wohagmmqq5v00ixASO zOSc}q`do0)CHGg4^%lMe=G%9w4FZM15l9poqiu7|={6@@#&bcSmn${1OmDX8aT=OUkFn!ddv#TbdsX zwUm>PX!GQ}8(CWhN^fqyKC~i}pz4Px*$!E0S}wiF7t<192_i9Xu#1}6@KsY^`SgBz z7%k0XI8#V@yPj9CN>8K6#*@0NXv%`Rg%C9w^e_%1=wpB(CeRbk@Xe#0{3)113C=ZX zJWZtOtV|0jmR8bg`krG`I%9HbHs)+Ho6O0C3}#BEWqM}i;=ERXd|q~BPY&df9L=*i zo-MgF^RqCEvIJaM@V7xjZn$}NWZff1-F44>4~)IMOnBF%DHm=YdEuwO(){`Q{`vj; zU)F6u&g*{QO&Lo)OLEtfSkye^R)1-BrMe&eVx(~YufP0B#qsq_-G~qbK_WWqs=Jo`gVG&S@zep@4p|Z`K)u!>$pSaVZ7PL%3kCzs0p94|i6+MSQ%iJjc3o!*(9-MO7#$2x;3;)ng2ibQ6W?lZ+(UT-VvtG|8i??7p# zdsS$<{XEYa2&(TT`#gAX4Ja1X7zUiO#(ZXqo+JL0HXb|c*rmvp_u*nz$1|92GSKmZnzs zkhV$+D{{=Vh$<<`?uGp&QHe3Pe{xGmWd$KxYezcisv`R;E64fkZ9tOVJ-G~(x3 zK4RIiwWyOACDMK&9O3RAxeR$O^s`F)wQ4lnTO-@#pJdLo3v`HluY&5tIst^jgsC;w zT4y~pnDlJPlz;o|rNIcuQ=sqmCQs`d>sJ$m)ffbmU=czDn-G4Fp2~$>sc;9zzNaR{ zf)#5vY}v8r$cgi^CoBhk(g$YJ3%f6c`>8NsWY4??{Kh8~pE-2j`RsY~;J^rNN4>6h z049u7cVGUNXMIJ_jl_G5CiS{gHRCrzYsv_X%867#qAChiQ>lhVwREauPy>q^+0??L zRz4jO&`}{B6Oo3uWS}ixY>{l$qT(suCl3<@iDf47RN`a_lgJ+4trQ=2CE3cZXIk4$ z9GkXguI&S85rM!oVp2~^lfgM^N^fdY=UvnK(waH%nQ?450iB7|qNsSsT+pr1U$&DLg5k%X%S-)7%Jomy&ue|owJMVq)(I=nv z4LDpQ9)CS=gpCP%>)^!C^Wqf%GO-{9hdSygMvfj%1^R4p**gt6 z@@HflISX?N#5&|JdCqWUT17azwO!iu+U>9D%FmgDMXFeghlLwTOHFq;=W%3MD48O)D-CWNJY zpB?94=Gyq#4d*twnjBG;U1hn;p^>+=x5*<+Wz z$X{5$j1xAUQP1S9Fn`bYgy}#?C6fIZS6b0u63_xz3bbBUEHPh?@3ZC zZg^j3_w*yFtGdrKs3!PhZ?o774nAV~dUM*{MP3*n9a91C(BXM?~;uAU@*VU_VXWiT<>*;`ekb@Fn zn0^aiVaiSwiJG`cmayc^U^JWY1WQQ7awH=aO-Q2?xl&SO#ah_1So^BHI@^_Yxr;ir zYrCnNJ2SF}G4z8QqqBot6r)+rW{e3gV={|a%zEZzPduqhh1AQO%4Z*PS5K5R&TAowfgRkYR9_c-kI2$OAW2Po5J3n z?toRY^U9r1rz_U4ufMeZi8Pmvy|cYP=^S=WZalkjbK|`mw>Ez8eey%yy_@&X-+%vu z{=sVxKKl9QFBfjz^5xO5`**J1x$E2Anccg$XYR~AlzDD9c)0)JB@gf1YwWf5cJE!i zcmIA)f3^SXg9G~q_pjc+`{2IA0|&Pq9oxIGe|i7f{&oFZPfkC)=J4T@)w3(W`vPc+ zEfs0ns(}&=!8d{zgl>zCym_g;)Sof13)l8m)Gm1_LNEk4`)Jh{YP-nci(S2ptSe>T zqV#r`ZdZDzwEOhj@A-pdJmuIkEN(0^Hu5?L-f-?s*WTgqyL#T!^MR~C zeI8sg0J4Vx2}S}4M)WdE&~9-Kv^xZW_6b<=3DV~!{&%$CE9}lp_DZ3h*uKnfI4nc$ z+8lx3loErB2geeL9o)n*;;8&9!kIcg|5)G~;dOgIh;Z2!BcTt1($CplCxn z*E1qwB$yfAP+udib|y1KV_LC}V*I>+Gi{)jz)K3CQqR&O8=alh{7Hl^35;y9ogVqQ z(Or^!`J6+K#8`UuL=UPg2BfO=UbJ>+N(?{$T4|+t8%>!>r4;S$oBu%nO;dBo0T3yq?z}KyR%{Fhna@m9~L+09C8=r4>6D7h2nH(W(){JSH zs80YqK*PV*cRuV>{;{6>GO!v$0o(iIgyIic@~rmQ8m6?x;1QU*wDp-ncEOG~2E-wS zz2LzOQy9Q+q-|SnCPqHR`kvRBGHM)nNS}T7h5PJ~Z~n2nb%EO|JOc?VDN0 z1#>njS3)Y&IxzWP9V?*ike~VhEsE|PV-g=NL$%SvgE9yuV0C=!S|9yd zR1SJA+!NjW;r?xOS6t}F`@`hJKLwB$G>J#n#VH*gGFE|)OZ6o;DHw(!H+?F$~`2Abe>Ya!`t-m zBi`k={7xA{gewjaAOQLU#DvNu)61z%lmAoG>Sm{T!5lCvX5D&!`lls#>G&Uhl_~!# zDi}}C8g))YQpa&;ghji4$U0AYM+0KU4-b1f5JX8(;z;C^r-mR+naJsQDor&>nHo}i zvZt=(N_{Dif|>N`w3L=p0g?m)2B#BGfq0Mzf}keo;IY$cU_h>Yju+WJ@`vo_$BZ48 zOvod1?i%P&LyaVk9neA@?HKEty(*P8$1bl#n)=W7aAL+h_(q>4!ydqX|1r}xMYCl# z!2dr57#j(heg41A-~;rxuVLtKKL@`11-A0tiKL_I>b|Hxr+jo||7-zo-NN zTt6TcAdN%WltNAtSAhkdAM z+{{pdiNExz-7AA%FL|{jr7wr({Dab~ATng}s4`|^0}BGKJb2s8Pm&a=c1xF|T8&0c z+8Z1HpG9nLHgSPxeu{z-1xYKIFlE`Qbti2(XV6N+Ms2Xw0r#6}mU*#=bwvrUeLues z2B*!EBDepXk$1b?6AAmjy|0B`AKk<4&tO|!8>!os{l9H(cOh9AgA@^xq$$v|f;w&X zZ@&MTr(%mRTlq_{?I6UvNH9w%g%4ecb@Zcf<=4{#WzcL;$7@0(pNN$`8r~KtCFt2n=FSD+FtjF->G$Dr-|P zuau3I;2aCb7&yhmwsI_E;}ReDMEsqEP08>~idS-cQt?k3d{gspI^yyYn}@^#>?p#n zs@Yi;d#Yi7g4vfK_9l?5gp--=WF(BL?4>-rIGAWEvxldqp>rRZ$qm!ViU&VW3$Qw2Fa75pal(T~tD|u{}Eh841cv za4;cR2+Tx84x(}q9Y#!UB6D&$apWg~!X#0g6iSjxX?9SQWRB)Pj^rT6a)?L1t%*At zkxU_JnVM}V+5DfbHFOciOqhH%^(QW2TvUvYnH}SSv4M%9sgaqUj&7%-_yYk3Foc7S zv380y+tLQTyo)tt#MBEgXs#AzayGE##TPJjXy znj`qRDReIPWO5&^yK!$QRS%J+q7`MR^##Y)%h%^FhBn_UOW)a<- z2xfgzk3a}Ot|HJ#tb(wDEJ!4yUJ4@&>=3OGL=QnhgD@jTN=R-U_G^$H&}elgw;92f zRr+QC3wXn0mNtnJOv4e0v@cm=ieW2;RF2;e8Cl|>lo2EaE(A7Hb(B%2*hYDr0Gupj zO9&MUqO~NIP0&6e+1Psoz^)RJpnhYE07yYeV3DBkMi50=Fz9syS^Pd2a=ex?nVs3z zaqo9@oiszdR%9L}Y^Kd-XCIe3#K*GAli~Unhgf7Cr^r*w#@eFCBA^TRcLXPRTzpAv zW1ar)^5qExqR*O*IHtxu3X zr2^dm=u=A$Xfs?AzC0{pYJ=k+qi7c|t=ybH2M5i3*nuiVJP=tZ zFx#9e?I+v?k64f4gNwm1<^Wa^Xqzh7FCCXcq}?s!6fR$hNFl%0;m#6K6-Y=uSG6`8uu}$}|`zl5mn*ny0r!Q<{Z*d%l=< zNX}=F7cw9ZgVcU#+!CFy>zS3)mZamDH2%`2Ym`dZ^ej>cq&&sf?gZ;|L-41*k@G??En1vB>Ko+1^L|( zm$lWcu71QZN>(@`jDZH7#=BhblpQ0S-Nv&UaC-K>rtC9LJtrw;2@B!_2aG!@c2+OD_y^pFP((h`)1VV#BlEj2X7HBt}4fAChBhk zRx`_+7_ste&Odt+Z1?y;UJz+I>vvswG+m>j(f1xaM8k;Tjg*0GSa$c5yEZub;Li8t z{kq)f!GnQ9vahBQWT(~NWeuN{eP(*)L(p&GMJ7uk~)JHS`dayMblm^H;|@|i4`$sJe2 z`CYiAcFDR>NDKkJ5x5$g6c2;Kxe~7en{-MxJ><$^mKdyK{50hLmZUa`VNu^0irWU= z0%vx7qe$qvl=@+p5gadzJMtxkqkGp!7xf#NI2k@pDy*3bVMe|QWZ#qcQA@*i*Km`h zB!OsOY-5%(yZP`;k4C8`6wq^*If@?wnj3T0I;BfJA!Sv(h@R#TSk+Tfa0~TaRWYLrlNv9pH%KW5&U%T4uQm zj**ys%A+YVcGyB{k~L4r09;KF4g_i-%V;%E^^XMpVxb>$=$l;ENAsJ^EMmySD9>Wn zY^f~GSQIAq>}(aQLuSxZWvMKb#Gcb*b8xe%HKg0rm54xwzF!9L5p(2MI#*o@83-rf zR7A<6%I_~IZt{6AUvN_^Yb@^}2U>@JrvbQ$q4ikE!tZ{Sex+y|J$lhje%N1HHmY_$ z2|qGMUQDMP>y?lqnLG*3k)t@lfF#sAqHV9H=w_VWVVz9ev`IuF&ZGr4&PT$5asoPj z<|G!&ju4B@xOn)fU6t1aEW!70EFbAH=#pJK$BitS>vyO2PZAsLSqX3* z$(&WNtmPgDE3XoiHJ{Hx79(#DvSxlDzgI)PFzr&QTR6}97VO)Y8wmFR1}M53L>zY| zR&s&Ak`VzAtSi<}TLWYAh1l?ly@S7707`Vi0s29QLIX82OmEPhf;|fkEE-kWSz$?6=-0uZ{9fImBboAz>stW z_MSuFKp*M&DveU#Ba2lG$Y3kUp+1K}p|8X?*LB>rlBg1IuD4#gd@>#bTawJM(a^PK zFvd+V4gGbyGg?8Vw5lm!oxMI9qSTf za8{?yy-VO+zRHIk91cia=e%n(b+>|_l-m`y>69R~~qr4m5|w&R@yp{_tCmvj}6tiydfF{^G*M`~<(K`wl)NkFq+U;;1EcZ5=a<*oXkmIUH(YP6!k5Ek1uQImKgGzbb9#)! zU}gP$T3OJ!00~?QyQo6yW#7cD#;5YL`(l``d4|ZiSKfNk&r4D-c}mU;G4%Buv}bqu z6IoUrBp4{68O$HC=aAK*UR2^Tb_zXW4P+g3oDFr@FiDDA+zeKJZ3kLjwCGrdmh%zT zKDRegF=lE{a*V-xRbY4EbU07UUv72 zkl{M$7mtAh-w%%x3&;4bnBwgYoN|VWzTYw~ZdhO);D^JaLvDx5Ug+?0&~uwBmD6{k zRJp+GBz&BzBcWq3F`bst_j?qFLL4KzNk3q>Ezz=B9Lt=uI=RwI+}1Wgk`)C@)0XZ~ zk6thpLBW?`V^76p?5NZmZCE3Ct(fACK|z>-QCI%YcM@W<`KX_*Q8)?DJW_G;i=PP9 zkK+gMLLdrHIikFFk2@f!*>lp;VIVnI>hUbc9x#xbo~`hcxDWaefGJay`?z(56*RU_ zSN%)kmJWQ5ybptJR(BF+Jxb_?!{R15XTIro zQ#xmoUC^B5V+EaHqdta?%N;KVZT-ay#B7=(5Efw|Qbmnl4x%1MDA!y71s~b-f%BBT z!{#z!v#zyC8GFV2kKC2wn8&-s^n1Yn@AWrGF!2oOb?Q15;D;Xtdu@QOTaX}<@K#M0qKEr%h;^N{kiR(=WrQNi4QQP;;i1UN!2N_mb_Jd))oyZ5pwA+@H zMS#PlFKdg8;`~v*>6s@%5XaR=+L;a%CHCr{#B-Q*BXUL&5&IBDbYMez_;DMAdFAkC zmWi8-7{hbMd1@-g`AOVHPx(*??jeUY&EHpr2J0nV31|OpN;=P~dP9DmBR_o!E3;9B zkChT40z^NPqa{El+4-U>76ZJ!(7}vT@|<|XSp_L`jGvmuNcSJlgV)TOB(+hY7ftT4!b#+IiQLyE@Rc598?s@0SwuGnmC%O^Ewu(Y|!p!N$iyiZ{`79(d=|qQFW+o zag>89dYM=j)HM{8EZA!9N;i!-JopSj-EFS-8rhy0CY3X7v#G7L^|G5P?X)ePHkDtN&r7-aYpW|loC zFYce*f)Uf3w_>`|7S>+0a^}p5OBchrgb>q|cWyV){`vW@{ylIo$nS|;ncr2FdHzk) z<#U{hd_F)A>IrEPyHY=>M+WwkE%UdqZ03%&*SW)xHN-8O3M;Pa?;mRDo2X%NnGqvQ zdi&Y(8Jz@KCmh<_Y z7&k-iQW$d3=0y)3#B~)+2zy2BpY< zh3IT6rcO;^^RS7zb#yDob}e{Ng>3Tb-9!S)F#(#``bEE2j)0bWm_j$#q8b&hS|!1r z1a5-|mx2{%zOkS6S!Dq7{L2D)YTncjrRP_ipS9Wg-!;~ZHTZKiH~<+>C+927LuaY~ z64ey^(iH+3J(K@nrdx8S{0@rkIafq=J@WGOi$G}V|0{ZfHB6GhT*1Qy>#LCJ-s(k@ zt|>Dj6N?e0c?x?CaY+SYROomOG~pwgeD;yfPWzrs{>Z>{1DS0BT&kto>(|HilKwzI z(ihk1D`QnD&HygOYUy0A2BE1hcON)0ws+t0of}+hdVANbUFWGWmS1X4WA(Q}&d{BO z7(h5vv#p{AuTZM4lPkJ>MPB97I+coQBCcQtW@l*8NE=@l-4w9xY4ftvw)x?)>=+CJ4<9g_j zjjV9Sf;1VZg%Mpq#0uvKDZO5^wI2bYDUbi)#6iD@q0*_8MV$g=cx_B6ZUZJS4mgZn zjowu0`M9e%L`!N_hO<;Ft6DO7{5(A3lGKzmFti?;FXqZ#$1D5}$G&`vZ877bz3 z4pgJnTD@Z$o955|I8FK|-n401gYsiy z#|IjVMxnH6;p4!LcP>>x%{ZeUSIaV^ zo2B;S0#vQJT%ffndBykbMKHmaSudyCc}i8FjSWJNs+-zErJ~S0TwfASye#Ikjr{gPZKK4}y@Zp`^D)kb_#~zapS9+0{52|`eS2z<) zhQFx$ye`Z>`0iv-*<#;pkCv=R={IjE@1g+w-J09g@e>8d3Tkgh?#JRMi-it6D*1a? z{9TI`=PgS>zON^z4ZCCnYcL?LOn%Vq=~l}p={N9UTg;q3N{zf;FcUX(l-MzfI5i5T zQ;UoO2G&dL!t_`du@?gk_%q=Df%5BQXO%^-x7$4UQzbg3MkV@X!k3f^cZ34*rjFPb zgpcu=Fnj*ovMDxsOSQ*NEHevWG6|wrj1~HyDK0mGZosvStnbLVX~fPJ*)^*Wsdb;+-kE}Xm-?xLXLW~&@9{F z#jTfl!Yq)SY^c=dd%(}Gu(Q;xVxL@D>{T;akh4A%bT)vW z=k;-#`l>qm<-2=bky+{H@SIgvw5N19^6Ol4i$d0EM`ax?3bV+^RKdk=Qs1f#Ep{^+ z3foY>+3X0q-Hsq2CdcC!luegtk4Z(VeU6}dj$86xYq6Q6O2h(IYh^l<34@Ws?}+l3r{Q84Wbc#&%N2%w zUfhv$3X@eL^-x?KzOG&)?X*}W9dV6T?BnHO=+8=#uZ{`N(>ubzkyM80sZ7Wkb~=$T zxc3MOL(J`^lZ{Sclr1m+VaTOQ5H2|&b7Kmd&@5KlY_J@l1dIR@hhSRnpT%Vu8M+w1K3TYuEGtOqBUJNQv7I3LVs!uE5+He>MchL1HRWP`^tSNBWr+qz=9 z#Kt7~)ox5@5}8EhH3eF>0#g_{c3F81QO8nP|N3Ih3$Nuv1r!A$s0fJNn1ZuFOCT!{ zE35$XhG17gSz!$prIo3*CCtxc2einP1i+Q5i!6OfYXXaLY)LIpM!6nP7G!YVY4R&5}-Uvb8=-!PCc5? zj@-M*($Y%38cjxJAG75<08j!vbFgEMPOB92Q6Aa)CS48YC!3>;@!#&exW2oP@O4rq zZIRzR&qc|j8tVg9kdMu^aHlazPGNMK~MnG3h;njW!TzfAq^x~;b z9C|MeoZOWb>KX4H4`_e+cxdQ1E`FXC2CzQBpGb(VpI$Rvdu-;r^P*d>JbwkmhhRni zaJ0DK{aK+`$G4@LU&Zbp7XTiHbQ<8Dy}%2DV0-dR)QPI+0bIXvA3kKA(KZlW;wZdk ze|1kzwni=NUJK0XjascTC&LS41nbPM@!d(rf&#nfZeD=H&-2|833S3jpMXmY=tLki zg-wB%yZBFNj1Ea_W=TRp{$ED-%+-ikWims$-g)ci%#|1Ynw(KkTo`TrQcB7#&vK>> zb)^wp;8GV745Mf;jM#z^JBzGp$~d2Ql0rSjH7$V9)Ht@G``&2Rs?NIDs`jooU85+f z(df|59$hOR!Pa!YERVHz?T4NR;SRu~p)1h>npR92y6-V&>qNYthC4iMlx<1d{P#S> zCyX7|Fql&j&5t%-eRj0gSQR5XpPYgf%pb`dylW9p=_mVfkVE6Q`;;mrqA)DSmK$M~ zPUwKJpiSN2$9ZIdcA>}KAykB<+){&ua-6W&N-sBZ#iGh~5!m3V_0{xGc@~D-mVq^5 ziC*XL3v2qoUuYDHHd7%Gozu8L=gB6#g3slVj*Odk5E$2?d~GEigr?H;Lc}^iBNj`4 zb^BvWWoA1~#Nti-HmmaLr=_6Z)V0lQ=tEIYd3_hwJtU?GcVm%eHp3^EON#9x+&o&? z;eEHU+n{A=n-tr8zhYIWm6knIX&|wMSgxfkiVRMbl2~HLbT#S~wCZua7unFp}e~uRu82cTrTI(~8baoo|to2t_d&)*&jVwe}uDZ5uYuC2DP#2em{L}q5a65O@ z-bRyE!mupT#;`vDM7{D_39uty}a;ly{HU{+?aA=6Y~$*d?<=XECd-``qJv1URA z>P%ws*2#eNgA?U1XA+OpKL^E*KK(VDL1bgaIdAN{VgbAZ+qRLh75CQ;UDPY7L%I!4 zy-c%u-1yL9xqjWx@Ci8S=XH1{*KD8FLo4=7;GB9M-WocU_BuF8dx+J>*Icg@<)gXq z@cieoAbH`^7q-;ou2#4jn6{LUuJ0r|;g7F+gyzEA84j^)$!uc*RaY(Hw>eGxwmKDT z*V^npuMN{u)s!-;KvrT_mjIOTP>ht2H4L6vD^G#kCWSc&`QJA0XMIYp$PK|X=C_P2tS1dQ<0pR<3Q9smDqF#A7oF#G=#^yBA#LUMIWU@q*P8K^SoKc`jX z39H~J_eg0)rCwXt=Ecp`wA!k)Aqv~b5b1=v+4I#nL@R^Z{QxCk&p+A{IGz%W%$@xt z)R>qwf9|{My2yv&>rVUJA3z8#K&jA{WGWGPvFyMfO%+}r(Xsw_Iio(i+PT?k5q@ZVfPv<<5*P{^&LV} zRf2mhtqgeJ#7})5Tf+#u!Jfo_42>a!DRGt1ZJH0T55)U8r3c2}`en_Gg8kC<%b64J z*R|D|O9A${(xOfpCjwUfX?YfVRw|lWsqvGUW*(Obv#%L2m){*gqXErIaOBr#cET5? zYHOWcW3F9Y3(ky4KQT_*=F%J>hc-C$x~y`t!>7 zI7cSd)zntn(OPfKSA@|Q@7eJit~brv@ZJWAhRM_{^*7F9V+_%Yf}3iBt{W?0V(#5y z`-=nbMZ=m;(7YZ)x}$Yo2=c8&yUg868JQwgcJI6b>tMi&e~Zf~yj+xs8wjeOf20qb9s5GdT&L~*Ov~w#O4uD+&Ia!G zf71dxMmj6NwXUH_Y!dJ z<~p7*q!5-On9f`g;YRDo>o7paFX?Md^!ji(wNIpD+Oq#-8!I(7F(y_yISLUZHbRh~ z)sLHFUm9&R)iFhGnbwJ-sRYlQSRJC*Miz6x+Ls!T=vSf7e3fPqIBnxxOgeEBb` z7d2|_k-AU@?4LEhQ|7B3nz227S2J41gBoPgW;3E%xKM6%K|Y_IQ*P8%FxZv~nvuh) zuo$V}P^;|og%^>)OW2=?FV-<7xZDjGc_ii--E4MvDh2q8Vqr+$Sc;G zt)HY@(*m_NgSK)p%j&X+)Hw1wzke>Ff=ISZ7`x**d{mn7diyb*ZT9esaoq5Du`n)ry6;j3agREw8dU@5V}`%n$>r6K&fYh=61Y19~OT4~|6o#p?Kh&Me~ z_V193^>SjZ!e-}sP-2c}>h*w#?CWa1X6t=YEQNZ@|`IcT-=3q3755`mky00d|p{xi^Vk=QL*nI;F0aZjaME%lIr%v`Szi?urlkKC)X1c& zzgZ>af93ItMW_-?Xah%h#~&#l2&KZn{;jQ>z*|xY#8*G`RuD@E%Zrjr^UDq@^1i() z9iCe=(UPr{S;Q)<0UVdA?VVoix%n7&UMoBqSsc!+#4+I4D017mjrMVABE4GFKwM$~ zZ%ZLqDk$BqIAds5P$(aP!rVicrI4iJS-hsAeA|P)Qg&5NkW?W<)*S#y2rm=~1Z@JL z`w-w%)5Vt3K+4>GWu~ijVjh8F>9hcQBY3Z z*EzQItRQyA&YQKfxHu#mT6dD~adX9DjJ%-sGr#HTi-Y+ zDM$@o18`~o)Rw(J|1t6h0zB1*T={HuTqxbxQ^K<^C}KJ2k6%4wWatUyrC4@z=WSz7 z0ecDSRaYYq9B*0w$yZ;m|F31mwX034tI8(eZ?PyxZqwD7Wm!i1`YWL5um>Vm7j5}B z#jfISmeX9;CX!u@ATzWSLCB(Uex7ho?Y4yYfT22jFt>#=j)hfXM0@r#*$?_wbAxByulqUC~K)pFJg``ZoI?MQo`3$08(+W=LdTNm0(Sn+k2!JItmLw` z53qR5dcL+uVdv?x683+EF$^rORwi!uekRK)TUkf+ksFvY0WgX=Sh)l5$Hf8HQ>tdzym2g?=m07+ztxpBQl zj->F{cQXpLrgR&@PqQ${+ct0QVbTQJP!hrBw35SV$Qcso)sownX=4O4-UM z6w1?8Uio)Fm)Q~#t{J5O#UV+Q3d5ABMB*uwC}odo3K^lA`iwdv6-H$;VRb~JR#!=2 z1iwg%R!QkvYK>IQq7~-dvG%C+i3Ke27s75217R1R^qYW)uFqfv5R}_|%6jqcI z0qHx&4Y%+H2)2aKP+zsa2CcFGsg3|1PoYx}Cas&T5*W*F%E2MQuW&ZJ?{huR{kf5M zx`I!WmES>^Jrjekc|CKVNC=D8N+V)%L@M=^x0e!PiJ{_A8;R8RsDkt;0&(Qg*zzTV zgI$HI2Um9qb+D*QS+YqPT=IWKf_(oncv-#~T_QI$;tXC~4bzB}i8=agc4_e?H^rH5 z&xo+e5ML_t#W^Nxi&$OL=fjyP8dDixV^MI6K1T{oX`alul!kESN?!{byp7j33awGf z8i#|t)>hLf)T&|Fb13s#(*EzD!svZh9E9kuWxQpyz@7_Wv+Sf zMR;Vc83#KTJbQt!CthWYvqe5d`p#u?IB&DAmM(INGui@jmop}zWO6I^CYO995qco{8u>bN8tIn+(o>|1t#56O zXO57&W*p4pEpzrPXb=}?zKUE(*^Rw-{$f?|O4-ZFP;=2qgCZ!zo;x@f)!5|uM(|T% zPtnWqfD2E-lWjw^&RVyJcDX-KkzFyMd9Pdu$nZHhx#1jgE_uQq7Xl(blh?Gdu4pTkV>qwPzQlS@r2gG@F9zNkO5PemlXrz`R^CDfZq52F4rjsOm4Cg3tBsK*Di1#0 zQcqZq+B=J%_uMGdhNPTElbPQTk*aBi!U#r74oUmtT8)9ODJ^$f8S}oTX-!_#uJnP) z7M&;H_IUg{z1#0`y8}7}<+JS#LgNh-{>wt+mnY5|<=!=VIr*#$^jvRWk5=)3+0=@i zk67ox(>L@Mf{H0jgaSdEk0=yI4i&kb3iHpqI|a*iK-bv3OZUpv9^mwh$=et)R90Uh za9$od?&OJGzFSU3sJJX@&Diw?Bu_@VF}T9EeAklYmha5HvbG%VEwMb0I?wM25;%8t zz?JK~l3RZF9(HEh(m35hrsHVM!FC*>@rFN(uV1DPuKCD#1oo{A37Sey) z7IpGNAJy{Uf<57tQ4?u+t;`GjjR*U-ZfR+1-Yzx)+HVITV{JabM6u74)XKpXWx<|~ z0%UeiYircno}j5YgVd?J+0PJI2@bciyaQKk2C(1)w(RUs9AmsvH4){54Q(yr)Sz_hdC9 z_2Wk#K6EM5pN<$xh3?w!NXy-E&^pHU`=LFo4TwjQ(PxD5sCW={h}TFOWKiUTCoZEonf6WemNSN6Tp za}T`w)3jo5$xG!HL(hGXl&iVA@9#lPuI<@^6K~IYYdigE7A!=ZPgg*xi^}GveRS>n zWT;e}wCTIbKbP%&n^m<&v$uLWba@=y9@TWJ_f3scx951PX9T$~Ouje??BMKV4ak|~ z1p%ijVY1ft8f+Z3m85-9%kR25ZKFzIRoOhIfCuGh0Xr**z;sW;3ijq7)3pnNVQejnD0C2vG2(xzQWv$e})|J^p zHG>CeLjhj^&>qn2+JjF|F#HAkmEqFCPjhmQq^F-?PXyHk3Ez_P&t`#VF459U3aqkg z11!o!O3J@qfh>R?*?W5ObOQP&3P>dFtu8I->t>iP-$G#f=d31=rm1vYca0UKxo@oT zj-!g-2}`Qo)6DootE+-ZT^4S+n~^+?$zX7 z74|Pf%aE_&>v=UCEWyv`zin1|d3FlA9SN5UdiY2^0!Rz2yd751_vbC_(wiEh= zF)GJVAR|5BOL^MT(JkMp;6$xA6^xmqim^5hu2kKUmU@IwW!bqfw!t^3ZdKmgn`r0 zkaMtq`1Vs4_XQ^~j_%wZC-Ds2%+Qr(?Yf9K=vy~FiC>l+<+}9{7Jv&R)0g2*9b)`& zn`HV2Y?x6>i~FK3<|U+0iK1T#F10>Y;!$6!3hBfp$R0UPGmV&JUBDXf7FD^K;zQOi z9!~;Uw98#Zs3N^6ycx#R^_|myD#T9sH%QuatJsRhY;lU&u#CBSo`WV%9GgT*ID0-nAsgl{rNzFei+Ks@Q=;fs!b*qT66qRDWYMksB+I-rVkF#Eh-r2Nrq?nKDdi-T zj)jLF?it}=J11f$ks)Br>|oDmN8kp8XX70j1V;fK)nD!s*%3&{ADiJPeVj^JY{zuI zr$JgE4tShUJEV5`t5)sTi8Fd!QJG{0fKFoO2T8?wdZ4@5?Xf>_w+b@pf$lw4zOUQI zM-g|*yi)G{aTWZ{e4}o2+{xsXr(QcFA2mf<;QlN^=|or7a-I-UesBy3>JAD ztiN&VEcgY|`1%)GhKJJfvnstJyIy~o-ZU+4L<3+-i&CX6O>gaPV>@Jv6zn7t%XY%G z8ml(7m&GSfTsUOpvN`P)hLIlN)`CrUm7p27b8irMAeiTVC0)x^XYSn;i~BW*SP-Ux zOz>^_po*-=B5QZs1f(4iT`F^LEb5l+9Rt*@L*7YkXXI*-d4_L7u(-K(_?KV{^vVvY zE57^YR+5rW8~t~Lu0h{{x_$+op;Loky_vwmWAJ^akD+aD;dkYtk!7!e)djv#J*l_Z zm+%GhM%kO`=v$erO+NGobZ)_Vqrt#y$>=V4zVE=nJfiN{j_I++M(7#e2^=E_HLtK= zzAuu^S|7g$7 z2FJ@UtMrPdHx{=v4KQWblF0f1>aCi#dV6Za<)%&T$y&8d1dP;%;-;-$g)Ti~#Ghw> zui(-k9*;d!ej{>heOI@(Lrxmy0oJ+=<3WlxN{8*vln%=;Jw~?NR#B(qJ>(J4Rr;}F zP)#9xse80Jw{W$){F?Z>?91X_=2db`HODfm5h`T$K5v;6DeX5G;#eQ6@A{K{a_Btw zCiNOkRvS*v3j}9#sl#Qh8!L@+>vr5KeNZJ)o#kac(U(RU-_~srjnH!<&0ooFcyFb% zA_0#aJ*eznlGKON{%aUdAW#_qOhB{0!q4-Ot)_3LQ2l1;ipp=IwpluuYk4TYO|V>f zKY`d#!VgK1eKh@7lD4J2 zeP_4k-oW~Xe9?*=aQ7Xwr~Qp>7ovyR`q|LOuJrFKqCCju5&wWo1Y58@nBpTduM=MB zt;*Wx0e+FrO62_oYu5Tq2la&uTA?uf<%lki>+--Yk9JT_%GD#o4QlqWH8q>{rB78` zu{YlHD)^$FU$%EMqVKHykeU7r&nHCSlPvHlmiaUv`3#@NlalH zGkApAYObHT?af&{B0@O7tY()ZWBYpI*9_nG)hR=kMw2m~V3_AC3~sZ#$g^%XW8iSzI^plu3EDY^6CN{qrxo z|I0hZUcXwi75ll)>O(yBzslnUqsqx3`#%69^VgrQbpq-Ob|r%<-EBEw00;Vo< z+urx^y+A&rQmwa z!|U6|0#6z}L=HDFDr&$}L2Jy`BP!?78f#A^$OKN0AQL(59B2R!!0Y$858(b7>!72s zUGD2K8r}G~d4P^Qj)*|HEnuwRcFehF3@fvJVsB`4LPoImMXW2MHRg#8KpN|cjjK&e zPN%}kT8ndff3u^pptX_sEJztzQv(SNyD@(#Pt|E2rxL0~3NnH@t@T(htZZkyKH7Gq zhMQp8UlvK55-s*rs;ZeRz*8B9?i|*hEV|SM?)(}G3=4W|BaI3K=T*-O`5DUP)_H8e=US%5YBeB&^6WCnnnA1WX@U6K5A_ zyO3H%+tra~QEOY#s4GEm9%kKDDCaXlRn~Smr`7hdb*V0D6PbtJ&UB-#Q$)w3=PbD3_ zp;qh7@l@+vJWe%&6rd?p73MJCh+fv{8dnoLV`v00oKz%(y9zv-(>Byu2TB40kDQz) zWl&#sj`eh`v7U?{Y(3dQA@uqosAPb)vDNDoe2tYFaqG3OPAAC3y;x)ho(^q<Y{e9BIo9HHFU6UaM5=fxwUMr;9n=e`!W6WX*k*eZrW`#y0B13*8Ci8fal!&w{DV@$pEnuUed zxpkxIAK@?o}C@)18Nhew*^<7Fs_p7M>P;yccwE7HmnhiMB8G}Q&ESR zF;L)h71uzkwKE&w{p&I#mvw+oNLLbFJg9a9CieNZLgSQzZ*ZkB7<+CWKc>-V-B8%^ zIWC4io>A5xW!ifqlmal2t@bw22HtD!ae+^^mpS+4`Alm5e8pC=nxbQNS1-V#>|?$D`)w3|IIB*Wxq*{+9j!zP0d}XO>X*lE-Ez;hPOb6`PzYCa%!^m6|Fvj38wNKz54+VaS2d}sS zXGUMZo7vKKU8fHL_aP>Ik<)SoQIt{NPA}%yh|cAyS(SLVec{r)%5}uJ+Z_D6RapmV z$Q|-js(mB!;?}e^sQ-~D@#nTl!znS%@7uv<=HiG-TGIZWH;di*#zcGtx>HiLEYcY* z0)@tYu}k@7(LHu5X}*Zt)ZuiUdDLRhopn(q8#p|#jWmAQvx9#UYbTaOwHt<3z#Op} z*N9_S6b_oqg#Lgw7Z|7>_`tBiWICm zr_(Ci9P!&;-tl=C+oG*n`+9eC)Vg6pG`(U|ovE_sdRkvut#x!QEcxELkKeJocK9hb z!@U5&7W<_Of5-eQ^FPg3&3l>E%(G0;D`DduTU_NiPH~gZnPQO(=Gm3BtR*2unUqh; zx||6qym<0cU)Q!KwV_7W^-M_>)YH9^YUse!4lHX8o42x&&F!xqslV!H{ZfZb+qQMu zqeeHO`E8HW$YTO0kVhA{7(vGZO$hLD;P4YKc+1av!{HnLzzOF(amAz9j|?qlqZT5T z<0z1rh861&BZ$N9{kFTk-8cHfPIaMgdaJ9wnC{XWA()~ zy6Myq`i)L%@6$_!N#4FFC<`S;7@?6+gT-br zd}j7}&Ob-;OCVEO&%>bkoG{5?cYmbh@7w>ceKr4Deks4b2PzSq#yQ+1cdGQs(l3;L zzx4j;!QP`~ztZjR144C07P3N3I8y#^db?-#p;u}8=(|^`@{M<;_xhsa>RlCWzcEsl z)>2iPlTy+|+K~#RI_ZSWlz+(yxh4yFA^#`~%1$wrF{P~}l$s)xrE+@A$9{T_?>sn< z&etb-ei_t=zyaV0P%<~?+daDPrB!XyS~j_9fre4a0ZgqG@>Hq%tiyg6YWH*;pk9GdIquPK>Qd@v>KOGq>QB_iv}78CwvBd}_5tl49nkS~Io(9Z=vDMZ^nUuY^cU$<^eYT1 zL&$J2HZb-xt}uRL7BQL32Ie?xCJWCBvG%f#u_jrU*ct3NdpG-Ej+nEao5W>tL)>2O ze(ovm*Su7ollLs|1>SDnVct`|__=%vU%=P%UHmA&mH(xHA%Fy!pjoh5@S)(pg0BTX z3A2PBA&=9@`;*7-J;c^7eynY!{XWE46#7mCf+VSE50eom(U~) zl5r`JrbvU*z0woXDe3>D-^)a@4%vk4Z@EMMf&52BnZlvyP&}_VskpCXE9FX)a*J|@ z@~-lC)eKdtsz60kNmNEvrRt>WU$sEppdMA9)hy5~)4Zg4p!I5(Yk$*)bO&{p^=$pH z{(VEfVVz+=#DZRd#-MR%8oC1AfPRIZ=CY0X#tBoBiE4_OHkh`XcA55@PMM}npPIfg z{b2f|L@VJ*r$0`Ao&GufM>vVs1?|EUa~mK8|Be4|xaFw9(mEn+_SIJN0Cd&PsqRaY&*p+ zv779R?8Ek-Q8@~u9q2CfIC>j>Ul9@pO(g4JL>*f#7S_7Qds`vH5(#oXm?v%AgR<9^nC!hOzt)BT$#$3yn0 zJc-)n+3b1EbJFv>*XphJuJ#Ulr+t3kExzjeUkVflpuo*wZSb3rJJc6?KXf&8EA*&x zPGv!*sPehWFT=X<(MWn^W#q%i(*{A+hN`>O>DAO~S+%cvsCumWljBib76 zijGGwMsL=*Y6fd|*SueIt9Ev6bM05L4Y5~ZZ^zz?eI0xHLLsh3*-B{i2`jUE0eYn22{+0Ui`kVDn+YKF3mCli%eHu_mA6SYx`{n{KgA+N&^PKS& z{>^Q^<|KD`U);ovm==BUAUdJRRaur#Ns?RQ-^Wn?Q&g!8RZ*W%7wV&azy7G+(i?Ni zBu&-Knw+^XnrU$qGHke*MhqqNFvJ>;@B#x!@UQ^`1Jhv}I`bAN^xGQ*4Kj#4@UiE6 zgpfp384!rwD^V-@Tn+QE$cs^e)gOGz--?<$Re%QFY z{zeH<^NjHf?f;*D3#O|b2qRXAQm{qI2ZSonI+=KFQ?xSXH!UzD2sudXedPcJQ4$|k zKE8r-K;k*LhVIbj$ex*J!Z@Q)1W=}44ms`Pc&Efvjbo5=^&gqsI<(5 zR=%=?XFvPMr0MSd3=S{uCjt5C*$6e({xhbAEPu^?v_Xs|7S8i;Vf%D%rnwiiU;D9n zUNnMz$sRv95jrxnZz-iWX`f`)=UAb2W{aHfhIsuMX@syga|2gSlqyD57X#F z++m7GcIR92sxe-k)*DR*;*zmTf~R$=)YK*F+J=m1A3X;YswmYUB#lb#48!6AxRrx< zQ63+TTMv^X6eg4zf|(FD0pSGa+md*OA51P*B@(8D$v)wRq}ZTwP$N{f=!&p#*m_qH z87T@QYbJ-&P-3f3y|=23$m^2I73wa5_w7L&RMgoLM~~ z>Uno5GKLmxl$HZ}7Z+w>F>q4Y3@HHDJg1x$-U9=Sl^RakkF|7iqs53QRsXya*c|9? zaG?VyzaOj7T&!m3Bt|afZQrfFQ$s-BtX{MyhSoOH9ilr1)&o|r4@j7mKhe{GuZaV& z9AWMXPIqd0zw$Tv-0jt83qk9(bK*knDi74XZp(H#EZxBRB~<1GnExW@XhU;#HSstR znAYvWr5x*RgK=K^fDcJmS<YVw$8f213En0v z{m&Kgh!DE%WJ$_DJW{L8F-nP_XVOI@IB&-~9MYevJCEAR3fx`72%dr;OE@-S&27GfK6Ojr%cf$0HN1|4V|d$yquu$AN05zZgeIu@fb?n&}F7Itvi zt!53z_J;mGa!@=2E*G0+(3bHsSi9^IYJsuf@;nRVREJj*EqT_{@e7pT_dhc^#T;lA}8SwOF1bHGr6l)^o1IzlEF!Uv&dm4(MHI zE@51d?s3w6Z)^}E-9iXdIF(cmr5x`WYU;%ryKI70vSpu*2n9+P>v{yGSU2~rxu78~ zQqHhn(Fc$b3e|d}HX6zD=g2;3*t5t5l&U3PT|%vvG>gCI&lhVbU8M`6tHW|Y_rjtv z7)T{a>ZuK^^wf1+e!4%u8yJ*0Ay|e^9ImHGR!V!4?EiZhg0nl8o%R2n{M=*f!#}`% z0C|T3=YcGda*?C-1RFJ1Q+ws|y3@QoZ^{7p-24_l~Si|uOJnaME3%7e=l;2x*S_ET>C^L+^;~nr z2hWy=Awv44?iH94C!aH>^z-%X`|OJ^)>I{zkOgy4Yt6=l1JelwIML-!x)-Om*ohe7 zal6{NZGnN%M`&Q#jb-Wx!SfzE0_(`dfVF)UQrOUW&650|1QCoW#?+?$q4czgHl_^T z!ESyrI&?KhD7BCl5xQ8izVUuOT&C54(KY4;7-uQee9fBrI1!kpj^MQ%>urN^PI7q? z9%T#?wHl(rIeVMH+ixlq5@1fKV_T*yyYVV(sWFDuA!LXLz!(u}O4 zLyT|N2ZL?8;;NP!-fEiA7ACwWqB5rpR1xh{(9|Z4Q?OSy&T;uq65I8gDomV00PBYv z<=tnK=_E!_PzvI-LsrWuZ2Qro8Zpg=+ptJgqcS5Z*kCI+mN5m?_D>i!V@ILRsoAZ) zvXZ_8peuM$~s6i2vDR*nzqWC!DcV}J9Ym8Oo?FU*y~`e8AHc7)V; zG4n4wnl`@ksod^(c~g$+v~lhekSUVe3parG_7SNVB}sn>9*4&_t~Ez!U>(H#ktACv zsbY*ZhrN-}s~U*-{{4wzeK7E3@uv0}sG=DO6?Re*ZhG2cAzQ|MI6IR|OCne~s~~H2 z%eFKz6q;~IEjKYE)S4YNwwMpP$#3Gx|-gb@_tszNl()+k&G zTqp!O_z&1PcG>>sL)pBsJ2}|mAV81^EIP9AY526H8{yirn>%$q3KoqJ3V}$KNpKo= zf>ghl(qpiEBBI%*4bPTXE(AyurK~ECRx}?f1ZI_Z2G>nK-wbsllJhnZ#ZX!%z8Ca7 zVb*u7)%1Tm8MRb0P@*Jg9_Vp)DYqiqxIUN-VD)n^3 zUE{Cbb(n+{swlrG+!)#^dhvQVZ$FK)$sn?71c0Fk(_e&^eD2l&d%#0?%>zCXxq?m! zP}RPB3Y^u0XWAc~-lxkzgO2JFSgaTayOh(dRs?H5*5but#0bGCGduw$dQERx`kJv> zPj&E})zs08E=1S%InM#axTG1xzDLR4W!4+l5@+l%HDbPy=(FO?^$3W+a`pekqJYj;-<(-Lq z`(ifeca0s5;#8vI)s|C9_0bEA8!&HD;y5Y(+A8esj3>Xvsvqx-{N7Yy z<5QrKGt?#i@vBi93xuWrCIJ_|ZJvekxHMvgPd1cZe1|EUK;Ipm-t2VehM&Ly58S{w z_ybm2CT#ZqRde+Mv|&H~7@x3gtA>1#K^gpSF{t9%KC7W!UW_W6I0tNV24M0W$ocbjKql6%ZM9FL?HuXhi|2O;_q3r^epz!Mo%)WEle$(_|bbHmG)@N5s7%nMQ}Gje7Cy^zaMb$ z*@5?AL^Sou2aW{F`E7t7!kuB@=sLWcT2F7#&nx&xNwo!GGqbFr<1_Gif29+Bw8p_w!>5?QtfU?vj?L&RMVm>$|V&HGd#5>3<^-lA6xMUJE7yoCQ4n4 zCcEBR_;?aYoCFqxRA`8^Ib7hwl|*sPBWB2=c?-k9bj&@K)EQTC%8 zGTOsoMs#t)^ifa6JPOf5T37+-iW#g{j1z2H$|l-*iWYtaev_>ibS?8v1ytGt$+%j} zqL7q*wHF9J9N8lX%0O9^86JWNYuN~Dd7T?*s#_a^Sign5k&QSTFxQZjrK#cA)~Sk4 zisDaypXX5wuV0AKU>8k?-R*Wk3l$!vqozw64AWCy9s3%#e?yXk=htzBEy!ZJ?xc=3 zFMC!~HqBYD^9m>QgfuwL;FAGf5%XgcLt8B!v9!#&2Gro5^?6Izl~m4NZo<0+TxCFM ztb8>0a6{d}VAPsB^>*|w%uXt>o99I>GFIwLV9L0N@Yo}XcdU+HA!7+>+8&Ydh9(X^?jZ!&c_-u z_q{fk1*z0`ur9luCe6}Fx~#vc9Tc-i*^;&$%v=#EnYAt-J6yr6!_Zil;Qjh0T#wO( zhHfwg)4_DCR5jeFoWm2Sz${qzHZc<4IE&LW z98`!M&h##ZgWt%KITPaJQ8iNg<%Lkt47h8GdqLN6RYeka9Ot{EXx=q)f2s{K$?1@z;>i$E##Pxv;q$e`lruQ< zyViFylZ?{2EnFDD18)bP-sLqXi?@svx%1f>!CANrSGZxiJ}UM`i1}IAF%%^ZTtp-e za6Z-)?8H>U0jFPUO$Cc|8jSk)SzUL)ZbZ6WEZ#@`}$Bf%nd(Tyiwo}dL`&_Vi=s6Vt=Xu zZ`Dt;{&77Vz?<-4@fa)n^yg~HYFz=o!x@l)(4@)Nv7zJhBjFRAsWAU}{{_l2Qjxw? zXw>T_@cg-M$vF}Gw-ZJ=IigAV38}W9I?~ib*MgI}3|c5@7g9Oma-BRb34$m$nqW`P z6v%3YzaJ8*(y%{28XqGsf zV2uTlp7vacon-Ss^C_r;m#Q~)vUBKVOrapOjlQx*uw(8C7J}$W#Rqui9czBNdCB#y zT3-1cR+hr{AP=NeIb)>R6j@qP_P;~#4x=xBU zQs-wTdO}JvtR;hlry|}AW)&m_;L!V~7(&ikXGw#>;(qurX5r*|>9)HTrlYt9v`WQ2 ztbWMF(kFu)7jRRlF$*G6u9?=?&5GObPn*m?VF(|WejEh0OLE;H-)T5~CYYenKsbmF z$EF=;m|IgBp<5FL9*4c(o^d3YNP`fZoCbq_Da{Og^MnM9o3w!!YPlGL=Z;OtO^ugF zTRTR!I}vsnS>>^|$S%mb9Rw)zyIU*kdpsS{lOyiA&bX308u*8~maDOF=`5Nm-tC4x zxODtNT6!-U!w@)AjNjcR5&Z<-Y}x7NSgH1;G0=`BFfUTS1r$9Twqd0fmYvbFC-l(k z;glU(^5K6u8gPEyK52ocbEi)ltyU|%9FM{M1!DXAh?DA2u6NJ!TCF-JX!~XI*~8`N z0as6yD%dw~$o8N~v0gLkDXxs7h3*;Ms#;8iVLAh>zj{M6zc2{&&sGX!ZUU4ps=^z= z;LxMnf6ia`{PyzLTt$xs(CQ5a7v|ZkyBz~~9m0UsO;46={dfm3Mi}GvcMJoxAqPVm z=^K7EEZABOWIAc9rE3xJ22IdPB`)egp`{q3!iog$n`gAr3Azj%RpcS8BAe*+kOFt) z0KL-j^T6TOA|v^!mO4&>?|}pf@qxtMHWl=NPWC~@>t(StYEYnmA5dC16DqW!P0aIe zsGr97?hU_Et+r5J5C^xhrM@%j>Lo5%sn2ONZGd~``i}j=`kV!q&>i$!nU0%3SuXR- zvB2TUcHxiK`1ge}^N?Hlb0lm$#nE$ueAfinh*!bK>NCa%({6PXmg}@ml0{g^iwk;_ zMWd~!(}6bn4%as}WRmGy#QCqL~QA53t&FT#`aR` z8+Q)w7JL8~;fXn|DRviU@U~)$48c&M?J2B8$2EV9w=lF&@_F7l8GsaRtJC9=-eq__ zX{wOx(2m-9ND(}8n_ND!9C~}LZGO^ZFqsG~J~%nvXf?dCT1)6<&6~+OEwrY=nb9Nc zR6xNuq|CB3PAF)fRW%N2k~i!JjYs9*M`^?2&Gt%KGa2NRsvNPW*jId< z3$+^3g*nrl1R7-Opm(Ff;DI?f!!6oS)Zl}bKDayp<(KZ>oShPCPdiS|SDW6Jg zp-+9d@%|hZZa9mZQpS%#P-RVApbC?P$rzjb%E-g{$c$%(mt&z4%MY+jeBWo2FSI@| zIpbTFSkpa8wszJh)=Cdk#*`zXz!;qZaCf2%??uGBpgZW3JK?eLNz;M^W(nyIw5C2r z1nSnh@BP~*fjKe4N%0A)qJ>f{AQ$U6DtsP?F{Am>&+nveQd7ohMUK#d%urh-##A5P z;IsEy2E86i6>wo$M%j#$38$TfKb(0SmpqA+BIM;jr%=3J?<;~dWEj)+ zL=Iq3s&8)c?a`zTyNRe?bXyJZqSuLsX$lPe@4|()$%xnQ^SPWB*jCNVX4K{Lxjh~( zpXI~0>#&lG={%pfL`NNwBXJgqsE(MJa>?uPt_hef!)Go`+HpWi5{b>^EXqci(y{$ZI!2( z81jNJ=ZKOAHHu={rO<0%p@JTWpB&*=TP}M|yBKuYRBM}Cg>RhQuhgY_H?6^=+qP!GU|u zt7(k&A!vgSIi;A~z(6(v4O11}1ERH}yi z%7|zD=$)ueD~Y7W#MnZfg4!)hxTs6`tzlL?Jv{`fuCyHFb)Xxpu+Mqu5 z@eN{I7|3dPrTOb;)ejb;JwlspA6*y%tG*_1U-?r6@15AaocLQS(!1UBsZ< zK&SEEX7ztpZMkI(`c3;C@TG3m<`f-8Gi($BiBPXo2v$in$(V#+hF#FA8yPJnl@da= zlIF5e42&(>q+OWi_s520r7Q`>k|Q=kp)ly47N zabpUH0O-5v4XAfIGGS7FjPZvF44yW%HDeCmdam$=h(VJ-FU!|kXxAD~qOrFh%Pe?2 zlap9x8f++dZS@r0!bV@H;WhK3L`fvL_nHOn2~g508c^!1&^P6de0 z-xgdqaP7=B&vy(j4lcjZ?Cl!|6+B7#CRkrQKm&)z(Fb)uqz7}Rx&)TQdx$F3euX@L z7R=Lk^p#u1>QZ|X>Ub=Hd*ByPX^)Xm@^mluJ2Q#g7e5PiI+&62B~;=DZdw3RrHpJ= z4;LM00Q8V-b^OiRK86DsiD(J&Jg)CQDoKA|*Y$CMVZuYR+Is&hAuokPW$nslQ$IhZ`tBBxr~5;+KqjgTsAhp)o~CtQqj!Vq*}0qhJ?ZOx z(i!;Az687rG2spM*&q7`ea4ji(sQ}xcRJ2e?SvqhH?2sZX~*eVo3rm=43Jg@=H}b3 zX}*gN1KTbyxea@sV8cbYY_O6e^PHz>Dyp)~7{Ppgpf_t(F@7^l=n8@7L;`2n#Am@+ z9I5_1!rE9oLT-G?aP?{}B!)MWSmMMMbSGDnWdv%OG6rpzuLIK@V$-|?W{MG@ygkSv zLkE}@Bdm*0P>LB-6$c!dmM{_zBci%KihDOIsz8{Bv%#W6(|9UUQd@`&g-@~^i{XAc zd(U(JE=t&%9qs~jX3-u2DVnraMw;gu8C;bcDx99QTAl@~m!-wM*d@Mm|d zOa2<>)a6)9HXhTSdsyrdhdPK^uH;o|G)b%oXgP(lbjNDah~dXgmRa@~^@s3Ql1QA` zylxvcQT9&Y_R21juk)sP#Ki>(8&=uka)S!C%CmEN1hFvWaZ+4IA*QAh1N6iqW(%hQ zVsQeIUCF~R(MA>tw*|!;JpawCPxa~@T2P66kMh17{pdB_VvS5TpgoojBZ?knl2+4p zCY?Cu5ZEeXSkN;hDuj;`nesjn8>iZfdKgjyCmjN7Au6;TAMS=k@OnZepq*=H9pfp! zfxBL`2wLedvUGx;qMGCXz`*~{Lv;LQRN#foVXE#Fmm<7q+WUFqpXtFoZRrwd+Ez}& zqq|e}ra>#Ipx(a20eqM3Kk){ciom~g1nk@qhxzz-pRZt7(qWX(o}AGT_fe&aF2A9; zcUwv4sX&pwiKe)RN)L)1p7DqyP__1Ah zG<3ZOe+R$PF$$l8PtJ)(G8!U(E(RMPN;@!(#RBd|P&`dDy4NWT^X!R!k>8quW+4GqfZ*hoTY7_X4Qbeb|mjZzY!V&qdMi^)P^ zgAI*vgEhS=O;A7-f{~RXzukvNzgaf`QPB!8z>ZY>q;Du>1@wW6(`D(3nU)ZvP0X*g z;CTd)lz za2IhWx&6a<2oS}_+tunAZL%E~S@6+y&XcT*q30|R=`ml~c=sFy?w`>*4^b5T#0Ly~ z2xG#iGPP0j3tR=Bz%A)Nr!I*)ya*eefIvi-&@XK@k-f1f6o3_?W5tyeLjfzls)LE`CUp`!L4q8|7k6FVN(!2fI6Z(_5-< zBORA;B8_>JrKo@X>&GMhot>}nULWwzw2K5ja)z2h>)>xTe)}Nsi#=^u9GmIxIgzmB z^)pmjzcWPN>%Mc~Rc03XX8g^>edjU!zZ?U>9j-&bsPyD&N%-0LH1EwyQupaix8H&T38l!{Q@AQ9cQz9>rS~ zVQo;GKx=r;sJjbb2`n3FMyZerA(W~rjsms5!?c8q+!uqU3XD7RQ<16i_&D!>Dqg6! zJ-$5}2&u*yS_&#ri!-!`bRoCcFO`yLmsd$w_`qk?teacan<;${Xbm;{g4iJtGj-9Hz#+I*u)6Lore4O$DXh6 zEbuRK827H-`W*_s;Fp^&C>|Qq;I{wE8Qw3!%2@1}5r+~m73*T2eY?@X1shbnxt^fH zMf3Vt+^*E`^EqfT&#>&%)_>fx!)xOXAAr!d^{MjpYBiI*vhl}r@a@4Hd(pO`etT^C zzOZAjI@SZa9ZF45LmwPjWC{Xnz3^ZE{wK+`y3N>QP#sgB4nsfyVM>Sf_F{$MiU=vN zZ&p3czY&}c`hUB7rAm(ewI0Kb<6AAa)lWcR7cg$s%RHwi_1$OJk^#&A&wjB3hbtpm zC5#%c8so2pexspVSlE8!4D(0eta6%Qr5FenQn2*%?X6vMYkPkmbEjkn+nHFECg6K#Bqw|_F=;!EWtH==S5sw0!0Gn^t+_zSoic3gd;YS%ONm?0}ZF|%u`zIDM z$6t!7OwI0m9%X@V$tfT-&j`WDT~vJR26qlNf_p7Ez2fcenzjvrMSq03t#hf0QxYPh z3U%90$l{R)+;rQoZNI$qg`W;*uEJi}e>fO}F;Op+Z-|O&c03;Ren9D(*WIw! zw&G%O;XzhYnRPf8p>>B186l{*dyBO?CPoR2{6gOwjOc+4%*9(xpq>Wz%D9=>AMrXq zKip<@e@gXDKmo-Ghmq8r!8a>ffp3(dMyWPtx1h#?dOQC`HLbp_eu*w!(Z9j~b4@Ls zAgKFFm4SeSjfsXZHk?P8Xx?PA$L7pU&GBF`KeJJW@{wAIcf9ZVH&uQ6OQkDcu^fsk znbHY3y_R-H_YPQLv5Dbe_Ab+~KH1#L-+N!o_TmnCly}j3ovu|3TI)tsFqALmX-GGT zBUgFWQBUC;x~#Ek~AEPpl=mRJxv9$n_61xsc?ruO52kzL;@l$X$`CPac>?CpXT|yPbPyh1~jL z;!a1_zJlqPhYnX{dz8d&YzGK)(B=l|>DaVG#=@yH9_Hg$lC?5pp*-76lo#_7yjaPS zo2BI&n}1j2ZQ?5bAd?#xK3Lc?eRJ=agbjRP^z1|?8(E;btapa7PaW1U3nz!>6VzVA z6_LEJoR?zmuvM)e>Xwn1vV2Q*dk1@a0hk=rMO>}0N7rcmfGMEZ=8*Yu9EBD;__#Bx z`@>(S<71a6)T+H#>HpCD&~P>5D=6MEAF&KG`f$!%VND5}omoMkp&KE}M{nM=vpx-TYbJ%h5x*LTwuK>mW4j1$~J$%VEMIDaSU8^0vok(eetx1=liwB%?BJB%fy|tnfo)$ zM)K5t{NqI7vYoI0(!czU>I3hRT`~vma-ELHfb=c6;G$mYw_xMF+I1Dc4esk+4VktNdXHMXp zI+e53|MTGb>t8&2OTg>LVc>*htV5q`%%;tAenkr8^<;~jf6TlnnHq&pfR z$S!sCx$NGhURQ@h&Cx#$*RTg8_Vs=>=XlYbaNP0MC$s6#gs%wk6MlCe_9IZMw_Pkm z&nge?)w>(v&36`bH;2XjY3-GVff)q8qkM_y7zcgBYjwg36|S-MgFUH$vd zi6UN&%tyC`Jn3!4hw(dMY8m^r1o=r{k=6DDa*&&RM=_6mUH8CgOxX^|X?OCSYsE_C z%_@C#de7JI_D$~^d(`0zB4|#Q?^DNoRN+HARX4rLisGk@K6!d(_q)CAm#2sTJ%v=Bp^0j7CukfDNUFKN@zRv9n*=*7MR18C zjl+3eO_ziIcOV>ACr)j0|Nb`@ob>WMYQLNi@q^8WtbTx%!PuU>etYa|yTjOw!HYPY zb|xp$kE!1q`cC9!;_8Zi)?rwUVO)$C=G}i*(HaxRlOI5%p}3zO+@PkaH#k;uU!2cz z;U7GovZp(rW5Uwu4=&Z4vHjJ3kU7|j4b}I}j(zR0gU>0SgYB4g;Yewc@EwYZyA;cd z?M7WoH_?_h93o8Qa#rKu;byaC%7H!-66y|ElAyI-V@_2GhW&r7?Z;JfA|WA=6kyTY z2W?g&9fiS<8nWZ_L|-j5CDRZ{B9@#bJWVItbVV_kGio?UI8 z)S;R6dR9-US{Jf9EZH#@*u3sWK1{z4S)Uq-Zj;e0h9m7ljp8NaoPc_02@g^cU4cYz zJ1M=9u`NBgZRkghnswAgL&1j;q3z4mLeW*0*XJR57Tbug!O0YNN=(HV5o}_`s=KP3 zrH*$}J`bRd>VM;g z?@`XE`OLYJxQ(|ch9+|IF?WJ`9R~w_pB2bjA?vs=InR@-Wtzz{nz$jpn|?R8EmQod z@iTMvNwdYMLHEdN_((kO2eGZ$VzF34rIgo8H!5z)w$KZhP&U9I4zX|GaFvxqk6nZf z%$JI?02EpI;m+vB_^U_XeD};O^sNNG#xeA2;~0F1qlo5xq_S$Gz>4d4&c2O*Nd+8Y zc#^WgX-lTji=@8r1UxAk{!1vjR5$D{5838@pY16^Hy_s}oS zP+vR8NE^;%+O#8|&gGVPnK$cTi$)x@f_>fy)r`0g@|&WYhAK6o$V6^+D%zZFT6N?R zbBufqYKevmw{)yugn9cr(&(>;ZGiFycu2x@8jZAk=0;J{eL0rl63bACgIXKY<;=H! z_f8bY14SzQd7$KHi`rm8FZP#<)Ohm?<4mtl~(rlRAgU}RF6^_9pED%@tD z{w~Ex$y`B3hzJk)HRo5QRM%yZzSVrO_Cmd$OM#T!;G^+|T#K*2UOEXY1`RA!yP+?C zecq~ZL1Es^zcu$SxNhh}nihWqzg0WdXR0?JX42`=G~cFaU}r&soi*s6o;0rg$ES>k z@eV``OU7=U_`n#q5EYybkoI@zTd=HEM>Ige@ePgGn-0gFpj5O!D%s-`FUbYypxa;g zH!Jr^c$&Czn|b~A*k|w@lj648MmA`BX7)MsdOd#SjKp_6*HBh$qTQ`NJ0`YrE`tkj z3>LVB7$%lSpAwAUzU8KCFLSTG>4trYdlj(!=rKdme1x-7>O=z}Z|hMAgF=+vxao;t z^$6d9vx^Pgq$Y)EHLS*IwO|v`c+%Yz{Ny>Ck!Ifh#FEh z0x9PyM53bfrB|B9{4ny((Du1uQZP2s5e~#&l8)gP7`)V;corTWO2( z?OtN`^EkuKWcGJ}NzG`w5&l&Ss`M?nVFZbFT&Wg1RcQHRDfO<`{y?di8h~77BrAp9 z-IovIk9VO$sX8cHP~+zA?MMY5iqZbiDedoI8-{_ zXO>Vy5_r#oc&{5urWSyO4^P%%bP7#IdBa`64digEG5t&zg}34NI{e_Fx)|LyVHm(q zl?fUNNQdm2;eqZmfS7&+IE7!o*`Oo)|OQq6c&koNoi2p(OfzzjbGs zipN-e9BR2y9Jp^VCZ@(nmV_J^$t5|G{=R`gm9yLA~@`=GX1T zpsqV8&YMaWggP@rPd~s1a3Ad#S)txBjYXcug;a{KM=7QE>B4kuf-qmi?E^iTFcwef z=7OOlk8U-^>m|IQYF0aSlyKIFaj#ey@67nlp4dB%gWnE=LSc33nH zIrP*3+vGSZh+u-Glg~bV3-B%TUmv9D%J#;_jdzkkK;Aj~?9Dd`@0~Kiu6z?8j!5>RqBlh}`Z+`X~d`Q@o0UU8AhTgy)L&0$+ z+07Q1P@bpa;0wG$f>j#)&m`u&EPs%?ajiGI6$eWoQJ#e+%u?#P zY?KH?FmqyA)HogJnBIo3_WB{b>TqAAzh&F~bSm{dZm3H888QhWk)cNNI!=*;!TL&0 z-W>UG1}>i11$)3+-2X#0g*huQ!#op@4ZGo5101$S8U;8Csc7 zG6rqL>k1gNPPCmsCN#-Wjt_nXgEx`Q$(Z;$rBc)p!Eiv<=p{gRgYiln3k3YNooZs)UVvUjRwot3noM86#eKc%o3p<4~Z~Vn9E;MB#lO!s1vcPkI;gG|0!MDRU&T1vcm6YsdU?q-Wz6GQcfM z@8!@V&9Sd0#=~Cs0@Q)dU-{WT4_tY@GMje*G04or@1!}#?{9^IBkzIl=Rq%${9XRN z#p!7k#4Zso4*gls-JQ9B3E>h^j`%(}G1f?L)x(`6r4lZC#yA_t^z+plu=fJU(rRh3 zco{?mLM!avNJaRmqXwX^G42(jWMX%?AOBG6E(=@kg0Mw6B8_>2uWLU=`44@i{L!JW zqAh(r!O3rx=Xa4iYU9gnh?JdQ+V@q z0ozteG9+U)<{vD**DBMp1l)+0inSiPVVXkx$y&*l)o|E|l5X89^EFy#9<`zk#HV{f zw}okJv7!FAJ^k&K1>p2=A-y?*FCH9@Y5JjY)@6pCEO?3Pmh}xBY+^s6V*}6)koP@b zZYAy25HEL4oEpAiZq}OJUH$#d!t9WX;%4qY-nyPzq48MLgO#;4a6vYG%WG|8XviEP zOTJq9?5#vqqh*!j5*lCD+o0vRf z<*dYPHk~OomYV&ShtuzY0ZgoxXF}rt<3v1S{^foc_4IO}AlRt3cGW z>Py}S-VgpwkK1Y^m{V>yGi<2=ghH;vuUHR>X7~bU;~-DJoJ)x^BRd*sH?pQ;-gs*5 zI**oh_pY3}%f84P{a*5lrA-aZ5Knk{ojc$48;YZSe#W78>^P7J=x?MqD>f|8xQNUc ztb35@YAhxq%$#VtO|5E*dtVabOtpL=GHei35PdzhSrcd>y-0|_z2lrc;KBK(F89mO zWlhS&x+eEpAmD=|)}EL}{2}2yQl?JJ^0()`I1B#8=`XTU=_a7yC>#yXl}j59ntC2_ zBATRlV_u3x5-e`2yHs&|o&^$o&7H8#w${h7L3|uClsMO-#9{T(9CVpk5jt0i@wOT17OL3^*E#BO6)8?QV#T4aOg8ITrq3{vq zBM7&3ScY6e?b*DUEs{Je3biLE#BsXK=f$`$tV(G+Ja0upVjx2L0mX4enlM1fBwELF zM$K(CNt2OgjJc|$K2EiE{R`V3!CkT%8nBqHpG3liT0#NuPcf}|7nt8$kZ_X+A?QFKC0=$#n*)YmsuUp!<756ZF*o+f~Ic20Ut{)o%G@^5%i2IuDUoxVG z9$GfE%DJrua}$InaQzBo?s6DcJ%&%9PYz*wWz3bGO`=h1+1K>YC`KD3HCx6hbMx|+$3mj{xrD@9v#JjtW=hq^Su3Sc zj!({HEfjJhV8sg3dFzPNkq8N>BSvHxE*@$QoF3n}C*p&XbjXdx;YbMuuW!k{VfC>N zQ8h+JzU6O%I;*w`MqoSkG3Qz|4cyt=aZcAfufuaQo#6$&W6AXgVyBFW^9~0<2xmQ9 zBK*bYmVgaTAR3~B+Hk~Vw34nfC_&T2P^9f}oE~XZo84#TqRBrC%pT4J@%ZqL6CT|Q zpi!CtCxtVq(q@XPk}(Bw_~TRH)8{?bNKKR=9E>YLFxAIh2^1{Nklp4)$d%?1gl|Nc zy_NY$TnjLaKcR&UJ;DfEbC)8P(G~=*R!)XQMvyCUYP18tZNWU?C(U_cxxiS8VtDw( zQ!c^JN|345PnL3nLF10rJgOb6xZeLsdw46Zf+TTgxVbW}Rr0xHl8m;LSsb9O;!9@J zRz06pS}5RS5tkiorF;c#{&Z5rB1j6qbktU?TpVNYu&pLX_pl3>CV;!$X7=M89DToC znIZ42X-bb)*!2aCVzP0|8BDaY17VGX=9)|G28*o{EBvUioK2kRfHud|i9hI-fiGurfDi#BEb!ZY%OX!&Eit-URJCZ$YFgBv%JHZ` zDQ*xrg)!>p1HdLk;Pkc9DHO4!BIs$Ncpin|K~9PsgXot7DPxE9&N@QoC+;qP{W^*A z@n}O-eOW2+unD|G)u^Uzs>9_*28l>0hG{$trZSe*t0tpFCv`Tu-?MkrmfUe|)RLGs z0TJwA&5Q8i#EJV<|9O`-rk8n4F|C?l-<73BEj9ydu`UZKyaY^zZv0B+zjLH{+DoG$fI(Ho?^XwMQw z+3_ZUIh8jW2@kjJoW?E87?A#tZYp2A*p18@Ccvntk3-NC-3Tv8ag`gURuSHR=ZF&Y zw>iC$BIX&Hci!Q)rpH2PO+OLqVj&N6l$j&SsxQOgy84embOwT1bJ)ue_h_aFyg%`6 zdi%j74HQC199IKX@kSPB*e&0F1Qvy_96TmR$47_4QnH`v-gP z4ZH|E2wY4@-GM4BnxkRDHiYTmprIjmUm$i%>RQo4@C(?J(U!>WDH#>gMpGCHF&vz( z584NF>JM`FO+Jn>nyL_ST`pPen634%Amky-O2%Mrv30P8*WgXw zP5`8!lmJZmf+Uz>X0VS_j&(cAv5JQ+oVdo67sJ-edo!h=@sRFkVnqZ=lj}B!n~9eJ zQ^;PND<6Kmqsjd|=Qz;Nv5 z!-wR>D}rA~DtME@IR9|4_#K-S&OEHJU2Bo0+g;G5dI_!dH2RVi$S-A%Qmvkyos?0qdrjZbP|EjL)g%@Cht0{gGn7c~5Wr6rO{R%TL~!;P9~9{D8zyxe``enP1H90?>pD;VAm>d@w*}2W zrwIh68&*ce4PDg)CxoWcVj?;NN5Qs!d|5}qeh~EO)c242yRI!si~GawSkQ%Hr`uk0 zBZ-qI4Mxy7gP$li&xkqOD46o9P~7mR)Ad3|ZkI%pjA{iD9B>oAz+ibGWkFRwi6oc^ zd6YvMQ{moI8EHH`a(U!WujWJR2w`Z|S z)8)%OD5H<;eNYkN&kmRak$_rMzl%aM?A8B*$YKMEFn*zE8dzW0sHY)9OIj#S)rBlr z-?utqkcw-kRGks7oU9YW-n16A+~m>B8p>;f!`?xC>NB?)0nH0=71wU5`WwPdCuqOgy!<$~Gz8{2psR@b|wHf*XHoa9?@_2mtb9fab>vL6b4IgOXCPQV4}NFc=Eunx4_r6)7cp4Je|)} zQSJaPx>MZ4P(Oq774X$5{qJGls}f-TKP4vvb!cegVH)wM>(eR?jz>-$`$sW*X;TW0 zq_7|NK)Dw~Xeo@q{ZGTy>{OS=Bi}Q9+?gosD0Bc9l(ZM!%%|}@m_SqtxY@uklCe$< z9{tc(F{ooP;~>xj@Bu-yAjT0QzeM0+l6KhiWCCVsXgNR#V@$ZN17cjjw#?0HFS3yG zgSoIwt2qh~ol1%D0QGoCK`+ZS-0#;m+T>v*d1Mk(8pnz23&UH%8z7n?#nO_tuh)~; zXF1oiWSFJOP3EHGnal{JJ}u^3$eUTu%VvR%ujLI@ATS!B(X@fsSN^roC!7gk4%FU@ zNG?s~iP6U52ciqdzPThA6BrILf#D=p<>E9r*XE9K9tE4i>htM48o0cK3i}R$Z zG$9te44juxD53$y{?rYQMbX4Ftmwx5xN`k~$PQO@B1&?^;|LfF5T;q(xc8Ga9D#wt zjW3;~jJh=(dO;DPakM$m$IW!Bf#(@L?N%z;tT#rwV41+0u*!APgePm?(0dJRAnAI^bO; zxBz@VbHN%-_?knW4@SnWIzEl1cCCrWRT}Z~s!L#LmBGPf)hrC!pgAS*U^Vox`q)3M zUBAJc03EooKg{rEDyu}H^qj;VvuD(*Q;1DiUNct*Ku91r6k&wPW&ZlztstF!?l5WC zxt-6LCWB1#*bB_BG01{W#Ta!9ZaL}sS+$-b@o9Dn-+aDAKm+C6HUMUI8zne0V4jg1 zKmkQ~sWGZ|9oC(1N;(;61f%baKZIvTYk&fJYdA5mj0eZ?z7MDIxB`W6ER3kTLUW2m zo6)`{VAEF^XMYceE7<(#T%?|Ioh7+(gKn;_ zS?9$v3N30D9ufyDsA0T}^QRtZCd8VMRVhxr5W>r6>w^td(Pf6rRHOXF$ATG51KRl` zjcEz3i3p$bn{Z%~9j#XLNd^hF9_m=HP0>OUaY3bvm=kHk>vZ%2VIHp-V}UteYT#_E zTB+uoKbGNJO~$NNX9>+s`bpkXW!?9KPS0vG#Z#G$hwTG2&>@{E!KOk(TsTj{UGht` zjbhw<^C9E#F#aKIq1o8g!1o0~H;AR)_I{Y#pE@Zon z>?#pEhm7OBt);P{Ify+OL7(DD_hI`4`KXx+j~1!7sP2ql)Vfq$abj~JASub&m4MtJ?T$_+FSg0M_@sSXVeFn#>XFz{{~u!i>7 zI7Q!v!6bj;d!cjE$HRrTwAwJ>^l;;*(L@jcX}PV$Y0cHL@juJqTpud`R{l1Llrz; z4XKJ6H)?-X6z@WET#40o1lt*X^)d8E1* zg(0JK5E^+b1EB)zA4%Ebl4B_*IW$E6Mvci>|Mh?ws_sRx4%9JYkXOjZBW_;wy7fC* z_lVdL+TjU!?AcgzM!r21#{Pt<>;~hMmTA?S=Gj;~Ii)LRB4@?S-7Z^CQp>c)8W{ag z_F@bdRp-Fc&mI7%${DF)HISl}u4#pnaw0MNA*=~RIU9;INs%^2(HDx*Yz8E#67t=nI7ZY1Vj+5WaP9|0*79-#h z&yaL7sGYly20M3gNnQvP=mGqf$xxzJkNS%q7S1laI2<&R!|r6l%xdP&T?3Laa6<*4 z%qKr`Obb-`G;1KSeYFo<2RIF9iVH4Pmz^r>eWT1*S&ju$R8_eqUO%BAkz*W#niC~y z)i6WfMVjhN0c*subRf<#c7H%;<`*i%9jfsMp=9YBRfm;SYMO*%Ak0@5x{d}k1_uEw z>2lbU&&wePAv5P60iWM|!@XWFaC;7#@upg>2Z+9<_Zdc-EYaFr6R+nVwOh`ic!zq! zZnr48!^?PreVii{>QL#YOV=`v{d{B?=OmE|!$6dIC^s7t2=kT2uk*FUIMtNXsZ_fB zMkb-}jBmH5JQ78L+pCh&z0F&!BtZx_WO+&MNlXXEEX@?tui=k(3hKn0kZye@o9MRH zJAVfNdQn_=2(w=BKX+31Z(Mr^;E;UI&3>WVqD!v>U|@lobJ(jPgYR1e3M3TqkPp!- zED}1d*oenNm`ugHvCeioFTI_`gl(dF9d-1Ri4J}+;Y{q-2?6H0h~4jSdr}+FBqAd2 z9qM0JXC{E(QOldVt7}aGuItqjkG#>>JMjn~Ic);Uz{d76K8W~Eum&1&uounYz#}S^ z0-BdToe=ZyB{tsZL|oj*u^NN|u?7!EvYAIpg1^sNGOSyZJ@upw4gxU9+Op zq0a$v=GYJ5JMB95S7%*@7NI=q5iOPZZX8Q_UO|!0l4jsPWOqkE_WptivRq0mjB!c{ zRbb59RY^$ni7wST|0t6g5akQvOy0LFO2xjI%33}{g;@i3g)Ef`q|88 z{Ik@~ryQ}Jx6GfwclfKW&ddh?vu`qgYTIxY&T`96+D{CZ zRgvXn<~seaB2&W(u=$*_%GQqJci)4=s)#B$Bvh$z6}tOX?Tk^j>ugt7QPHx$_}nR% zZJgK3G1n8hbTJvw